Esempio n. 1
0
 public PlaylistBuilder(MediaInfoKeeper p_keeper, IMonitorThreadInterface p_monitor)
 {
     try
     {
         wmp = p_monitor.PlayerObject as WindowsMediaPlayer;
         keeper = p_keeper;
         monitor = p_monitor;
     }
     catch (Exception e)
     {
         Log.Write(e);
         throw e;
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Set all controls to correct state according to selected plugin
        /// </summary>
        /// <param name="newPlugin">Plugin was changed in settings</param>
        /// <param name="newKeeper">Keeper settings changed</param>
        private void StartOperations(bool newPlugin, bool newKeeper)
        {
            try
            {
                if ((Parameters.CurrentPlayerPlugin == PlayerPlugin.iTunes) || (Parameters.CurrentPlayerPlugin == PlayerPlugin.WMP))
                {
                    cmbSourcePlaylist.Items.Clear();
                    notifyIconMain.BalloonTipTitle = String.Format(iPlaylist.Resources.Labels.NotifyBaloonTitleFormat, Consts.Version, Parameters.CurrentPlayerPlugin.ToString());
                    notifyIconMain.BalloonTipText = String.Format(iPlaylist.Resources.Labels.NotifyBaloonText);
                    notifyIconMain.Text = String.Format(iPlaylist.Resources.Labels.NotifyBaloonTitleFormat, Consts.Version, Parameters.CurrentPlayerPlugin.ToString());
                    tlsStatusText.Text = iPlaylist.Resources.Labels.DefaultStatus;
                    // force to load version info
                    lblMediaPlayerInfo.Text = Consts.Labels.EmptyLabel;

                    if ((newPlugin) || (newKeeper))
                    {
                        // this means that plugin was changed or usage of profile folder, so we need take care of it...
                        // we need to stop existing monitor and keeper (if needed)
                        if (monitor != null)
                        {
                            if (monitor.State == MonitorState.Started)
                            {
                                monitor.Stop();
                            }
                            monitor = null;

                            if (newKeeper)
                            {
                                if (keeper != null)
                                {
                                    keeper.Save();
                                    keeper.SaveSummary();
                                    keeper = null;
                                }
                            }
                        }
                    }

                    if (keeper == null)
                    {
                        keeper = new MediaInfoKeeper(Consts.Version,
                            Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + Path.DirectorySeparatorChar +
                            Consts.Parameters.FolderName);
                        keeper.Load();
                    }

                    if (monitor == null)
                    {
                        if (Parameters.CurrentPlayerPlugin == PlayerPlugin.iTunes)
                        {
                            monitor = new iTunesInterfaceLib.MonitorThread(keeper);
                        }
                        else
                        {
                            // this is WMP
                            monitor = new WMPInterfaceLib.MonitorThread(keeper);
                        }

                        if (Parameters.MinimizeOnStart)
                        {
                            notifyIconMain.ShowBalloonTip(Consts.Labels.BaloonTimeout);
                        }
                    }
                    // monitor is set, but not started yet, it will be started by screen update process

                    // starting ticker process, giving it ability to start monitor
                    timerScreenUpdate.Start();

                    if (Parameters.ShowPlayerControls)
                    {
                        showPlayerControlsToolStripMenuItem.Checked = true;
                    }
                    lblVersion.Text = Consts.Version;
                    lblAssembly.Text = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();

                    if (Parameters.PauseOnLock)
                    {
                        SystemEvents.SessionSwitch += SystemEvents_SessionSwitch;
                    }

                    keyPlayPause.Unregister();
                    keyNextTrack.Unregister();
                    keyPrevTrack.Unregister();
                    keyMediaNextTrack.Unregister();
                    keyMediaPrevTrack.Unregister();
                    keyMediaPlayPause.Unregister();
                    keyMediaStop.Unregister();

                    if (Parameters.AllowGlobalHotKeys)
                    {
                        keyPlayPause.Register(Parameters.HotKeyPlayPause, Parameters.HotKeyModifiers);
                        keyNextTrack.Register(Parameters.HotKeyNextTrack, Parameters.HotKeyModifiers);
                        keyPrevTrack.Register(Parameters.HotKeyPrevTrack, Parameters.HotKeyModifiers);
                        keyMediaNextTrack.Register(Keys.MediaNextTrack, 0);
                        keyMediaPrevTrack.Register(Keys.MediaPreviousTrack, 0);
                        keyMediaPlayPause.Register(Keys.MediaPlayPause, 0);
                        keyMediaStop.Register(Keys.MediaStop, 0);
                    }

                }
                else
                {
                    // TODO: show some error, cannot start operations until plugin is selected
                }
            }
            catch (Exception e)
            {
                Log.Write(e);
            }
        }
Esempio n. 3
0
 public MonitorThread(MediaInfoKeeper p_keeper)
 {
     checkPosThread = new Thread(checkPos);
     keeper = p_keeper;
 }