Example #1
0
        private void OnPacketSmoothingTimerCallback(object state)
        {
            RiderStateEventArgs riderState = null;

            lock (this)
            {
                if (m_latestPlayerStateEventArgs != null)
                {
                    riderState = new RiderStateEventArgs(m_latestPlayerStateEventArgs);
                    m_latestPlayerStateEventArgs = null;
                }
            }

            if (riderState != null)
            {
                if (m_debugMode)
                {
                    Logger.LogInformation($"TRACING-INCOMING: PlayerId: {riderState.Id}, Power: {riderState.Power}, HeartRate: {riderState.Heartrate}, Distance: {riderState.Distance}, Time: {riderState.Time}, Course: {riderState.Course}, RoadId: {riderState.RoadId}, IsForward: {riderState.IsForward}, RoadTime: {riderState.RoadTime}");
                }
                else
                {
                    Logger.LogInformation($"TRACING-OUTGOING: Power: {riderState.Power}, HeartRate: {riderState.Heartrate}, Distance: {riderState.Distance}, Time: {riderState.Time}, Course: {riderState.Course}, RoadId: {riderState.RoadId}, IsForward: {riderState.IsForward}, RoadTime: {riderState.RoadTime}");
                }

                m_eventsProcessed++;

                OnRiderStateEvent(riderState);
            }
        }
Example #2
0
            private void PlayerStateChanged(object sender, PlayerStateEventArgs e)
            {
                if (e.OldState != PlayerState.Closed)
                {
                    return;
                }
                GuiThread.DoAsync(delegate
                {
                    if (Media.AudioTrack == null)
                    {
                        return;
                    }

                    // This has to be done via GuiThread.DoAsync because when this method is called
                    // Player.Filters has not been populated
                    // Using GuiThread.DoAsync essentially queues this delegate until the media file
                    // is actually opened and all Player fields have been populated
                    if (Player.Filters.Any(f => f.ClsId == s_SanearSoundClsId))
                    {
                        m_Sanear = true;
                    }
                    else if (Player.Filters.Any(f => f.ClsId == s_DirectSoundClsId || f.ClsId == s_WaveOutClsId))
                    {
                        m_DirectSoundWaveOut = true;
                    }
                    else
                    {
                        Player.OsdText.Show("Warning: Audio renderer is incompatible with Reclock. Reclock disabled!");
                    }
                });
            }
Example #3
0
        private void PlayerStateChanged(object sender, PlayerStateEventArgs e)
        {
            if (e.OldState == PlayerState.Closed)
            {
                var audioDecoder = Player.Filters.Audio.FirstOrDefault(f => f.ClsId == s_ClsIdLavAudioDecoder);
                if (audioDecoder == null)
                {
                    return;
                }

                ComThread.Do(() =>
                {
                    var settings       = (ILAVAudioSettings)audioDecoder.Base;
                    m_LavAudioSettings = settings;
                });

                m_AddDelayMenu.Enabled   = true;
                m_MinusDelayMenu.Enabled = true;
                m_ResetDelayMenu.Enabled = true;
            }
            else if (e.NewState == PlayerState.Closed)
            {
                m_LavAudioSettings       = null;
                m_AddDelayMenu.Enabled   = false;
                m_MinusDelayMenu.Enabled = false;
                m_ResetDelayMenu.Enabled = false;
            }
        }
Example #4
0
        private void m_PlayerControl_PlayerStateChanged(object sender, PlayerStateEventArgs e)
        {
            switch (e.NewState)
            {
            case PlayerState.Playing:
                m_LocationTimer.Start();
                PushToAllListeners(GetAllChapters());
                PushToAllListeners(GetAllSubtitleTracks());
                PushToAllListeners(GetAllAudioTracks());
                PushToAllListeners(GetAllVideoTracks());
                break;

            case PlayerState.Stopped:
            case PlayerState.Closed:
                m_LocationTimer.Stop();
                break;

            case PlayerState.Paused:
                m_LocationTimer.Start();
                break;
            }

            PushToAllListeners(e.NewState + "|" + Media.FilePath);
            if (e.OldState == PlayerState.Closed)
            {
                GetPlaylistActiveIndex();
            }
        }
Example #5
0
 private void PlayerStateChanged(object sender, PlayerStateEventArgs e)
 {
     foreach (var item in m_MenuItems)
     {
         item.Enabled = e.NewState != PlayerState.Closed;
     }
 }
Example #6
0
 private void PlayerStateChanged(object sender, PlayerStateEventArgs e)
 {
     if (CurrentItem == null)
     {
         return;
     }
     Text = PlayerControl.PlayerState + " - " + CurrentItem.FilePath;
 }
 private void PlayerOnStateChanged(object sender, PlayerStateEventArgs playerStateEventArgs)
 {
     if (playerStateEventArgs.OldState == PlayerState.Closed && m_SubtitleFile != null)
     {
         LoadSubtitleFile(m_SubtitleFile);
         m_SubtitleFile = null;
     }
 }
 public RiderStateEventArgs(PlayerStateEventArgs e)
 {
     this.Id        = e.PlayerState.Id;
     this.Power     = e.PlayerState.Power;
     this.Heartrate = e.PlayerState.Heartrate;
     this.Distance  = e.PlayerState.Distance;
     this.Time      = e.PlayerState.Time;
     this.WorldTime = e.PlayerState.WorldTime;
 }
Example #9
0
        /// <summary>
        /// Internal event handler to filter player events
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void PlayerEventHandler(object sender, PlayerStateEventArgs e)
        {
            try
            {
                if (m_debugMode)
                {
                    if (m_trackedPlayerId == 0)
                    {
                        if (m_targetHR > 0 || m_targetPower > 0) // these will both be zero if randomly choosing a player
                        {
                            if ((m_targetHR == 0 || (e.PlayerState.Heartrate >= m_targetHR - 2 && e.PlayerState.Heartrate <= m_targetHR + 2)) &&
                                (m_targetPower == 0 || e.PlayerState.Power >= m_targetPower - 10 && e.PlayerState.Power <= m_targetPower + 10))
                            {
                                m_trackedPlayerId = e.PlayerState.Id;
                                Logger.LogInformation($"Monitoring player: {m_trackedPlayerId}");
                            }
                        }
                        else // randomly choose, not recommended
                        {
                            m_trackedPlayerId = e.PlayerState.Id;
                            //m_trackedPlayerId = 98597;
                        }
                    }

                    if (m_trackedPlayerId != e.PlayerState.Id)
                    {
                        return; // not our guy
                    }
                }
                else
                {
                    //Logger.LogInformation($"TRACING-OUTGOING: {e.PlayerState}");
                }

                // Capture the latest PlayerState.Time value.  This corresponds to the elapsed time the player sees on screen.
                // We can use this to know when the Zwift ride actually starts so that the ZAM clocks start simutaneously.
                //
                // Packets come in randomly but usually more than once per second.  Here we always capture the latest packet,
                // but it's only distributed once every second when the timer fires.  This is standard collection process.
                lock (this)
                {
                    // Lock is used to avoid contention between threads
                    m_playerStateTime            = new TimeSpan(0, 0, e.PlayerState.Time);
                    m_latestPlayerStateEventArgs = e;
                }

                // For some applications we might want to see every packet, so provide a high-resolution event.
                OnHighResRiderStateEvent(new RiderStateEventArgs(e));
            }
            catch (Exception ex)
            {
                Logger.LogError($"Exception occurred: {ex}");
            }
        }
        private void OnPlayerStateChanged(object sender, PlayerStateEventArgs args)
        {
            var enabled = (args.NewState == PlayerState.Playing || args.NewState == PlayerState.Paused) &&
                          Renderer.InputFormat.IsYuv();

            m_Enabled = enabled;

            m_LevelsMenu.Enabled       = enabled;
            m_MatrixMenu.Enabled       = enabled;
            m_ToggleLevelsMenu.Enabled = enabled;
            m_ToggleMatrixMenu.Enabled = enabled;

            if (args.OldState == PlayerState.Closed)
            {
                // Save states so we can restore the temporary settings when media is closed

                m_OriginalOutputLevels = RendererSettings.OutputLevels;
                m_OutputLevels         = m_OriginalOutputLevels;

                m_OriginalImproveChroma = RendererSettings.ImproveChromaReconstruction;
                m_ImproveChroma         = m_OriginalImproveChroma;
            }

            if (args.NewState == PlayerState.Closed)
            {
                // Restore on media close

                var refresh = false;

                if (RendererSettings.OutputLevels != m_OriginalOutputLevels)
                {
                    RendererSettings.OutputLevels = m_OriginalOutputLevels;
                    refresh = true;
                }

                if (RendererSettings.ImproveChromaReconstruction != m_OriginalImproveChroma)
                {
                    RendererSettings.ImproveChromaReconstruction = m_OriginalImproveChroma;
                    refresh = true;
                }

                if (refresh)
                {
                    Player.Config.Refresh();
                }
            }

            if (args.NewState != PlayerState.Closed && args.OldState != PlayerState.Closed)
            {
                return;
            }

            UpdateControls();
        }
Example #11
0
 void m_PlayerControl_PlayerStateChanged(object sender, PlayerStateEventArgs e)
 {
     foreach (var writer in writers)
     {
         try
         {
             writer.Value.WriteLine(e.NewState.ToString() + "|" + PlayerControl.MediaFilePath);
             writer.Value.Flush();
         }
         catch
         { }
     }
 }
Example #12
0
 private void OnPlayerStateChanged(object sender, PlayerStateEventArgs e)
 {
     SetActiveFile();
     if (e.OldState == PlayerState.Closed)
     {
         m_Form.LoadNextInBackground();
     }
     else if (e.NewState == PlayerState.Closed)
     {
         // If we're not playing the next file anytime soon, clean up the preloaded media
         m_Timer.Start();
     }
 }
Example #13
0
        public RiderStateEventArgs(PlayerStateEventArgs e)
        {
            this.Id        = e.PlayerState.Id;
            this.Power     = e.PlayerState.Power;
            this.Heartrate = e.PlayerState.Heartrate;
            this.Distance  = e.PlayerState.Distance;
            this.Time      = e.PlayerState.Time;
            this.WorldTime = e.PlayerState.WorldTime;
            this.RoadTime  = e.PlayerState.RoadTime;
            //this.RoadPosition = e.PlayerState.RoadPosition;
            this.WatchingRiderId = e.PlayerState.WatchingRiderId;

            // credit for decoding these goes to zoffline/zwift-offline/standalone.py
            this.RoadId    = (e.PlayerState.F20 & 0xFF00) >> 8;
            this.IsForward = (e.PlayerState.F19 & 0x04) != 0;
            this.Course    = (e.PlayerState.F19 & 0xFF0000) >> 16;
        }
Example #14
0
    private void PlayerCharacter_OnPlayerStateChanged(object sender, PlayerStateEventArgs e)
    {
        switch (e.value)
        {
        case PlayerCharacter.PlayerStates.Idle:
            returnToTavernButton.enabled = true;
            break;

        case PlayerCharacter.PlayerStates.Dead:
            gameOverPanel.SetActive(true);
            break;

        default:
            returnToTavernButton.enabled = false;
            break;
        }
    }
Example #15
0
        private void OnPlayerStateChanged(object sender, PlayerStateEventArgs args)
        {
            var enabled = (args.NewState == PlayerState.Playing || args.NewState == PlayerState.Paused) &&
                          !(Renderer.InputFormat == FrameBufferInputFormat.Rgb24 ||
                            Renderer.InputFormat == FrameBufferInputFormat.Rgb32 ||
                            Renderer.InputFormat == FrameBufferInputFormat.Rgb48);

            m_Enabled = enabled;

            m_LevelsMenu.Enabled       = enabled;
            m_MatrixMenu.Enabled       = enabled;
            m_ToggleLevelsMenu.Enabled = enabled;
            m_ToggleMatrixMenu.Enabled = enabled;

            if (args.NewState != PlayerState.Closed && args.OldState != PlayerState.Closed)
            {
                return;
            }

            UpdateControls();
        }
        private void PlayerStateChanged(object sender, PlayerStateEventArgs e)
        {
            switch (e.NewState)
            {
            case PlayerState.Closed:
                Taskbar.SetProgressState(TaskbarProgressBarState.NoProgress);
                m_UpdateTimer.Stop();
                s_PlayPauseButton.Icon    = s_PlayIcon;
                s_PlayPauseButton.Tooltip = TEXT_PLAY;
                Taskbar.SetOverlayIcon(m_MpdnFormHandle, null, "");
                break;

            case PlayerState.Stopped:
                Taskbar.SetProgressState(TaskbarProgressBarState.NoProgress);
                m_UpdateTimer.Start();
                s_PlayPauseButton.Icon    = s_PlayIcon;
                s_PlayPauseButton.Tooltip = TEXT_PLAY;
                Taskbar.SetOverlayIcon(m_MpdnFormHandle, null, "");
                break;

            case PlayerState.Playing:
                Taskbar.SetProgressState(TaskbarProgressBarState.Normal);
                m_UpdateTimer.Start();
                s_PlayPauseButton.Icon    = s_PauseIcon;
                s_PlayPauseButton.Tooltip = TEXT_PAUSE;
                Taskbar.SetOverlayIcon(m_MpdnFormHandle, s_PlayOverlayIcon, "Playing");
                break;

            case PlayerState.Paused:
                Taskbar.SetProgressState(TaskbarProgressBarState.Paused);
                m_UpdateTimer.Start();
                s_PlayPauseButton.Icon    = s_PlayIcon;
                s_PlayPauseButton.Tooltip = TEXT_PLAY;
                Taskbar.SetOverlayIcon(m_MpdnFormHandle, s_PauseOverlayIcon, "Paused");
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Example #17
0
        private void OnPlayerStateChanged(object sender, PlayerStateEventArgs args)
        {
            var enabled = (args.NewState == PlayerState.Playing || args.NewState == PlayerState.Paused) &&
                          Renderer.InputFormat.IsYuv();

            m_Enabled = enabled;

            m_ApplyLetterBoxingMenu.Enabled  = enabled;
            m_Zoom75LetterBoxingMenu.Enabled = enabled;
            m_Zoom50LetterBoxingMenu.Enabled = enabled;
            m_Zoom25LetterBoxingMenu.Enabled = enabled;
            m_ZoomNoLetterBoxingMenu.Enabled = enabled;
            m_FillMenu.Enabled = enabled;
            m_ToggleLetterBoxingMenu.Enabled = enabled;

            if (args.NewState != PlayerState.Closed && args.OldState != PlayerState.Closed)
            {
                return;
            }

            UpdateControls();
        }
Example #18
0
        void m_PlayerControl_PlayerStateChanged(object sender, PlayerStateEventArgs e)
        {
            switch (e.NewState)
            {
            case PlayerState.Playing:
                _locationTimer.Start();
                PushToAllListeners(GetAllChapters());
                PushToAllListeners(GetAllSubtitleTracks());
                PushToAllListeners(GetAllAudioTracks());
                break;

            case PlayerState.Stopped:
                _locationTimer.Stop();
                break;

            case PlayerState.Paused:
                _locationTimer.Stop();
                break;
            }

            PushToAllListeners(e.NewState + "|" + PlayerControl.MediaFilePath);
        }
Example #19
0
        private void PlayerStateChanged(object sender, PlayerStateEventArgs e)
        {
            if (e.OldState == PlayerState.Closed)
            {
                starTiming = SubtitleManager.GetTiming();
                if (starTiming == null)
                {
                    return;
                }

                SetDefaultCurrentTiming();

                m_AddDelayMenu.Enabled   = true;
                m_MinusDelayMenu.Enabled = true;
                m_ResetDelayMenu.Enabled = true;
            }
            else if (e.NewState == PlayerState.Closed)
            {
                m_AddDelayMenu.Enabled   = false;
                m_MinusDelayMenu.Enabled = false;
                m_ResetDelayMenu.Enabled = false;
            }
        }
Example #20
0
 private void PlayerStateChanged(object sender, PlayerStateEventArgs e)
 {
     m_MenuItem.Enabled = e.NewState != PlayerState.Closed;
 }
        private void PlayerStateChanged(object sender, PlayerStateEventArgs e)
        {
            if (e.NewState == PlayerState.Closed)
            {
                RestoreSettings();
                return;
            }

            if (e.OldState != PlayerState.Closed)
            {
                return;
            }

            if (!Activated())
            {
                return;
            }

            m_RestoreFrequency = 0;

            var screen = Screen.FromControl(PlayerControl.VideoPanel);

            var frequencies = GetFrequencies(screen);

            if (!frequencies.Any())
            {
                return;
            }

            var timePerFrame = PlayerControl.VideoInfo.AvgTimePerFrame;

            if (Math.Abs(timePerFrame) < 1)
            {
                return;
            }

            var fps = Math.Round(1000000 / timePerFrame, 3);

            if (Math.Abs(fps) < 1)
            {
                return;
            }

            // Find the highest frequency that matches fps
            var frequenciesDescending = frequencies.OrderByDescending(f => f).ToArray();
            var frequency             = frequenciesDescending.FirstOrDefault(f => MatchFrequencies(f, fps));

            if (frequency == 0)
            {
                // Exact match (23 for 23.976) not found
                // Find the closest one that matches fps (e.g. 24 for 23.976)
                frequency = frequenciesDescending.FirstOrDefault(f => MatchRoundedFrequencies(f, fps));
            }
            if (frequency == 0)
            {
                // Still couldn't find a match
                if (!Settings.HighestRate)
                {
                    return;
                }

                // Use the highest rate available
                frequency = frequenciesDescending.First();
            }

            ChangeRefreshRate(screen, frequency);
        }
 private void PlayerStateChanged(object sender, PlayerStateEventArgs e)
 {
     switch (e.NewState)
     {
         case PlayerState.Closed:
             Taskbar.SetProgressState(TaskbarProgressBarState.NoProgress);
             m_UpdateTimer.Stop();
             s_PlayPauseButton.Icon = s_PlayIcon;
             s_PlayPauseButton.Tooltip = TEXT_PLAY;
             Taskbar.SetOverlayIcon(m_MpdnFormHandle, null, "");
             break;
         case PlayerState.Stopped:
             Taskbar.SetProgressState(TaskbarProgressBarState.NoProgress);
             m_UpdateTimer.Start();
             s_PlayPauseButton.Icon = s_PlayIcon;
             s_PlayPauseButton.Tooltip = TEXT_PLAY;
             Taskbar.SetOverlayIcon(m_MpdnFormHandle, null, "");
             break;
         case PlayerState.Playing:
             Taskbar.SetProgressState(TaskbarProgressBarState.Normal);
             m_UpdateTimer.Start();
             s_PlayPauseButton.Icon = s_PauseIcon;
             s_PlayPauseButton.Tooltip = TEXT_PAUSE;
             Taskbar.SetOverlayIcon(m_MpdnFormHandle, s_PlayOverlayIcon, "Playing");
             break;
         case PlayerState.Paused:
             Taskbar.SetProgressState(TaskbarProgressBarState.Paused);
             m_UpdateTimer.Start();
             s_PlayPauseButton.Icon = s_PlayIcon;
             s_PlayPauseButton.Tooltip = TEXT_PLAY;
             Taskbar.SetOverlayIcon(m_MpdnFormHandle, s_PauseOverlayIcon, "Paused");
             break;
         default:
             throw new ArgumentOutOfRangeException();
     }
 }
Example #23
0
        private void OnPlayerStateChanged(object sender, PlayerStateEventArgs args)
        {
            var enabled = (args.NewState == PlayerState.Playing || args.NewState == PlayerState.Paused) &&
                          Renderer.InputFormat.IsYuv();

            m_Enabled = enabled;

            m_ApplyLetterBoxingMenu.Enabled = enabled;
            m_Zoom75LetterBoxingMenu.Enabled = enabled;
            m_Zoom50LetterBoxingMenu.Enabled = enabled;
            m_Zoom25LetterBoxingMenu.Enabled = enabled;
            m_ZoomNoLetterBoxingMenu.Enabled = enabled;
            m_FillMenu.Enabled = enabled;
            m_ToggleLetterBoxingMenu.Enabled = enabled;

            if (args.NewState != PlayerState.Closed && args.OldState != PlayerState.Closed)
                return;

            UpdateControls();
        }
Example #24
0
        /// <summary>
        /// Internal event handler to filter player events
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void PlayerEventHandler(object sender, PlayerStateEventArgs e)
        {
            try
            {
                if (m_debugMode)
                {
                    if (m_trackedPlayerId == 0)
                    {
                        if (m_targetHR > 0 || m_targetPower > 0) // these will both be zero if randomly choosing a player
                        {
                            if ((m_targetHR == 0 || (e.PlayerState.Heartrate >= m_targetHR - 2 && e.PlayerState.Heartrate <= m_targetHR + 2)) &&
                                (m_targetPower == 0 || e.PlayerState.Power >= m_targetPower - 10 && e.PlayerState.Power <= m_targetPower + 10))
                            {
                                m_trackedPlayerId = e.PlayerState.Id;
                                Logger.LogInformation($"Monitoring player: {m_trackedPlayerId}");
                            }
                        }
                        else // randomly choose, not recommended
                        {
                            m_trackedPlayerId = e.PlayerState.Id;
                        }
                    }

                    if (m_trackedPlayerId != e.PlayerState.Id)
                    {
                        return; // not our guy
                    }
                }
                else
                {
                    //Logger.LogInformation($"TRACING-OUTGOING: {e.PlayerState}");
                }

                // Capture the latest PlayerState.Time value.  This corresponds to the elapsed time the player sees on screen.
                // We can use this to know when the Zwift ride actually starts so that the ZAM clocks start simutaneously.
                //
                // Packets come in randomly but usually more than once per second.  Here we always capture the latest packet,
                // but it's only distributed once every second when the timer fires.
                lock (this)
                {
                    // Lock is used to avoid contention between threads
                    m_playerStateTime            = new TimeSpan(0, 0, e.PlayerState.Time);
                    m_latestPlayerStateEventArgs = e;
                }

                //// only receive updates approx once/sec
                //if ((DateTime.Now - m_lastPlayerStateUpdate).TotalMilliseconds < 900)
                //{
                //    return;
                //}
                //m_lastPlayerStateUpdate = DateTime.Now;



                //// Do work here
                //OnPlayerStateEvent(e);
            }
            catch (Exception ex)
            {
                Logger.LogError($"Exception occurred: {ex}");
            }
        }
        private void OnPlayerStateChanged(object sender, PlayerStateEventArgs args)
        {
            var enabled = (args.NewState == PlayerState.Playing || args.NewState == PlayerState.Paused) &&
                          !(Renderer.InputFormat == FrameBufferInputFormat.Rgb24 ||
                            Renderer.InputFormat == FrameBufferInputFormat.Rgb32 ||
                            Renderer.InputFormat == FrameBufferInputFormat.Rgb48);

            m_Enabled = enabled;

            m_LevelsMenu.Enabled = enabled;
            m_MatrixMenu.Enabled = enabled;
            m_ToggleLevelsMenu.Enabled = enabled;
            m_ToggleMatrixMenu.Enabled = enabled;

            if (args.NewState != PlayerState.Closed && args.OldState != PlayerState.Closed)
                return;

            UpdateControls();
        }
Example #26
0
        private void OnPlayerStateChanged(object sender, PlayerStateEventArgs args)
        {
            var enabled = (args.NewState == PlayerState.Playing || args.NewState == PlayerState.Paused) &&
                          Renderer.InputFormat.IsYuv();

            m_Enabled = enabled;

            m_LevelsMenu.Enabled = enabled;
            m_MatrixMenu.Enabled = enabled;
            m_ToggleLevelsMenu.Enabled = enabled;
            m_ToggleMatrixMenu.Enabled = enabled;
            m_ToggleImproveChromaMenu.Enabled = enabled;

            if (args.OldState == PlayerState.Closed)
            {
                // Save states so we can restore the temporary settings when media is closed

                m_OriginalOutputLevels = RendererSettings.OutputLevels;
                m_OutputLevels = m_OriginalOutputLevels;

                m_OriginalImproveChroma = RendererSettings.ImproveChromaReconstruction;
                m_ImproveChroma = m_OriginalImproveChroma;
            }

            if (args.NewState == PlayerState.Closed)
            {
                // Restore on media close

                var refresh = false;

                if (RendererSettings.OutputLevels != m_OriginalOutputLevels)
                {
                    RendererSettings.OutputLevels = m_OriginalOutputLevels;
                    refresh = true;
                }

                if (RendererSettings.ImproveChromaReconstruction != m_OriginalImproveChroma)
                {
                    RendererSettings.ImproveChromaReconstruction = m_OriginalImproveChroma;
                    refresh = true;
                }

                if (refresh)
                {
                    Player.Config.Refresh();
                }
            }

            if (args.NewState != PlayerState.Closed && args.OldState != PlayerState.Closed)
                return;

            UpdateControls();
        }
Example #27
0
 private void PlayerStateChanged(object sender, PlayerStateEventArgs e)
 {
     foreach (var item in m_MenuItems)
     {
         item.Enabled = e.NewState != PlayerState.Closed;
     }
 }
Example #28
0
        private void PlayerStateChanged(object sender, PlayerStateEventArgs e)
        {
            if (e.OldState == PlayerState.Closed)
            {
                var audioDecoder = Player.Filters.Audio.FirstOrDefault(f => f.ClsId == s_ClsIdLavAudioDecoder);
                if (audioDecoder == null)
                    return;

                ComThread.Do(() =>
                {
                    var settings = (ILAVAudioSettings)audioDecoder.Base;
                    m_LavAudioSettings = settings;
                });

                m_AddDelayMenu.Enabled = true;
                m_MinusDelayMenu.Enabled = true;
                m_ResetDelayMenu.Enabled = true;
            }
            else if (e.NewState == PlayerState.Closed)
            {
                m_LavAudioSettings = null;
                m_AddDelayMenu.Enabled = false;
                m_MinusDelayMenu.Enabled = false;
                m_ResetDelayMenu.Enabled = false;
            }
        }
Example #29
0
 private void PlayerStateChanged(object sender, PlayerStateEventArgs e)
 {
     m_MenuItem.Enabled = e.NewState != PlayerState.Closed;
 }
Example #30
0
        private void PlayerStateChanged(object sender, PlayerStateEventArgs e)
        {
            if (e.OldState == PlayerState.Closed)
            {
                starTiming = SubtitleManager.GetTiming();
                if (starTiming == null)
                    return;

                SetDefaultCurrentTiming();

                m_AddDelayMenu.Enabled = true;
                m_MinusDelayMenu.Enabled = true;
                m_ResetDelayMenu.Enabled = true;
            }
            else if (e.NewState == PlayerState.Closed)
            {
                m_AddDelayMenu.Enabled = false;
                m_MinusDelayMenu.Enabled = false;
                m_ResetDelayMenu.Enabled = false;
            }
        }
 private void PlayerOnStateChanged(object sender, PlayerStateEventArgs playerStateEventArgs)
 {
     if (playerStateEventArgs.OldState == PlayerState.Closed && m_SubtitleFile != null)
     {
         LoadSubtitleFile(m_SubtitleFile);
         m_SubtitleFile = null;
     }
 }