/// <summary> /// Wird aktiviert, wenn das Zugriffsmodul Daten anfordert. /// </summary> public override void OnWaitData() { // Already done if (m_Disposed) { return; } // Still calling? if (m_Waiting) { return; } // Test for move request if (m_Move.HasValue) { // Take it if (m_Length.HasValue) { m_Position = (long)(m_Move.Value * m_Length.Value); } // Forget m_Move = null; } else { // See how internal timing is currently set var offset = Accessor.StreamTimeOffset; if (offset.HasValue) { if (offset.Value < RestartTrigger) { // Try restart if (!RestartRecording()) { return; } } else if (offset.Value >= MaximumAheadTime) { // Do not feed any more data - for now return; } } } // Split off var parts = Adaptor.Target.Split(':'); // Request will start right now m_Waiting = true; // Force server to send data VCRNETRestProxy.RequestFilePart(Adaptor.EndPoint, m_Path, m_Position, ChunkSize, parts[0], ushort.Parse(parts[1]), DataAvailable, null); }