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; }
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); }
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(); }
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); }
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()); }
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; }
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); }
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; }
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()); } }
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)); }
/// <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>()); }
private void Position_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e) { if (doNotTriggerSliderEvent) { return; } PlaybackManager.GetInstance().Position = (long)e.NewValue; }
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(); }
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); }
protected override void OnClosed(EventArgs e) { base.OnClosed(e); // unregister event var playback = PlaybackManager.GetInstance(); playback.PlaybackTick -= Playback_PlaybackTick; tokenSource.Cancel(); notificationWindow = null; }
// Use this for initialization void Awake() { if (Instance == null) { DontDestroyOnLoad(gameObject); Instance = this; } else if (Instance != this) { Destroy(gameObject); } }
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()); }
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; }
// 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); }
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(); }
/// <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); }
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); }
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); }
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); } }
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); }