Example #1
0
        private NotificationWindow(PlexTrack track)
        {
            InitializeComponent();
            tokenSource = new CancellationTokenSource();

            Title = track.Title + " - " + track.Artist.Title;

            // load artwork
            var app = (App)System.Windows.Application.Current;

            if (track.Thumb == null)
            {
                imageArtwork.Visibility     = Visibility.Collapsed;
                imageArtworkNone.Visibility = Visibility.Visible;
            }
            else
            {
                BitmapImage bitmap = new BitmapImage();
                bitmap.BeginInit();
                bitmap.UriSource   = app.plexClient.GetPhotoTranscodeUrl(track.Thumb, 50, 50);
                bitmap.CacheOption = BitmapCacheOption.Default;
                bitmap.EndInit();

                imageArtwork.Source = bitmap;

                imageArtwork.Visibility     = Visibility.Visible;
                imageArtworkNone.Visibility = Visibility.Collapsed;
            }

            var playback = PlaybackManager.GetInstance();

            playback.PlaybackTick += Playback_PlaybackTick;
        }
Example #2
0
        public BuffersWindow()
        {
            // language stuff needs to happen before InitializeComponent
            if (!settings.DontShowFirstTimeWizard)
            {
                // find out what language was used in the installer and use it for the first time wizard and everything else
                SetThreadToInstallationLanguage();
                DisplayFirstTimeWizard();
            }
            else
            {
                // if a language code is set in settings, set it on the thread
                if (settings.UILanguageCode != 0)
                {
                    Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(settings.UILanguageCode);
                }
            }
            InitializeComponent();
            InitializeTrayIcon();
            Commands                 = new Dictionary <string, HotkeyCommandBase>();
            playbackManager          = new PlaybackManager(settings.OutputDeviceID, settings.UseDirectSound);
            playbackManager.OnError += new PlaybackManager.PlaybackManagerErrorHandler(StreamingError);

            SetupFormEventHandlers();
            Buffers          = new BufferListCollection();
            _playQueueBuffer = new BufferList("Play Queue", false);
            Buffers.Add(_playQueueBuffer);
            Buffers.Add(new PlaylistContainerBufferList("Playlists", false));
            spotify = SpotifyClient.Instance;
            _trayIconMenuManager      = new TrayIconMenuManager(Buffers, Commands, _trayIcon);
            settings.PropertyChanged += new PropertyChangedEventHandler(OnUserSettingChange);
        }
Example #3
0
        public void StopFiresChangeEvent()
        {
            var manager = new PlaybackManager(services);

            var environment = new PlaybackEnvironment(new[] {
                new PlaybackEnvironmentElement(new Data.EncounterStateElement {
                    ElementId       = "elementId1",
                    StartsWithState = true
                },
                                               new Data.EnvironmentElement {
                    Id   = "elementId1",
                    Name = "Element"
                })
            });

            manager.PlayEnvironment(environment);

            bool envChanged = false;

            manager.EnvironmentChanged += (o, e) => {
                Assert.That(e.PreviousEnvironment, Is.SameAs(environment));
                Assert.That(e.NewEnvironment, Is.Null);
                envChanged = true;
            };

            manager.Stop();
            Assert.That(envChanged, Is.True);
        }
        private void TrackButton_Click(object sender, RoutedEventArgs e)
        {
            var index = ItemsControlHelper.FindIndexByItemChild(panelTracks, sender as DependencyObject);

            if (index == -1)
            {
                return;
            }

            var playQueue = PlayQueueManager.GetInstance();
            var track     = playQueue.FromTracks(Tracks.ToArray(), index);

            playQueue.AddPlayedIndex();

            var playback = PlaybackManager.GetInstance();

            playback.Play(track);

            var app = (App)Application.Current;

            app.config.LastPlaylist = Playlist.MetadataUrl;

            var mainWindow = MainWindow.GetInstance();

            mainWindow.GoToPlayQueue();
        }
Example #5
0
        private void Playback_PlaybackTick(object sender, EventArgs e)
        {
            var app = (App)System.Windows.Application.Current;

            Task.Factory.StartNew(() =>
            {
                var playback = PlaybackManager.GetInstance();

                doNotTriggerEvent = true;

                if (playback.Track != null)
                {
                    sliderPosition.Value     = playback.Position;
                    sliderPosition.Maximum   = playback.Track.Duration;
                    sliderPosition.IsEnabled = true;
                }
                else
                {
                    sliderPosition.Value     = 0;
                    sliderPosition.Maximum   = 1;
                    sliderPosition.IsEnabled = false;
                }

                doNotTriggerEvent = false;
            }, CancellationToken.None, TaskCreationOptions.None, app.uiContext);
        }
Example #6
0
        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            var app = (App)Application.Current;

            // load artwork if available
            if (Track != null && Track.Thumb != null)
            {
                BitmapImage bitmap = new BitmapImage();
                bitmap.BeginInit();
                bitmap.UriSource   = app.plexClient.GetPhotoTranscodeUrl(Track.Thumb, 50, 50);
                bitmap.CacheOption = BitmapCacheOption.Default;
                bitmap.EndInit();

                imageArtwork.Source = bitmap;

                imageArtwork.Visibility     = Visibility.Visible;
                imageArtworkNone.Visibility = Visibility.Collapsed;
            }
            else
            {
                imageArtwork.Visibility     = Visibility.Collapsed;
                imageArtworkNone.Visibility = Visibility.Visible;
            }

            var playbackManager = PlaybackManager.GetInstance();

            playbackManager.PlaybackStateChanged += TrackButton_PlaybackStateChanged;
            TrackButton_PlaybackStateChanged(playbackManager.Track, new EventArgs());
        }
Example #7
0
        public Downloader(SiteConnection pConnection, VideoSource pVideoSource, DateTime pStart, DateTime pEnd, int pInterval, string pOutPath)
        {
            mConnection = pConnection;

            mInterval = pInterval;
            mEnd      = pEnd;

            mOutPath = pOutPath;

            mPlayback = pConnection.PlaybackManager;
            mPlayback.SetVideoCallback(this, 0);
            mPlayback.AddVideoSource(pVideoSource);

            mFrameTime = pStart;

            do
            {
                mPlayback.Locate(mFrameTime);

                mFrameTime = mFrameTime.AddSeconds(mInterval);
            } while (mFrameTime.CompareTo(mEnd) < 0);

            mConnection.Disconnect();
            mConnection = null;
        }
Example #8
0
        private void TrackButton_PlaybackStateChanged(object sender, EventArgs e)
        {
            var app             = (App)Application.Current;
            var playbackManager = PlaybackManager.GetInstance();

            // update UI
            Task.Factory.StartNew(() =>
            {
                if (DoNotUpdatePlaying)
                {
                    return;
                }

                if (playbackManager.Track == null || Track == null || playbackManager.Track.MetadataUrl != Track.MetadataUrl || playbackManager.PlaybackState == NAudio.Wave.PlaybackState.Stopped)
                {
                    IsPlaying = false;
                }
                else
                {
                    IsPlaying = true;
                }

                button.Tag = IsPlaying;
            }, CancellationToken.None, TaskCreationOptions.None, app.uiContext);
        }
Example #9
0
        public Tuple <MasterAdapter, List <Fader>, CancellationTokenSource, Task> RenderProject(int startTick)
        {
            var source = new CancellationTokenSource();
            var items  = new List <RenderItem>();
            var faders = new List <Fader>();

            foreach (var track in project.tracks)
            {
                var trackItems = PrepareTrack(track, project, startTick).ToArray();
                var sources    = trackItems.Select(item => {
                    var waveSource  = new WaveSource(item.PosMs, item.DurMs, item.Envelope, item.SkipOver);
                    item.OnComplete = data => waveSource.SetWaveData(data);
                    return(waveSource);
                }).ToList();
                sources.AddRange(project.parts
                                 .Where(part => part is UWavePart && part.trackNo == track.TrackNo)
                                 .Select(part => part as UWavePart)
                                 .Select(part => {
                    var waveSource = new WaveSource(
                        project.TickToMillisecond(part.position),
                        project.TickToMillisecond(part.Duration),
                        null,
                        part.skipMs);
                    if (part.Samples != null)
                    {
                        waveSource.SetSamples(part.Samples);
                    }
                    return(waveSource);
                }));
                var trackMix = new WaveMix(sources);
                items.AddRange(trackItems);
                var fader = new Fader(trackMix);
                fader.Scale = PlaybackManager.DecibelToVolume(track.Volume);
                faders.Add(fader);
            }
            items = items.OrderBy(item => item.PosMs).ToList();
            int threads  = Util.Preferences.Default.PrerenderThreads;
            var progress = new Progress(items.Count);
            var task     = Task.Run(() => {
                var progress = new Progress(items.Count);
                Parallel.ForEach(source: items, parallelOptions: new ParallelOptions()
                {
                    MaxDegreeOfParallelism = threads
                }, body: item => {
                    if (source.Token.IsCancellationRequested)
                    {
                        return;
                    }
                    item.progress = progress;
                    Resample(item);
                });
                ReleaseSourceTemp();
                progress.Clear();
            });
            var master = new MasterAdapter(new WaveMix(faders));

            master.SetPosition((int)(project.TickToMillisecond(startTick) * 44100 / 1000));
            return(Tuple.Create(master, faders, source, task));
        }
        private void UserControl_Unloaded(object sender, RoutedEventArgs e)
        {
            var playbackManager = PlaybackManager.GetInstance();

            playbackManager.PlaybackStateChanged -= PlaybackManager_PlaybackStateChanged;
            playbackManager.RepeatChanged        -= PlaybackManager_RepeatChanged;
            playbackManager.ShuffleChanged       -= PlaybackManager_ShuffleChanged;
        }
Example #11
0
 private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
 {
     if (PlaybackManager.PlaybackState != PlaybackManager.StreamingPlaybackState.Buffering)
     {
         PlaybackManager.SetState(PlaybackState.Stopped);
         PlaybackManager.PlayTrack(TrackManager.CurrentTrack = TrackManager.Queue.Dequeue());
     }
 }
Example #12
0
        public ClientMainFeature(string name,
                                 IGameModule topLevelGameModule,
                                 SyncLastestManager netSyncManager,
                                 PlaybackManager playbackManager,
                                 PredictionManager userPredictionManager,
                                 AbstractPredictionProvider predicatoinProvider,
                                 ISimulationTimer simulationTimer,
                                 IVehicleCmdExecuteSystemHandler vehicleCmdExecuteSystemHandler,
                                 IVehicleExecutionSelector vehicleExecutionSelector,
                                 ICommonSessionObjects commonSessionObjects) : base(name)
        {
            topLevelGameModule.Init();

            Add(new ModuleInitSystem(topLevelGameModule, commonSessionObjects.AssetManager));
            Add(new EntityCreateSystem(topLevelGameModule));



            Add(new SyncLatestSystem(netSyncManager));
            if (!SharedConfig.IsOffline)
            {
                Add(new PlaybackInitSystem(playbackManager));
            }
            Add(new PlaybackExcuteSystem(topLevelGameModule));

            //添加游戏状态更新处理
            Add(new GameStateUpdateSystem(topLevelGameModule));

            // 需要在playback之后,因为要根据车的位置更新人的位置
            // 要在predicte之前,因为要根据车的位置,更像摄像机位置
            Add(new PhysicsInitSystem(topLevelGameModule));
            Add(new PhysicsUpdateSystem(topLevelGameModule));


            Add(new VehicleCmdExecuteManagerSystem(vehicleExecutionSelector, topLevelGameModule, vehicleCmdExecuteSystemHandler, simulationTimer, false, SharedConfig.ServerAuthorative));


            Add(new PhysicsPostUpdateSystem(topLevelGameModule));
            Add(new PredictionCompareSystem(userPredictionManager));
            Add(new UserPredictionSystem(topLevelGameModule,
                                         predicatoinProvider,
                                         userPredictionManager));


            Add(new ResourceLoadSystem(topLevelGameModule, commonSessionObjects.AssetManager));

            Add(new GamePlaySystem(topLevelGameModule));

            Add(new RenderSystem(topLevelGameModule));
            Add(new UiSystem(topLevelGameModule).WithExecFrameStep(EEcecuteStep.UIFrameStep));
            Add(new UiHfrSystem(topLevelGameModule));

            Add(new CommonLifeTimeSystem(commonSessionObjects.GameContexts));
            Add(new CommoTickImmutabblitySystem(commonSessionObjects.GameContexts));
            Add(new EntityCleanUpSystem(topLevelGameModule));

            Add(new CommonDestroySystem(commonSessionObjects));
        }
Example #13
0
        /// <summary>
        /// Finds the parts.
        /// </summary>
        protected override void FindParts()
        {
            base.FindParts();

            ThemeManager.AddParts(GetExports <ITheme>());
            PresentationManager.AddParts(GetExports <IAppFactory>(), GetExports <ISettingsPage>(), GetExports <IHomePageInfo>());
            PlaybackManager.AddParts(GetExports <IMediaPlayer>());
            ScreensaverManager.AddParts(GetExports <IScreensaverFactory>());
        }
Example #14
0
        private void Position_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e)
        {
            if (doNotTriggerSliderEvent)
            {
                return;
            }

            PlaybackManager.GetInstance().Position = (long)e.NewValue;
        }
Example #15
0
    public void LoadPerformance(string fileName, PlaybackManager pm)
    {
        //if(Application.platform == RuntimePlatform.OSXPlayer) fileName = "/Resources/Data/"+fileName;
        performanceFilePath = fileName;

        playbackManager = pm;

        Invoke("LoadPerfData", 0f);
    }
        private void PlaybackManager_VolumeChanged(object sender, EventArgs e)
        {
            doNotTriggerEvent = true;

            var playbackManager = PlaybackManager.GetInstance();
            var newValue        = playbackManager.Volume * 100.0;

            sliderVolume.Value = newValue;
            textVolume.Text    = ((int)newValue).ToString();
        }
Example #17
0
        private void Playback_PlaybackTick(object sender, EventArgs e)
        {
            var app      = (App)System.Windows.Application.Current;
            var playback = PlaybackManager.GetInstance();

            Task.Factory.StartNew(() =>
            {
                sliderPosition.Value   = playback.Position;
                sliderPosition.Maximum = playback.Track == null ? 1 : playback.Track.Duration;
            }, CancellationToken.None, TaskCreationOptions.None, app.uiContext);
        }
        private void sliderVolume_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e)
        {
            if (doNotTriggerEvent)
            {
                doNotTriggerEvent = false;
                return;
            }

            var playbackManager = PlaybackManager.GetInstance();

            playbackManager.Volume = (float)(e.NewValue / 100.0f);
        }
Example #19
0
        protected override void OnClosed(EventArgs e)
        {
            base.OnClosed(e);

            // unregister event
            var playback = PlaybackManager.GetInstance();

            playback.PlaybackTick -= Playback_PlaybackTick;

            tokenSource.Cancel();
            notificationWindow = null;
        }
Example #20
0
 // Use this for initialization
 void Awake()
 {
     if (Instance == null)
     {
         DontDestroyOnLoad(gameObject);
         Instance = this;
     }
     else if (Instance != this)
     {
         Destroy(gameObject);
     }
 }
Example #21
0
 public void NetworkGameLoop(UserData me, UserManager userManager, PlaybackManager playbackManager, SoundHandler soundHandler)
 {
     if (me._userRole == UserRole.Player || (me._userRole == UserRole.Playback && playbackManager.mode == PlaybackMode.Online))
     {
         SendOwnPosition(me); // don't send if you're viewer
     }
     else if (me._userRole == UserRole.Server)
     {
         SendAllPositionsToClients(userManager.usersPlaying, me);
         //if(sendToAudioDevice) SendAllPositionsToAudioSystem(userManager.usersPlaying);
         //if(sendToEyesweb && eyeswebOSC.initialized) eyeswebOSC.SendPositionsToEyesWeb();
     }
 }
        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            if (!(Application.Current is App))
            {
                return;
            }

            var playbackManager = PlaybackManager.GetInstance();

            playbackManager.VolumeChanged += PlaybackManager_VolumeChanged;

            // update UI
            PlaybackManager_VolumeChanged(playbackManager, new EventArgs());
        }
Example #23
0
        protected override void OnClosed(EventArgs e)
        {
            base.OnClosed(e);

            // unregister event handler
            var playback = PlaybackManager.GetInstance();

            playback.PlaybackStateChanged -= Playback_PlaybackStateChanged;
            playback.PlaybackTick         -= Playback_PlaybackTick;
            playback.VolumeChanged        -= Playback_VolumeChanged;

            // .net will destroy this instance
            instance = null;
        }
Example #24
0
        // PlaybackManager event handlers
        private void Playback_PlaybackStateChanged(object sender, EventArgs e)
        {
            var app = (App)System.Windows.Application.Current;

            Task.Factory.StartNew(() =>
            {
                var playback = PlaybackManager.GetInstance();

                if (playback.Track == null)
                {
                    Title = string.Empty;

                    sliderPosition.Value     = 0;
                    sliderPosition.Maximum   = 1;
                    sliderPosition.IsEnabled = false;

                    imageArtwork.Source = null;

                    imageArtwork.Visibility     = Visibility.Collapsed;
                    imageArtworkNone.Visibility = Visibility.Collapsed;
                }
                else
                {
                    Title = playback.Track.Title + " - " + playback.Track.Artist.Title;

                    // load artwork
                    if (playback.Track.Thumb == null)
                    {
                        imageArtwork.Visibility     = Visibility.Collapsed;
                        imageArtworkNone.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        BitmapImage bitmap = new BitmapImage();
                        bitmap.BeginInit();
                        bitmap.UriSource   = app.plexClient.GetPhotoTranscodeUrl(playback.Track.Thumb, 50, 50);
                        bitmap.CacheOption = BitmapCacheOption.OnDemand;
                        bitmap.EndInit();

                        imageArtwork.Source = bitmap;

                        imageArtwork.Visibility     = Visibility.Visible;
                        imageArtworkNone.Visibility = Visibility.Collapsed;
                    }
                }

                buttonPlay.Visibility  = playback.PlaybackState == NAudio.Wave.PlaybackState.Playing ? Visibility.Collapsed : Visibility.Visible;
                buttonPause.Visibility = playback.PlaybackState == NAudio.Wave.PlaybackState.Playing ? Visibility.Visible : Visibility.Collapsed;
            }, CancellationToken.None, TaskCreationOptions.None, app.uiContext);
        }
Example #25
0
        private void UserControl_Unloaded(object sender, RoutedEventArgs e)
        {
            var playbackControl = PlaybackManager.GetInstance();

            playbackControl.StartPlaying         -= PlaybackControl_StartPlaying;
            playbackControl.PlaybackTick         -= PlaybackControl_PlaybackTick;
            playbackControl.PlaybackStateChanged -= PlaybackControl_PlaybackStateChanged;

            var upcomings = UpcomingManager.GetInstance();

            upcomings.TrackChanged -= Upcomings_TrackChanged;

            artworkResizeTokenSource.Cancel();
        }
Example #26
0
        /// <summary>
        /// Registers resources that classes will depend on
        /// </summary>
        protected override async Task RegisterResources(IProgress <double> progress)
        {
            ReloadApiClient();

            await base.RegisterResources(progress).ConfigureAwait(false);

            RegisterSingleInstance <ITheaterApplicationHost>(this);

            MediaFilters = new MediaFilters(HttpClient, Logger);
            RegisterSingleInstance(MediaFilters);

            ThemeManager = new ThemeManager(() => PresentationManager, Logger);
            RegisterSingleInstance(ThemeManager);

            PresentationManager = new TheaterApplicationWindow(Logger, ThemeManager, ApiClient, () => SessionManager, TheaterConfigurationManager);
            RegisterSingleInstance(PresentationManager);

            RegisterSingleInstance(ApplicationPaths);

            RegisterSingleInstance <ITheaterConfigurationManager>(TheaterConfigurationManager);

            var hiddenWindow = new AppHiddenWIndow();

            ImageManager = new ImageManager(ApiClient, ApplicationPaths, TheaterConfigurationManager);
            RegisterSingleInstance(ImageManager);

            NavigationService = new NavigationService(ThemeManager, () => PlaybackManager, ApiClient, PresentationManager, TheaterConfigurationManager, () => SessionManager, this, InstallationManager, ImageManager, Logger, () => UserInputManager, ApiWebSocket, hiddenWindow);
            RegisterSingleInstance(NavigationService);

            UserInputManager = new UserInputManager(PresentationManager, NavigationService, hiddenWindow, LogManager);
            RegisterSingleInstance(UserInputManager);

            PlaybackManager = new PlaybackManager(TheaterConfigurationManager, Logger, ApiClient, NavigationService, PresentationManager);
            RegisterSingleInstance(PlaybackManager);

            CommandManager = new CommandManager(PresentationManager, PlaybackManager, NavigationService, UserInputManager, LogManager);
            RegisterSingleInstance(CommandManager);

            SessionManager = new SessionManager(NavigationService, ApiClient, Logger, ThemeManager, TheaterConfigurationManager, PlaybackManager);
            RegisterSingleInstance(SessionManager);

            ScreensaverManager = new ScreensaverManager(UserInputManager, PresentationManager, PlaybackManager, SessionManager, ApiClient, TheaterConfigurationManager, LogManager, ApiWebSocket);
            RegisterSingleInstance(ScreensaverManager);

            RegisterSingleInstance(ApiClient);

            RegisterSingleInstance <IHiddenWindow>(hiddenWindow);

            RegisterSingleInstance <IServerEvents>(ApiWebSocket);
        }
Example #27
0
        private void Position_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e)
        {
            if (doNotTriggerEvent)
            {
                return;
            }

            var app      = (App)System.Windows.Application.Current;
            var playback = PlaybackManager.GetInstance();

            Task.Factory.StartNew(() =>
            {
                playback.Position = (long)e.NewValue;
            }, CancellationToken.None, TaskCreationOptions.None, app.uiContext);
        }
Example #28
0
        private void TrackButton_Click(object sender, RoutedEventArgs e)
        {
            var index = ItemsControlHelper.FindIndexByItemChild(panelTracks, sender as DependencyObject);

            if (index == -1)
            {
                return;
            }

            var upcomings = UpcomingManager.GetInstance();
            var track     = upcomings.Remove(index);

            var playback = PlaybackManager.GetInstance();

            playback.Play(track);
        }
Example #29
0
        private void ToggleButton_OnChecked(object sender, RoutedEventArgs e)
        {
            var tb = sender as ToggleButton;

            if (tb?.IsChecked == null)
            {
                return;
            }
            if (PlaybackManager.PlaybackState == PlaybackManager.StreamingPlaybackState.Stopped)
            {
                PlaybackManager.PlayTrack(TrackManager.CurrentTrack = TrackManager.Queue.Dequeue());
            }
            else if (PlaybackManager.PlaybackState != PlaybackManager.StreamingPlaybackState.Buffering)
            {
                PlaybackManager.SetState(tb.IsChecked.Value ? PlaybackState.Playing : PlaybackState.Paused);
            }
        }
Example #30
0
        public override Systems CreateUpdateSystems(IContexts contexts)
        {
            if (Camera.main == null)
            {
                throw new Exception("Camera.main is null");
            }
            Contexts _contexts = (Contexts)contexts;

            _gameModule = GameModuleFactory.CreateCompositeGameModule(_contexts);
            var sessionObjects = _contexts.session.clientSessionObjects;

            SyncLastestManager netSyncManager  = sessionObjects.NetSyncManager;
            PlaybackManager    playbackManager = sessionObjects.PlaybackManager;
            var predictionManager            = sessionObjects.UserPredictionManager;
            var predicatoinProvider          = sessionObjects.UserPredictionProvider;
            ISimulationTimer simulationTimer = sessionObjects.SimulationTimer;

            var systems = new Feature("LoginSuccState");

            systems.Add(new DriveTimeSystem(_contexts));
            systems.Add(new PrepareSnapshotPairSystem(_contexts));
            systems.Add(new ClientUserCmdFeature("UserCmd", _contexts));
            systems.Add(new ClientProfileFeature("Profile", _contexts));
            if (SharedConfig.IsReplay)
            {
                systems.Add(new UserCmdReplaySystem(_contexts));
                systems.Add(new PrepareSnapshotPairSystem(_contexts));
            }
            systems.Add(new ClientMainFeature(
                            "LoginSuccSystems",
                            _gameModule,
                            netSyncManager,
                            playbackManager,
                            predictionManager,
                            predicatoinProvider,
                            simulationTimer,
                            sessionObjects.VehicleCmdExecuteSystemHandler,
                            new ClientVehicleExecutionSelector(_contexts),
                            _contexts.session.commonSession));
            /*车辆命令走老流程*/
            systems.Add(new UserCmdSendSystem(_contexts).WithExecFrameStep(EEcecuteStep.CmdFrameStep));
            /*用户的命令*/
            systems.Add(new UserCmdUpdateSystem(_contexts).WithExecFrameStep(EEcecuteStep.CmdFrameStep));
            return(systems);
        }