Beispiel #1
0
 private async Task TogglePlayback()
 {
     ReloadSprites();
     if (player.IsPlaying())
     {
         menuItemPlayPause.Text = "Play";
         if (Settings.Get <bool>("ThumbnailButton") && !Settings.Get <bool>("HideFromAltTab"))
         {
             button.Icon    = Properties.Resources.play_ico;
             button.Tooltip = "Play";
         }
         centerPanel.StopVisualiser(player);
         await player.Stop();
     }
     else
     {
         menuItemPlayPause.Text = "Pause";
         if (Settings.Get <bool>("ThumbnailButton") && !Settings.Get <bool>("HideFromAltTab"))
         {
             button.Icon    = Properties.Resources.pause_ico;
             button.Tooltip = "Pause";
         }
         centerPanel.StartVisualiser(player);
         player.Play();
     }
 }
Beispiel #2
0
 private async Task TogglePlayback()
 {
     if (player.IsPlaying())
     {
         Task stopTask = player.Stop(false);
         ReloadSprites();
         menuItemPlayPause.Text = Localisation.Current.tPlay;
         if (Settings.Get <bool>(Setting.ThumbnailButton) && !Settings.Get <bool>(Setting.HideFromAltTab))
         {
             button.Icon    = Properties.Resources.play_ico;
             button.Tooltip = Localisation.Current.tPlay;
         }
         centerPanel.StopVisualiser(player);
         await stopTask;
     }
     else
     {
         player.Play();
         ReloadSprites();
         menuItemPlayPause.Text = Localisation.Current.tPause;
         if (Settings.Get <bool>(Setting.ThumbnailButton) && !Settings.Get <bool>(Setting.HideFromAltTab))
         {
             button.Icon    = Properties.Resources.pause_ico;
             button.Tooltip = Localisation.Current.tPause;
         }
         centerPanel.StartVisualiser(player);
     }
 }
Beispiel #3
0
 private async Task TogglePlayback()
 {
     if (player.IsPlaying())
     {
         Task stopTask = player.Stop();
         ReloadSprites();
         menuItemPlayPause.Text = "Play";
         if (Settings.Get <bool>(Setting.ThumbnailButton) && !Settings.Get <bool>(Setting.HideFromAltTab))
         {
             button.Icon    = Properties.Resources.play_ico;
             button.Tooltip = "Play";
         }
         if (Settings.Get <bool>(Setting.EnableVisualiser))
         {
             centerPanel.StopVisualiser(player);
         }
         await stopTask;
     }
     else
     {
         player.Play();
         ReloadSprites();
         menuItemPlayPause.Text = "Pause";
         if (Settings.Get <bool>(Setting.ThumbnailButton) && !Settings.Get <bool>(Setting.HideFromAltTab))
         {
             button.Icon    = Properties.Resources.pause_ico;
             button.Tooltip = "Pause";
         }
         if (Settings.Get <bool>(Setting.EnableVisualiser))
         {
             centerPanel.StartVisualiser(player);
         }
     }
 }
Beispiel #4
0
        public MainForm()
        {
            InitializeComponent();
            contextMenu1.MenuItems.Add(new MenuItem("LISTEN.moe Desktop Client v" + Globals.VERSION.ToString())
            {
                Enabled = false
            });
            Settings.LoadSettings();
            //Write immediately after loading to flush any new default settings
            Settings.WriteSettings();

            SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true);
            RawInput.RegisterDevice(HIDUsagePage.Generic, HIDUsage.Keyboard, RawInputDeviceFlags.InputSink, this.Handle);

            cts = new CancellationTokenSource();
            ct  = cts.Token;
#pragma warning disable CS4014
            CheckForUpdates(new TaskFactory(TaskScheduler.FromCurrentSynchronizationContext()));
#pragma warning restore CS4014
            StartUpdateAutochecker();

            this.MouseWheel += Form1_MouseWheel;
            this.Icon        = Properties.Resources.icon;

            lblAlbum.Bounds = new Rectangle(58, 26, 321, 22);
            lblTitle.Bounds = new Rectangle(56, 5, 321, 43);
            lblTitle.Text   = "Connecting...";

            notifyIcon1.ContextMenu = contextMenu2;
            notifyIcon1.Icon        = Properties.Resources.icon;

            favSprite          = SpriteLoader.LoadFavSprite();
            fadedFavSprite     = SpriteLoader.LoadFadedFavSprite();
            picFavourite.Image = favSprite.Frames[0];

            RawInput.RegisterCallback(VirtualKeys.MediaPlayPause, async() =>
            {
                await TogglePlayback();
            });

            Connect();

            player = new WebStreamPlayer("https://listen.moe/stream");
            player.SetVisualiser(visualiser);
            player.Play();

            renderLoop = Task.Run(() =>
            {
                while (!ct.IsCancellationRequested)
                {
                    this.Invalidate();
                    Thread.Sleep(33);
                }
            });

            ReloadScale();
            ReloadSettings();
        }
Beispiel #5
0
        public async Task ReloadStream()
        {
            centerPanel.StopVisualiser(player);

            // Reload audio stream
            await player.Stop();

            string stream = Settings.Get <StreamType>(Setting.StreamType) == StreamType.Jpop ? JPOP_STREAM : KPOP_STREAM;

            player.SetStreamUrl(stream);
            player.Play();

            // Reload web socket
            songInfoStream.Reconnect();
            centerPanel.ReloadVisualiser();

            if (Settings.Get <bool>(Setting.EnableVisualiser))
            {
                centerPanel.StartVisualiser(player);
            }
        }
Beispiel #6
0
 private async Task TogglePlayback()
 {
     if (player.IsPlaying())
     {
         picPlayPause.Image     = Properties.Resources.play;
         menuItemPlayPause.Text = "Play";
         visualiser.Stop();
         await player.Stop();
     }
     else
     {
         picPlayPause.Image     = Properties.Resources.pause;
         menuItemPlayPause.Text = "Pause";
         visualiser.Start();
         player.Play();
     }
 }
Beispiel #7
0
        public MainForm()
        {
            InitializeComponent();
            this.MinimumSize = new Size(Settings.DEFAULT_WIDTH, Settings.DEFAULT_HEIGHT);

            SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true);

            centerPanel.MouseDown += Form1_MouseDown;
            centerPanel.MouseMove += Form1_MouseMove;
            centerPanel.MouseUp   += Form1_MouseUp;
            panelRight.MouseDown  += Form1_MouseDown;
            panelRight.MouseMove  += Form1_MouseMove;
            panelRight.MouseUp    += Form1_MouseUp;

            contextMenu1.MenuItems.Add(new MenuItem("LISTEN.moe Desktop Client v" + Globals.VERSION.ToString())
            {
                Enabled = false
            });
            Settings.LoadSettings();
            //Write immediately after loading to flush any new default settings
            Settings.WriteSettings();

            cts = new CancellationTokenSource();
            ct  = cts.Token;
#pragma warning disable CS4014
            CheckForUpdates(new TaskFactory(TaskScheduler.FromCurrentSynchronizationContext()));
#pragma warning restore CS4014
            StartUpdateAutochecker();

            MouseWheel += Form1_MouseWheel;
            this.Icon   = Properties.Resources.icon;

            notifyIcon1.ContextMenu = contextMenu2;
            notifyIcon1.Icon        = Properties.Resources.icon;

            Task.Run(async() => await LoadFavSprite(heartFav)).Wait();

            if (Settings.Get <bool>(Setting.ThumbnailButton))
            {
                button        = new ThumbnailToolBarButton(Properties.Resources.pause_ico, "Pause");
                button.Click += async(_, __) => await TogglePlayback();

                TaskbarManager.Instance.ThumbnailToolBars.AddButtons(this.Handle, button);
            }

            if (Settings.Get <bool>(Setting.DiscordPresence))
            {
                InitDiscordPresence();
            }

            Connect();

            string stream = Settings.Get <StreamType>(Setting.StreamType) == StreamType.Jpop ? JPOP_STREAM : KPOP_STREAM;
            player = new WebStreamPlayer(stream);
            player.Play();

            renderLoop = Task.Run(() =>
            {
                while (!ct.IsCancellationRequested)
                {
                    centerPanel.Invalidate();
                    Thread.Sleep(33);
                }
            });

            ReloadScale();
            ReloadSettings();

            SizeChanged += MainForm_SizeChanged;
            UpdatePanelExcludedRegions();
        }
Beispiel #8
0
        public MainForm()
        {
            InitializeComponent();
            SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true);

            centerPanel.MouseDown += Form1_MouseDown;
            centerPanel.MouseMove += Form1_MouseMove;
            centerPanel.MouseUp   += Form1_MouseUp;
            panelRight.MouseDown  += Form1_MouseDown;
            panelRight.MouseMove  += Form1_MouseMove;
            panelRight.MouseUp    += Form1_MouseUp;

            contextMenu1.MenuItems.Add(new MenuItem("LISTEN.moe Desktop Client v" + Globals.VERSION.ToString())
            {
                Enabled = false
            });
            Settings.LoadSettings();
            //Write immediately after loading to flush any new default settings
            Settings.WriteSettings();

            cts = new CancellationTokenSource();
            ct  = cts.Token;
#pragma warning disable CS4014
            CheckForUpdates(new TaskFactory(TaskScheduler.FromCurrentSynchronizationContext()));
#pragma warning restore CS4014
            StartUpdateAutochecker();

            this.MouseWheel += Form1_MouseWheel;
            this.Icon        = Properties.Resources.icon;

            notifyIcon1.ContextMenu = contextMenu2;
            notifyIcon1.Icon        = Properties.Resources.icon;

            lightFavSprite     = SpriteLoader.LoadFavSprite();
            fadedFavSprite     = SpriteLoader.LoadFadedFavSprite();
            darkFavSprite      = SpriteLoader.LoadDarkFavSprite();
            favSprite          = lightFavSprite;
            picFavourite.Image = favSprite.Frames[0];

            if (Settings.Get <bool>("ThumbnailButton"))
            {
                button        = new ThumbnailToolBarButton(Properties.Resources.pause_ico, "Pause");
                button.Click += async(_, __) => await TogglePlayback();

                TaskbarManager.Instance.ThumbnailToolBars.AddButtons(this.Handle, button);
            }

            Connect();

            player = new WebStreamPlayer("https://listen.moe/stream");
            player.SetVisualiser(centerPanel.Visualiser);
            player.Play();

            renderLoop = Task.Run(() =>
            {
                while (!ct.IsCancellationRequested)
                {
                    centerPanel.Invalidate();
                    Thread.Sleep(33);
                }
            });

            ReloadScale();
            ReloadSettings();

            this.SizeChanged += MainForm_SizeChanged;
            UpdatePanelExcludedRegions();
        }