Ejemplo n.º 1
0
        public FormSettings(MainForm mainForm, WebStreamPlayer player)
        {
            InitializeComponent();
            this.Icon     = Properties.Resources.icon;
            this.mainForm = mainForm;
            this.player   = player;

            LoadAndBindCheckboxSetting(cbCloseToTray, "CloseToTray");
            LoadAndBindCheckboxSetting(cbEnableVisualiser, "EnableVisualiser");
            LoadAndBindCheckboxSetting(cbHideFromAltTab, "HideFromAltTab");
            LoadAndBindCheckboxSetting(cbUpdateAutocheck, "UpdateAutocheck");
            LoadAndBindCheckboxSetting(cbThumbnailButton, "ThumbnailButton");
            LoadAndBindCheckboxSetting(cbTopmost, "TopMost");
            LoadAndBindCheckboxSetting(cbVisualiserBars, "VisualiserBars");
            LoadAndBindCheckboxSetting(cbVisualiserFadeEdges, "VisualiserFadeEdges");

            LoadAndBindColorSetting(panelVisualiserColor, "VisualiserColor");
            LoadAndBindColorSetting(panelBaseColor, "BaseColor");
            LoadAndBindColorSetting(panelAccentColor, "AccentColor");

            numericUpdateInterval.Value         = Settings.Get <int>("UpdateInterval") / 60;
            numericUpdateInterval.ValueChanged += NumericUpdateInterval_ValueChanged;

            float scale = Settings.Get <float>("Scale");

            tbResolutionScale.Value = (int)(scale * 10);
            lblResolutionScale.Text = scale.ToString("N1");

            tbVisualiserOpacity.Value = (int)(Settings.Get <float>("VisualiserTransparency") * 255);
            float opacity = Settings.Get <float>("FormOpacity");

            tbOpacity.Value = (int)(opacity * 255);
            lblOpacity.Text = opacity.ToString("N1");

            panelNotLoggedIn.Visible = !User.LoggedIn;
            panelLoggedIn.Visible    = User.LoggedIn;
            lblLoginStatus.Text      = "Logged in as " + Settings.Get <string>("Username");
            lblLoginStatus.Location  = new Point((this.Width / 2) - (lblLoginStatus.Width / 2), lblLoginStatus.Location.Y);

            User.OnLoginComplete += () =>
            {
                lblLoginStatus.Text     = "Logged in as " + Settings.Get <string>("Username");
                lblLoginStatus.Location = new Point((this.Width / 2) - (lblLoginStatus.Width / 2), lblLoginStatus.Location.Y);
                txtUsername.Clear();
                txtPassword.Clear();
                panelNotLoggedIn.Visible = false;
                panelLoggedIn.Visible    = true;
                panelLoggedIn.BringToFront();
            };
            User.OnLogout += () =>
            {
                panelLoggedIn.Visible    = false;
                panelNotLoggedIn.Visible = true;
                panelNotLoggedIn.BringToFront();
            };

            #region AudioTab
            reloadAudioDevices();
            #endregion
        }
Ejemplo n.º 2
0
 public void StopVisualiser(WebStreamPlayer player)
 {
     if (Visualiser != null)
     {
         player.SetVisualiser(null);
         Visualiser.Stop();
     }
 }
Ejemplo n.º 3
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();
        }
Ejemplo n.º 4
0
 public void StartVisualiser(WebStreamPlayer player)
 {
     if (Visualiser == null)
     {
         Visualiser = new AudioVisualiser();
         Visualiser.SetBounds(new Rectangle(0, 0, this.Width, this.Height));
         Visualiser.Start();
         player.SetVisualiser(Visualiser);
     }
 }
Ejemplo n.º 5
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();
        }
Ejemplo n.º 6
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();
        }
Ejemplo n.º 7
0
 public void StartVisualiser(WebStreamPlayer player)
 {
     Visualiser.Start();
     player.SetVisualiser(Visualiser);
 }