static void Main() { Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); Application.ThreadException += ApplicationOnThreadException; AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var mainForm = new MainForm(); var subscriptionManager = new SubscriptionManager("subscriptions.xml"); var podcastLoader = new PodcastLoader(); var podcastPlayer = new PodcastPlayer(); var displayService = new MessageBoxDisplayService(); var settingsService = new SettingsService(); var systemInformationService = new SystemInformationService(); var subscriptionService = new NewSubscriptionService(); var presenter = new MainFormPresenter(mainForm, subscriptionManager, podcastLoader, podcastPlayer, displayService, settingsService, systemInformationService, subscriptionService); Application.Run(mainForm); }
public MainFormPresenter(IMainFormView mainFormView) { subscriptionView = mainFormView.SubscriptionView; episodeView = mainFormView.EpisodeView; podcastView = mainFormView.PodcastView; toolbarView = mainFormView.ToolbarView; this.mainFormView = mainFormView; mainFormView.Load += MainFormViewOnLoad; mainFormView.FormClosed += MainFormViewOnFormClosed; mainFormView.HelpRequested += OnHelpRequested; mainFormView.KeyUp += MainFormViewOnKeyUp; toolbarView.PlayClicked += OnButtonPlayClick; toolbarView.StopClicked += OnButtonStopClick; toolbarView.PauseClicked += OnButtonPauseClick; toolbarView.RemovePodcastClicked += OnButtonRemovePodcastClick; toolbarView.AddPodcastClicked += OnButtonAddSubscriptionClick; toolbarView.FavouriteChanged += OnButtonFavouriteCheckStateChanged; episodeView.Description = ""; episodeView.Title = ""; episodeView.PublicationDate = ""; subscriptionView.SelectionChanged += OnSelectedEpisodeChanged; subscriptionManager = new SubscriptionManager("subscriptions.xml"); podcastLoader = new PodcastLoader(); podcastPlayer = new PodcastPlayer(); podcasts = subscriptionManager.LoadPodcasts(); if (!SystemInformation.HighContrast) { mainFormView.BackColor = Color.White; } }
public MainForm() { InitializeComponent(); episodeView = new EpisodeView() { Dock = DockStyle.Fill }; podcastView = new PodcastView() { Dock = DockStyle.Fill }; subscriptionView = new SubscriptionView() { Dock = DockStyle.Fill }; splitContainer1.Panel1.Controls.Add(subscriptionView); episodeView.labelDescription.Text = ""; episodeView.labelEpisodeTitle.Text = ""; episodeView.labelPublicationDate.Text = ""; subscriptionView.treeViewPodcasts.AfterSelect += OnSelectedEpisodeChanged; if (!SystemInformation.HighContrast) { BackColor = Color.White; } subscriptionManager = new SubscriptionManager("subscriptions.xml"); podcastLoader = new PodcastLoader(); podcastPlayer = new PodcastPlayer(); }
static void Main() { Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); Application.ThreadException += ApplicationOnThreadException; AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException; var culture = new CultureInfo("en"); Thread.CurrentThread.CurrentUICulture = culture; Thread.CurrentThread.CurrentCulture = culture; CultureInfo.DefaultThreadCurrentUICulture = culture; CultureInfo.DefaultThreadCurrentCulture = culture; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var episodeView = new WpfEpisodeViewHost(); var subscriptionView = new SubscriptionView(); var podcastView = new PodcastView(); var toolbarView = new ToolBarView(); var podcastPlayer = new PodcastPlayer(); var podcastLoader = new PodcastLoader(); var settingsService = new SettingsService(); var subscriptionManager = new SubscriptionManager("subscriptions.xml"); var messageBoxDisplayService = new MessageBoxDisplayService(); var systemInformationService = new SystemInformationService(); var newSubscriptionService = new NewSubscriptionService(); var commands = new IToolbarCommand[] { new AddSubscriptionCommand(messageBoxDisplayService, newSubscriptionService, podcastLoader, subscriptionManager), new RemoveSubscriptionCommand(subscriptionView, subscriptionManager), new PlayCommand(podcastPlayer), new PauseCommand(podcastPlayer), new StopCommand(podcastPlayer), new FavouriteCommand(subscriptionView), new SettingsCommand() }; var mainForm = new MainForm(episodeView, subscriptionView, podcastView, toolbarView); // for now, keep presenters alive with Tags episodeView.Tag = new EpisodePresenter(episodeView, podcastPlayer); subscriptionView.Tag = new SubscriptionPresenter(subscriptionView); podcastView.Tag = new PodcastPresenter(podcastView); toolbarView.Tag = new ToolbarPresenter(toolbarView, commands); mainForm.Tag = new MainFormPresenter(mainForm, podcastLoader, subscriptionManager, messageBoxDisplayService, settingsService, systemInformationService, commands); Application.Run(mainForm); }
static void Main() { Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); Application.ThreadException += ApplicationOnThreadException; AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException; var culture = new CultureInfo("en"); Thread.CurrentThread.CurrentUICulture = culture; Thread.CurrentThread.CurrentCulture = culture; CultureInfo.DefaultThreadCurrentUICulture = culture; CultureInfo.DefaultThreadCurrentCulture = culture; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var subscriptionManager = new SubscriptionManager("subscriptions.xml"); var podcastLoader = new PodcastLoader(); var podcastPlayer = new PodcastPlayer(); var messageBoxDisplayService = new MessageBoxDisplayService(); var settingsService = new SettingsService(); var systemInformationService = new SystemInformationService(); var newSubscriptionService = new NewSubscriptionService(); var mainFormView = new MainForm(); var commands = new IToolbarCommand[] { new AddSubscriptionCommand(mainFormView.SubscriptionView, messageBoxDisplayService, newSubscriptionService, podcastLoader, subscriptionManager), new RemoveSubscriptionCommand(mainFormView.SubscriptionView, subscriptionManager), new PlayCommand(podcastPlayer), new PauseCommand(podcastPlayer), new StopCommand(podcastPlayer), new FavouriteCommand(mainFormView.SubscriptionView), new SettingsCommand() }; var mainFormPresenter = new MainFormPresenter(mainFormView, podcastLoader, subscriptionManager, podcastPlayer, messageBoxDisplayService, settingsService, systemInformationService, commands); Application.Run(mainFormView); }
private void stopButtonClicked(object sender, EventArgs e) { if (BackgroundAudioPlayer.Instance.PlayerState == PlayState.Stopped) { // We are already stopped (playback ended or something). Let's update the episode state. PodcastPlaybackManager.getInstance().CurrentlyPlayingEpisode.EpisodePlayState = PodcastEpisodeModel.EpisodePlayStateEnum.Downloaded; } else { if (BackgroundAudioPlayer.Instance.PlayerState == PlayState.Playing || BackgroundAudioPlayer.Instance.PlayerState == PlayState.Paused) { BackgroundAudioPlayer.Instance.Stop(); } } PodcastPlayer.PlaybackStopped(); }
private void playButtonClicked(object sender, EventArgs e) { if (BackgroundAudioPlayer.Instance.PlayerState == PlayState.Playing) { // Paused BackgroundAudioPlayer.Instance.Pause(); PodcastPlayer.setupUIForEpisodePaused(); // PlayButtonImage.Source = m_playButtonBitmap; (this.ApplicationBar.Buttons[1] as ApplicationBarIconButton).IconUri = new Uri("/Images/Light/play.png", UriKind.Relative); (this.ApplicationBar.Buttons[1] as ApplicationBarIconButton).Text = "Play"; } else if (BackgroundAudioPlayer.Instance.Track != null) { // Playing BackgroundAudioPlayer.Instance.Play(); PodcastPlayer.setupUIForEpisodePlaying(); // PlayButtonImage.Source = m_pauseButtonBitmap; (this.ApplicationBar.Buttons[1] as ApplicationBarIconButton).IconUri = new Uri("/Images/Light/pause.png", UriKind.Relative); (this.ApplicationBar.Buttons[1] as ApplicationBarIconButton).Text = "Pause"; } else { Debug.WriteLine("No track currently set. Trying to setup currently playing episode as track..."); PodcastEpisodeModel ep = PodcastPlaybackManager.getInstance().CurrentlyPlayingEpisode; if (ep != null) { PodcastPlaybackManager.getInstance().play(ep); } else { Debug.WriteLine("Error: No currently playing track either! Giving up..."); App.showErrorToast("Something went wrong. Cannot play the track."); PodcastPlayer.showNoPlayerLayout(); } } }
private void episodePlayback_Tick(object sender, EventArgs e) { Debug.WriteLine("Episode - tick."); ProgressBarValue = PodcastPlayer.getEpisodePlayPosition(); }