private void FireFilterStateChanged(OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState oldState, string oldMedia, OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState newState, string newMedia) { if (FilterStateChanged != null) { FilterStateChanged(oldState, oldMedia, newState, newMedia); } }
void timerCheckState_Tick(object sender, EventArgs e) { double nowTime = TimeSpan.FromTicks(DateTime.Now.Ticks).TotalSeconds; double diff = (nowTime - _prevTime); _prevTime = nowTime; FireMediaRendererClock(); OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState newState = OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.NotOpened; try { newState = this.FilterState; string newMedia = this.RenderMediaName; if (newState == OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Running && oldMediaPosition == this.MediaPosition) { nofPasses++; Logger.LogHeavyTrace("Media position did not change in the last {0} iterations", nofPasses); } else { nofPasses = 0; } if (this.IsEndOfMedia || (!IsStreamedMedia && nofPasses > 10)) { if (newState != OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Stopped) { this.StopRenderer(); } newState = OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.NotOpened; } else if (oldState == OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.NotOpened && newState == OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Stopped) { newState = OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.NotOpened; } if (newState != oldState || newMedia != oldMedia) { FireFilterStateChanged(oldState, oldMedia, newState, newMedia); } switch (newState) { case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Running: switch (oldState) { case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Running: _position += diff; break; case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.NotOpened: case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Stopped: //break; case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Paused: _position = streamRenderer.MediaPosition; break; } break; case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Stopped: case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.NotOpened: _position = 0; break; case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Paused: break; } if (newState != OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Stopped && newState != OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.NotOpened) { FireMediaRendererHeartbeat(); } } catch { throw; } finally { oldState = newState; oldMedia = this.RenderMediaName; oldMediaPosition = this.MediaPosition; } }
void timerCheckState_Tick(object sender, EventArgs e) { double newMediaPosition = this.MediaPosition; double nowTime = TimeSpan.FromTicks(DateTime.Now.Ticks).TotalSeconds; double diff = (nowTime - _prevTime); _prevTime = nowTime; FireMediaRendererClock(); OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState newState = OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.NotOpened; try { newState = this.FilterState; string newMedia = this.RenderMediaName; if (newState == OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Running && oldMediaPosition == newMediaPosition) { nofPasses++; Logger.LogTrace("Media position did not change in the last {0} iterations ... old={1}, new={2}", nofPasses, oldMediaPosition, newMediaPosition); } else { nofPasses = 0; Logger.LogTrace("Media position changed ... old={0}, new={1}", oldMediaPosition, newMediaPosition); oldMediaPosition = newMediaPosition; } if (this.IsEndOfMedia || (!IsStreamedMedia && nofPasses > 10)) { if (newState != OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Stopped) { Logger.LogTrace("timerCheckState_Tick ... IsEndOfMedia={0}, IsStreamedMedia={1}, nofPasses={2}, newState={3}", IsEndOfMedia, IsStreamedMedia, nofPasses, newState); this.StopRenderer(false); newState = OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.NotOpened; } else { newState = OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Stopped; } } else if (oldState == OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.NotOpened && newState == OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Stopped) { newState = OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.NotOpened; } if (newState != oldState || newMedia != oldMedia) { FireFilterStateChanged(oldState, oldMedia, newState, newMedia); } switch (newState) { case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Running: switch (oldState) { case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Running: _position += diff; break; case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.NotOpened: case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Stopped: //break; case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Paused: _position = streamRenderer.MediaPosition; break; } break; case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Stopped: case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.NotOpened: _position = 0; break; case OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Paused: break; } if (newState != OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.Stopped && newState != OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState.NotOpened) { FireMediaRendererHeartbeat(); } } catch { throw; } finally { oldState = newState; oldMedia = this.RenderMediaName; } }
void _renderer_FilterStateChanged(OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState oldState, string oldMedia, OPMedia.Runtime.ProTONE.Rendering.DS.BaseClasses.FilterState newState, string newMedia) { FireFilterStateChanged(oldState, oldMedia, newState, newMedia); }