Пример #1
0
        private void createMono()
        {
            volumeBarGdi_         = new LcdGdiProgressBar();
            volumeBarGdi_.Size    = new SizeF(136, 5);
            volumeBarGdi_.Margin  = new MarginF(12, 38, 0, 0);
            volumeBarGdi_.Minimum = 0;
            volumeBarGdi_.Maximum = 100;
            volumeBarGdi_.Value   = (int)(this.volume_ * 100);

            Icon icon = (Icon)Resource.lowVolume;

            icon                  = new Icon(icon, 16, 16);
            lowVolumeIcon_        = new LcdGdiIcon(icon);
            lowVolumeIcon_.Margin = new MarginF(10, 20, 0, 0);

            icon = (Icon)Resource.highVolume;

            icon                   = new Icon(icon, 16, 16);
            highVolumeIcon_        = new LcdGdiIcon(icon);
            highVolumeIcon_.Margin = new MarginF(134, 20, 0, 0);

            this.Children.Add(volumeBarGdi_);
            this.Children.Add(highVolumeIcon_);
            this.Children.Add(lowVolumeIcon_);
        }
Пример #2
0
        /// <summary>
        /// This event handler is called before the page starts its update.
        /// </summary>
        private static void Page_Updating(object sender, UpdateEventArgs e)
        {
            LcdGdiPage page = (LcdGdiPage)sender;

            // Makes the progress bar fill 10% per second
            LcdGdiProgressBar progressBar = (LcdGdiProgressBar)page.Children[2];

            progressBar.Value = (int)((e.ElapsedTotalTime.TotalSeconds % 10.0) * 10.0);

            // Makes the polygon blink every 0.5 second
            LcdGdiPolygon polygon = (LcdGdiPolygon)page.Children[3];

            polygon.Brush = e.ElapsedTotalTime.Milliseconds < 500 ? Brushes.White : Brushes.Black;
        }
        private void createColor()
        {
            settingsGdi_[0] = new LcdGdiText("shuffle: " + shuffle_, font3_);
            settingsGdi_[0].HorizontalAlignment = LcdGdiHorizontalAlignment.Center;
            settingsGdi_[0].Margin = new MarginF(5, 5, 5, 0);

            settingsGdi_[1] = new LcdGdiText("Auto DJ: " + autoDJ_, font3_);
            settingsGdi_[1].HorizontalAlignment = LcdGdiHorizontalAlignment.Left;
            settingsGdi_[1].Margin = new MarginF(5, 30, 5, 0);

            settingsGdi_[2] = new LcdGdiText("Equalizer: " + equaliser_, font3_);
            settingsGdi_[2].HorizontalAlignment = LcdGdiHorizontalAlignment.Left;
            settingsGdi_[2].Margin = new MarginF(5, 55, 5, 0);

            settingsGdi_[3] = new LcdGdiText("Repeat: " + repeat_, font3_);
            settingsGdi_[3].HorizontalAlignment = LcdGdiHorizontalAlignment.Left;
            settingsGdi_[3].VerticalAlignment   = LcdGdiVerticalAlignment.Top;
            settingsGdi_[3].Margin = new MarginF(5, 80, 0, 0);

            settingsGdi_[4] = new LcdGdiText("Volume", font3_);
            settingsGdi_[4].HorizontalAlignment = LcdGdiHorizontalAlignment.Left;
            settingsGdi_[4].VerticalAlignment   = LcdGdiVerticalAlignment.Top;
            settingsGdi_[4].Margin = new MarginF(5, 105, 0, 0);

            volumeBarGdi_         = new LcdGdiProgressBar();
            volumeBarGdi_.Minimum = 0;
            volumeBarGdi_.Maximum = 100;
            volumeBarGdi_.Size    = new SizeF(310, 20);
            volumeBarGdi_.Margin  = new MarginF(5, 150, 5, 0);

            this.Children.Add(backgroundGdi_);
            this.Children.Add(settingsGdi_[0]);
            this.Children.Add(settingsGdi_[1]);
            this.Children.Add(settingsGdi_[2]);
            this.Children.Add(settingsGdi_[3]);
            this.Children.Add(settingsGdi_[4]);
            this.Children.Add(volumeBarGdi_);
        }
Пример #4
0
        private void createColor()
        {
            volumeBarGdi_         = new LcdGdiProgressBar();
            volumeBarGdi_.Minimum = 0;
            volumeBarGdi_.Maximum = 100;
            volumeBarGdi_.Size    = new SizeF(310, 20);
            volumeBarGdi_.Margin  = new MarginF(5, 150, 5, 0);

            highVolumeImage_    = (Image)Resource.highVolumeG19;
            highVolumeImageGdi_ = new LcdGdiImage(highVolumeImage_);
            highVolumeImageGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Right;
            highVolumeImageGdi_.Margin = new MarginF(0, 90, 5, 0);

            lowVolumeImage_    = (Image)Resource.lowVolumeG19;
            lowVolumeImageGdi_ = new LcdGdiImage(lowVolumeImage_);
            lowVolumeImageGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Left;
            lowVolumeImageGdi_.Margin = new MarginF(5, 90, 5, 0);

            this.Children.Add(backgroundGdi_);
            this.Children.Add(highVolumeImageGdi_);
            this.Children.Add(lowVolumeImageGdi_);
            this.Children.Add(volumeBarGdi_);
        }
        private void createMono()
        {
            titleGdi_ = new LcdGdiText(this.title_, font_);
            titleGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Center;
            titleGdi_.Margin = new MarginF(-2, -1, 0, 0);

            artistGdi_ = new LcdGdiText(this.artist_, font_);
            artistGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Center;
            artistGdi_.VerticalAlignment   = LcdGdiVerticalAlignment.Top;
            artistGdi_.Margin = new MarginF(-2, 12, 0, 0);

            positionGdi_ = new LcdGdiText(Conversions.timetoString(this.position_), font2_);
            positionGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Left;
            positionGdi_.Margin = new MarginF(10, 26, 0, 0);

            ratingGdi_ = new LcdGdiText("", font2_);
            ratingGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Center;
            ratingGdi_.Margin = new MarginF(0, 26, 0, 0);

            if (this.rating_ != 0)
            {
                ratingGdi_.Text = this.rating_.ToString() + " / 5";
            }
            else
            {
                ratingGdi_.Text = "";
            }

            durationGdi_ = new LcdGdiText(Conversions.timetoString(this.duration_), font2_);
            durationGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Right;
            durationGdi_.Margin = new MarginF(0, 26, 13, 0);

            progressBarGdi_         = new LcdGdiProgressBar();
            progressBarGdi_.Size    = new SizeF(136, 5);
            progressBarGdi_.Margin  = new MarginF(12, 38, 0, 0);
            progressBarGdi_.Minimum = 0;
            progressBarGdi_.Maximum = 100;

            titleScroll_                     = new LcdGdiScrollViewer(titleGdi_);
            titleScroll_.AutoScrollX         = true;
            titleScroll_.AutoScrollY         = false;
            titleScroll_.AutoScrollSpeedY    = 0;
            titleScroll_.AutoScrollSpeedX    = 10;
            titleScroll_.HorizontalAlignment = LcdGdiHorizontalAlignment.Stretch;
            titleScroll_.VerticalAlignment   = LcdGdiVerticalAlignment.Top;

            artistScroll_                     = new LcdGdiScrollViewer(artistGdi_);
            artistScroll_.AutoScrollY         = false;
            artistScroll_.AutoScrollX         = true;
            artistScroll_.AutoScrollSpeedY    = 0;
            artistScroll_.AutoScrollSpeedX    = 10;
            artistScroll_.HorizontalAlignment = LcdGdiHorizontalAlignment.Stretch;
            artistScroll_.VerticalAlignment   = LcdGdiVerticalAlignment.Top;

            this.Children.Add(titleGdi_);
            this.Children.Add(artistGdi_);
            this.Children.Add(titleScroll_);
            this.Children.Add(artistScroll_);
            this.Children.Add(positionGdi_);
            this.Children.Add(ratingGdi_);
            this.Children.Add(durationGdi_);
            this.Children.Add(progressBarGdi_);
        }
        private void createColor()
        {
            artistGdi_ = new LcdGdiText(this.artist_, font3_);
            artistGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Center;
            artistGdi_.Margin = new MarginF(5, 5, 5, 0);

            titleGdi_ = new LcdGdiText(this.title_, font3_);
            titleGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Center;
            titleGdi_.Margin = new MarginF(5, 30, 5, 0);

            albumGdi_ = new LcdGdiText(this.album_, font3_);
            albumGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Center;
            albumGdi_.Margin = new MarginF(5, 55, 5, 0);

            positionGdi_ = new LcdGdiText(Conversions.timetoString(this.position_), font4_);
            positionGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Left;
            positionGdi_.Margin = new MarginF(5, 105, 0, 0);

            durationGdi_ = new LcdGdiText(Conversions.timetoString(this.duration_), font4_);
            durationGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Right;
            durationGdi_.Margin = new MarginF(0, 105, 5, 0);

            artworkGdi_ = new LcdGdiImage(Conversions.Base64ToImage(artwork_));
            artworkGdi_.HorizontalAlignment = LcdGdiHorizontalAlignment.Center;
            artworkGdi_.Size   = new SizeF(130, 130);
            artworkGdi_.Margin = new MarginF(0, 105, 0, 0);

            progressBarGdi_         = new LcdGdiProgressBar();
            progressBarGdi_.Minimum = 0;
            progressBarGdi_.Maximum = 100;
            progressBarGdi_.Size    = new SizeF(310, 20);
            progressBarGdi_.Margin  = new MarginF(5, 80, 5, 0);

            titleScroll_                     = new LcdGdiScrollViewer(titleGdi_);
            titleScroll_.AutoScrollX         = true;
            titleScroll_.AutoScrollY         = false;
            titleScroll_.AutoScrollSpeedY    = 0;
            titleScroll_.AutoScrollSpeedX    = 10;
            titleScroll_.HorizontalAlignment = LcdGdiHorizontalAlignment.Stretch;
            titleScroll_.VerticalAlignment   = LcdGdiVerticalAlignment.Top;

            artistScroll_                     = new LcdGdiScrollViewer(artistGdi_);
            artistScroll_.AutoScrollY         = false;
            artistScroll_.AutoScrollX         = true;
            artistScroll_.AutoScrollSpeedY    = 0;
            artistScroll_.AutoScrollSpeedX    = 10;
            artistScroll_.HorizontalAlignment = LcdGdiHorizontalAlignment.Stretch;
            artistScroll_.VerticalAlignment   = LcdGdiVerticalAlignment.Top;

            albumScroll_                     = new LcdGdiScrollViewer(albumGdi_);
            albumScroll_.AutoScrollY         = false;
            albumScroll_.AutoScrollX         = true;
            albumScroll_.AutoScrollSpeedY    = 0;
            albumScroll_.AutoScrollSpeedX    = 10;
            albumScroll_.HorizontalAlignment = LcdGdiHorizontalAlignment.Stretch;
            albumScroll_.VerticalAlignment   = LcdGdiVerticalAlignment.Top;

            fullStarImage_  = (Image)Resource.star_rating_full;
            halfStarImage_  = (Image)Resource.star_rating_half;
            emptyStarImage_ = (Image)Resource.star_rating_empty;
            emptyImage_     = (Image)Resource.empty;

            this.Children.Add(backgroundGdi_);
            this.Children.Add(titleGdi_);
            this.Children.Add(titleScroll_);
            this.Children.Add(artistGdi_);
            this.Children.Add(artistScroll_);
            this.Children.Add(positionGdi_);
            this.Children.Add(durationGdi_);
            this.Children.Add(progressBarGdi_);
            this.Children.Add(albumGdi_);
            this.Children.Add(albumScroll_);
            this.Children.Add(artworkGdi_);

            ratingColorGdi_ = new LcdGdiImage[5];

            float tempRating = this.rating_;

            for (int i = 0; i < 5; i++)
            {
                if (this.rating_ != 0)
                {
                    if (tempRating - 1 >= 0)
                    {
                        ratingColorGdi_[i] = new LcdGdiImage(fullStarImage_);
                        tempRating--;
                    }

                    else if (tempRating - 0.5f == 0)
                    {
                        ratingColorGdi_[i] = new LcdGdiImage(halfStarImage_);
                        tempRating        -= 0.5f;
                    }

                    else
                    {
                        ratingColorGdi_[i] = new LcdGdiImage(emptyStarImage_);
                    }
                }
                else
                {
                    ratingColorGdi_[i] = new LcdGdiImage(emptyStarImage_);
                }
                ratingColorGdi_[i].HorizontalAlignment = LcdGdiHorizontalAlignment.Left;
                ratingColorGdi_[i].Margin = new MarginF((18 * i) + 5, 215, 0, 0);
                this.Children.Add(ratingColorGdi_[i]);
            }
        }
        /// <summary>
        /// Updates the code page before rendering it.
        /// </summary>
        /// <param name="sender">Page being updated</param>
        /// <param name="e">Update event arguments</param>
        private static void UpdateEntryPage(object sender, UpdateEventArgs e)
        {
            LcdGdiPage         page        = (LcdGdiPage)sender;
            LcdGdiImage        refreshIcon = (LcdGdiImage)page.Children[0];
            LcdGdiProgressBar  progressBar = (LcdGdiProgressBar)page.Children[2];
            LcdGdiScrollViewer scrollView  = (LcdGdiScrollViewer)page.Children[4];
            LcdGdiText         textName    = (LcdGdiText)scrollView.Child;
            LcdGdiText         textCode    = (LcdGdiText)page.Children[5];

            lock (entriesList.Lock)
            {
                progressBar.IsVisible = false;

                if (!entryCodeRequested && !entryCode.HasValue)
                {
                    textName.Text      = entriesList.Items[entriesList.Selected].Name;
                    entryCodeRequested = true;

                    if (entriesList.Items[entriesList.Selected].Touch)
                    {
                        textCode.Text         = "Touch your YubiKey...";
                        refreshIcon.IsVisible = false;
                        return;
                    }
                }
                entryCodeRequested = false;

                DateTime time      = DateTime.UtcNow;
                Int32    timestamp = (Int32)(time.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                if (!entryCode.HasValue || entryCode.Value.ValidTo != 0 && entryCode.Value.ValidTo < timestamp && entriesList.Items[entriesList.Selected].Type == OATHController.Type.TOTP && !entriesList.Items[entriesList.Selected].Touch)
                {
                    try
                    {
                        entryCode     = oath.Calculate(entriesList.Items[entriesList.Selected], time);
                        textCode.Text = entryCode.Value.Value;
                    }
                    catch (UnexpectedResponseException ex)
                    {
                        entryCode = new OATHController.Code(); // Hack: Set empty code object to prevent code regen
                        if (ex.SW == APDUResponse.StatusWord.AUTH_REQUIRED)
                        {
                            textCode.Text = "Touch timeout.";
                        }
                        else
                        {
                            textCode.Text = "Error: " + ex.SW.ToString();
                        }
                        refreshIcon.IsVisible = true;
                        return;
                    }
                }

                if (entriesList.Items[entriesList.Selected].Type == OATHController.Type.TOTP && entryCode.HasValue && entryCode.Value.ValidTo != 0)
                {
                    if (entryCode.Value.ValidTo > timestamp)
                    {
                        progressBar.IsVisible = true;
                        progressBar.Value     = (int)(((float)(entryCode.Value.ValidTo - timestamp) / entriesList.Items[entriesList.Selected].Period) * 100);
                    }
                    else if (entriesList.Items[entriesList.Selected].Touch)
                    {
                        textCode.Text         = "Code expired.";
                        progressBar.IsVisible = false;
                        refreshIcon.IsVisible = true;
                    }
                }
            }
        }