private void OnMessageReceived(AsynchronousMessageQueue queue, SystemMessage message) { if (message.ChannelName == PlayerContextManagerMessaging.CHANNEL) { PlayerContextManagerMessaging.MessageType messageType = (PlayerContextManagerMessaging.MessageType)message.MessageType; switch (messageType) { case PlayerContextManagerMessaging.MessageType.CurrentPlayerChanged: Update(); break; } } else if (message.ChannelName == PlayerManagerMessaging.CHANNEL) { PlayerManagerMessaging.MessageType messageType = (PlayerManagerMessaging.MessageType)message.MessageType; switch (messageType) { case PlayerManagerMessaging.MessageType.PlayerSlotStarted: case PlayerManagerMessaging.MessageType.PlayerSlotClosed: Update(); break; } } else if (message.ChannelName == WorkflowManagerMessaging.CHANNEL) { WorkflowManagerMessaging.MessageType messageType = (WorkflowManagerMessaging.MessageType)message.MessageType; switch (messageType) { case WorkflowManagerMessaging.MessageType.NavigationComplete: Update(); break; } } }
private void OnMessageReceived(AsynchronousMessageQueue queue, SystemMessage message) { if (message.ChannelName == PlayerManagerMessaging.CHANNEL) { PlayerManagerMessaging.MessageType messageType = (PlayerManagerMessaging.MessageType)message.MessageType; switch (messageType) { case PlayerManagerMessaging.MessageType.PlayerStarted: case PlayerManagerMessaging.MessageType.PlayerStopped: case PlayerManagerMessaging.MessageType.PlayerEnded: HandlePlayerChange(); break; case PlayerManagerMessaging.MessageType.PlaybackStateChanged: HandlePlaybackStateChanged(); break; } } else if (message.ChannelName == PlayerContextManagerMessaging.CHANNEL) { PlayerContextManagerMessaging.MessageType messageType = (PlayerContextManagerMessaging.MessageType)message.MessageType; switch (messageType) { case PlayerContextManagerMessaging.MessageType.PlayerSlotsChanged: HandlePlayerChange(); break; } } }
void OnMessageReceived(AsynchronousMessageQueue queue, SystemMessage message) { if (message.ChannelName == PlayerManagerMessaging.CHANNEL) { PlayerManagerMessaging.MessageType messageType = (PlayerManagerMessaging.MessageType)message.MessageType; switch (messageType) { case PlayerManagerMessaging.MessageType.PlayerSlotStarted: case PlayerManagerMessaging.MessageType.PlayerSlotClosed: case PlayerManagerMessaging.MessageType.PlayerStarted: case PlayerManagerMessaging.MessageType.PlayerStopped: case PlayerManagerMessaging.MessageType.PlayerEnded: case PlayerManagerMessaging.MessageType.PlayersMuted: case PlayerManagerMessaging.MessageType.PlayersResetMute: CheckUpdatePlayerConfigurationData(); break; } } else if (message.ChannelName == PlayerContextManagerMessaging.CHANNEL) { PlayerContextManagerMessaging.MessageType messageType = (PlayerContextManagerMessaging.MessageType)message.MessageType; switch (messageType) { case PlayerContextManagerMessaging.MessageType.CurrentPlayerChanged: case PlayerContextManagerMessaging.MessageType.PlayerSlotsChanged: CheckUpdatePlayerConfigurationData(); break; } } }
private void OnMessageReceived(AsynchronousMessageQueue queue, SystemMessage message) { if (message.ChannelName == PlaylistMessaging.CHANNEL) { PlaylistMessaging.MessageType messageType = (PlaylistMessaging.MessageType)message.MessageType; switch (messageType) { case PlaylistMessaging.MessageType.PlaylistUpdate: UpdatePlaylist(); break; case PlaylistMessaging.MessageType.CurrentItemChange: UpdateCurrentItem(); break; case PlaylistMessaging.MessageType.PropertiesChange: UpdateProperties(); break; } } else if (message.ChannelName == PlayerManagerMessaging.CHANNEL) { PlayerManagerMessaging.MessageType messageType = (PlayerManagerMessaging.MessageType)message.MessageType; switch (messageType) { case PlayerManagerMessaging.MessageType.PlayerSlotClosed: IPlayerContextManager playerContextManager = ServiceRegistration.Get <IPlayerContextManager>(); ISystemStateService sss = ServiceRegistration.Get <ISystemStateService>(); IPlayerContext pc = playerContextManager.GetPlayerContext(PlayerChoice.CurrentPlayer); if (pc == null && sss.CurrentState == SystemState.Running) { IWorkflowManager workflowManager = ServiceRegistration.Get <IWorkflowManager>(); workflowManager.NavigatePopToState(Consts.WF_STATE_ID_SHOW_PLAYLIST, true); } break; // We don't need to track the PlayerSlotActivated or PlayerSlotsChanged messages, because all information // we need is contained in the CurrentPlayer information } } else if (message.ChannelName == PlayerContextManagerMessaging.CHANNEL) { PlayerContextManagerMessaging.MessageType messageType = (PlayerContextManagerMessaging.MessageType)message.MessageType; switch (messageType) { case PlayerContextManagerMessaging.MessageType.CurrentPlayerChanged: UpdatePlaylist(); break; } } }
private void OnMessageReceived(AsynchronousMessageQueue queue, SystemMessage message) { if (message.ChannelName == PlaylistMessaging.CHANNEL) { PlaylistMessaging.MessageType messageType = (PlaylistMessaging.MessageType)message.MessageType; switch (messageType) { case PlaylistMessaging.MessageType.PlaylistUpdate: UpdatePlaylist(); break; case PlaylistMessaging.MessageType.PropertiesChange: UpdateProperties(); break; } } else if (message.ChannelName == PlayerManagerMessaging.CHANNEL) { PlayerManagerMessaging.MessageType messageType = (PlayerManagerMessaging.MessageType)message.MessageType; switch (messageType) { case PlayerManagerMessaging.MessageType.PlayerSlotClosed: IPlayerContextManager playerContextManager = ServiceRegistration.Get <IPlayerContextManager>(); ISystemStateService sss = ServiceRegistration.Get <ISystemStateService>(); IPlayerContext pc = playerContextManager.GetPlayerContext(PlayerChoice.CurrentPlayer); if (pc == null && sss.CurrentState == SystemState.Running) { IWorkflowManager workflowManager = ServiceRegistration.Get <IWorkflowManager>(); workflowManager.NavigatePopToState(Consts.WF_STATE_ID_EDIT_PLAYLIST, true); } break; } } else if (message.ChannelName == PlayerContextManagerMessaging.CHANNEL) { PlayerContextManagerMessaging.MessageType messageType = (PlayerContextManagerMessaging.MessageType)message.MessageType; switch (messageType) { case PlayerContextManagerMessaging.MessageType.CurrentPlayerChanged: UpdatePlaylist(); break; } } }
void OnMessageReceived(AsynchronousMessageQueue queue, SystemMessage message) { if (message.ChannelName == WorkflowManagerMessaging.CHANNEL) { // Adjust our knowledge about the currently opened FSC/CP state if the user switches to one of them WorkflowManagerMessaging.MessageType messageType = (WorkflowManagerMessaging.MessageType)message.MessageType; switch (messageType) { case WorkflowManagerMessaging.MessageType.StatesPopped: ICollection <Guid> statesRemoved = new List <Guid>( ((IDictionary <Guid, NavigationContext>)message.MessageData[WorkflowManagerMessaging.CONTEXTS]).Keys); HandleStatesRemovedFromWorkflowStack(statesRemoved); break; case WorkflowManagerMessaging.MessageType.StatePushed: NavigationContext context = (NavigationContext)message.MessageData[WorkflowManagerMessaging.CONTEXT]; Guid stateId = context.WorkflowState.StateId; HandleWorkflowStatePushed(stateId); break; } } else if (message.ChannelName == PlayerManagerMessaging.CHANNEL) { // React to player changes PlayerManagerMessaging.MessageType messageType = (PlayerManagerMessaging.MessageType)message.MessageType; IPlayerSlotController psc; switch (messageType) { case PlayerManagerMessaging.MessageType.PlayerResumeState: psc = (IPlayerSlotController)message.MessageData[PlayerManagerMessaging.PLAYER_SLOT_CONTROLLER]; IResumeState resumeState = (IResumeState)message.MessageData[PlayerManagerMessaging.KEY_RESUME_STATE]; Guid mediaItemId = (Guid)message.MessageData[PlayerManagerMessaging.KEY_MEDIAITEM_ID]; HandleResumeInfo(psc, mediaItemId, resumeState); break; case PlayerManagerMessaging.MessageType.PlayerError: case PlayerManagerMessaging.MessageType.PlayerEnded: psc = (IPlayerSlotController)message.MessageData[PlayerManagerMessaging.PLAYER_SLOT_CONTROLLER]; HandlePlayerEnded(psc); break; case PlayerManagerMessaging.MessageType.PlayerStopped: psc = (IPlayerSlotController)message.MessageData[PlayerManagerMessaging.PLAYER_SLOT_CONTROLLER]; HandlePlayerStopped(psc); break; case PlayerManagerMessaging.MessageType.RequestNextItem: psc = (IPlayerSlotController)message.MessageData[PlayerManagerMessaging.PLAYER_SLOT_CONTROLLER]; HandleRequestNextItem(psc); break; } CleanupPlayerContexts(); CheckMediaWorkflowStates_NoLock(); // Primary player could have been changed or closed or CP player could have been closed } else if (message.ChannelName == PlayerContextManagerMessaging.CHANNEL) { // React to internal player context manager changes PlayerContextManagerMessaging.MessageType messageType = (PlayerContextManagerMessaging.MessageType)message.MessageType; switch (messageType) { case PlayerContextManagerMessaging.MessageType.UpdatePlayerRolesInternal: PlayerContext newCurrentPlayer = (PlayerContext)message.MessageData[PlayerContextManagerMessaging.NEW_CURRENT_PLAYER_CONTEXT]; PlayerContext newAudioPlayer = (PlayerContext)message.MessageData[PlayerContextManagerMessaging.NEW_AUDIO_PLAYER_CONTEXT]; HandleUpdatePlayerRoles(newCurrentPlayer, newAudioPlayer); break; // PlayerContextManagerMessaging.MessageType.CurrentPlayerChanged not handled here } } }
void OnMessageReceived(AsynchronousMessageQueue queue, SystemMessage message) { if (message.ChannelName == WorkflowManagerMessaging.CHANNEL) { // Adjust our knowledge about the currently opened FSC/CP state if the user switches to one of them WorkflowManagerMessaging.MessageType messageType = (WorkflowManagerMessaging.MessageType)message.MessageType; switch (messageType) { case WorkflowManagerMessaging.MessageType.StatesPopped: ICollection <Guid> statesRemoved = new List <Guid>( ((IDictionary <Guid, NavigationContext>)message.MessageData[WorkflowManagerMessaging.CONTEXTS]).Keys); HandleStatesRemovedFromWorkflowStack(statesRemoved); break; case WorkflowManagerMessaging.MessageType.StatePushed: NavigationContext context = (NavigationContext)message.MessageData[WorkflowManagerMessaging.CONTEXT]; Guid stateId = context.WorkflowState.StateId; HandleWorkflowStatePushed(stateId); break; } } else if (message.ChannelName == PlayerManagerMessaging.CHANNEL) { // React to player changes PlayerManagerMessaging.MessageType messageType = (PlayerManagerMessaging.MessageType)message.MessageType; IPlayerSlotController psc; uint activationSequence; switch (messageType) { case PlayerManagerMessaging.MessageType.PlayerError: case PlayerManagerMessaging.MessageType.PlayerEnded: psc = (IPlayerSlotController)message.MessageData[PlayerManagerMessaging.PLAYER_SLOT_CONTROLLER]; activationSequence = (uint)message.MessageData[PlayerManagerMessaging.ACTIVATION_SEQUENCE]; HandlePlayerEnded(psc, activationSequence); break; case PlayerManagerMessaging.MessageType.PlayerStopped: psc = (IPlayerSlotController)message.MessageData[PlayerManagerMessaging.PLAYER_SLOT_CONTROLLER]; activationSequence = (uint)message.MessageData[PlayerManagerMessaging.ACTIVATION_SEQUENCE]; HandlePlayerStopped(psc, activationSequence); break; case PlayerManagerMessaging.MessageType.RequestNextItem: psc = (IPlayerSlotController)message.MessageData[PlayerManagerMessaging.PLAYER_SLOT_CONTROLLER]; activationSequence = (uint)message.MessageData[PlayerManagerMessaging.ACTIVATION_SEQUENCE]; HandleRequestNextItem(psc, activationSequence); break; case PlayerManagerMessaging.MessageType.PlayerSlotsChanged: HandlePlayerSlotsChanged(); break; } CheckCurrentPlayerSlot(); // Current player could have been closed CheckMediaWorkflowStates_NoLock(); // Primary player could have been changed or closed or CP player could have been closed } else if (message.ChannelName == PlayerContextManagerMessaging.CHANNEL) { // React to internal player context manager changes PlayerContextManagerMessaging.MessageType messageType = (PlayerContextManagerMessaging.MessageType)message.MessageType; switch (messageType) { case PlayerContextManagerMessaging.MessageType.UpdatePlayerRolesInternal: int newCurrentPlayerIndex = (int)message.MessageData[PlayerContextManagerMessaging.CURRENT_PLAYER_INDEX]; int newAudioPlayerIndex = (int)message.MessageData[PlayerContextManagerMessaging.AUDIO_PLAYER_INDEX]; HandlePlayerRolesChanged(newCurrentPlayerIndex, newAudioPlayerIndex); break; // PlayerContextManagerMessaging.MessageType.CurrentPlayerChanged not handled here } } }