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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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();
        }
Esempio n. 7
0
 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();
         }
     }
 }
Esempio n. 8
0
 private void episodePlayback_Tick(object sender, EventArgs e)
 {
     Debug.WriteLine("Episode - tick.");
     ProgressBarValue = PodcastPlayer.getEpisodePlayPosition();
 }