Example #1
0
        /// <summary>
        /// AffHeure
        /// </summary>
        private static void AffHeure()
        {
            if (Criteria.AffHeure)
            {
                foreach (Pixel pixel in Util.Context.Pixels.Where(p => p.Couleur.IsRouge && p.Coord.Y > 12))
                {
                    pixel.Couleur = Couleur.Noir;
                }

                CaractereList textes = new CaractereList(Util.Context.Largeur);
                textes.SetText(Temps.Heure);

                foreach (Police lettre in textes.GetCaracteres().Where(c => c.Point))
                {
                    if (Util.Context.Pixels.GetCoordonnee(lettre.X + 1, lettre.Y + 13) is Pixel pixel)
                    {
                        if (pixel.Couleur.IsNoir)// || pixel.Couleur.R == 127)
                        {
                            pixel.SetColor(Couleur.RougePale);
                        }
                        else
                        {
                            pixel.SetColor(Couleur.Rouge);
                        }
                    }
                }
            }
        }
Example #2
0
        /// <summary>
        /// Horloge
        /// </summary>
        public static void Horloge()
        {
            Util.Setup();
            decimal cycle = 0;
            Random  r     = new Random();
            int     bg    = r.Next(1, Util.Context.Pixels.NbrBackground);

            //Aime pas beaucoup le 3 ici
            if (bg == 3)
            {
                bg = 2;
            }

            Task.Run(() =>
            {
                int task = Util.StartTask();
                CaractereList caracteres = new CaractereList(20);

                while (Util.TaskWork(task))
                {
                    caracteres.SetText(Heure);
                    cycle = Util.Context.Pixels.SetHorloge(caracteres.GetCaracteres(), cycle, bg);
                    Util.SetLeds();
                    Util.Context.Pixels.Reset();
                }
            });
        }
Example #3
0
        /// <summary>
        /// Date
        /// </summary>
        public static void Date()
        {
            Util.Setup();

            decimal cycle   = 0;
            Random  r       = new Random();
            int     bg      = r.Next(1, Util.Context.Pixels.NbrBackground);
            bool    reverse = r.Next(0, 2) == 1;

            if (bg == 3 && reverse)
            {
                reverse = false;
            }

            Task.Run(() =>
            {
                int task = Util.StartTask();
                CaractereList caracteres = new CaractereList(20);

                while (Util.TaskWork(task))
                {
                    caracteres.SetText(Heure);
                    Util.Context.Pixels.SetDate(caracteres.GetCaracteres());
                    cycle = Util.Context.Pixels.BackGround(bg, cycle, reverse);
                    Util.SetLeds();
                    Util.Context.Pixels.Reset();
                }
            });
        }
Example #4
0
        /// <summary>
        /// LoremBarnak
        /// </summary>
        public static void LoremBarnak()
        {
            Util.Setup();

            Task.Run(() =>
            {
                int largeur              = 0;
                int debut                = -20;
                int task                 = Util.StartTask();
                string loremBarnak       = GetLoremBarnak(10);
                CaractereList caracteres = new CaractereList(20);

                while (Util.TaskWork(task))
                {
                    //Reset après avoir défiler tout le texte
                    if (!string.IsNullOrWhiteSpace(loremBarnak) && largeur < debut++)
                    {
                        debut       = -20;
                        loremBarnak = GetLoremBarnak(10);
                    }

                    largeur = caracteres.SetText(loremBarnak);
                    Util.Context.Pixels.SetNouvelle(caracteres.GetCaracteres(debut), Heure);
                    Util.SetLeds();
                    Util.Context.Pixels.Reset();

                    using ManualResetEventSlim waitHandle = new ManualResetEventSlim(false);
                    waitHandle.Wait(TimeSpan.FromMilliseconds(50));
                }
            });
        }
Example #5
0
        /// <summary>
        /// Musique
        /// </summary>
        public static void Musique()
        {
            Util.Setup();

            Task.Run(() =>
            {
                int largeur = 0;
                int debut   = -20;
                int task    = Util.StartTask();
                CaractereList caracteres = new CaractereList(Util.Context.Largeur);
                Util.GetMusiqueAsync();
                decimal cycle = 0;
                Random r      = new Random();
                int bg        = r.Next(1, Util.Context.Pixels.NbrBackground);
                bool reverse  = r.Next(0, 2) == 1;

                DateTime refresh = DateTime.Now;

                if (bg == 3 && reverse)
                {
                    reverse = false;
                }

                while (Util.TaskWork(task))
                {
                    //Reset après avoir défiler tout le texte
                    if (refresh >= DateTime.Now.AddSeconds(10) || largeur < debut++)
                    {
                        debut = -20;
                        Util.GetMusiqueAsync();
                        refresh = DateTime.Now;
                    }

                    largeur = caracteres.SetText(Util.Musique);

                    Couleur couleur = Couleur.Get(64, 0, 0);
                    Util.Context.Pixels.Print(caracteres.GetCaracteres(debut), 0, 1, Couleur.Get(32, 32, 127));
                    Util.Context.Pixels.Print(DateTime.Now.ToString("MM-dd"), 1, 7, couleur);
                    Util.Context.Pixels.Print(Heure, 2, 13, couleur);
                    cycle = Util.Context.Pixels.BackGround(bg, cycle, reverse);

                    Util.SetLeds();
                    Util.Context.Pixels.Reset();

                    using ManualResetEventSlim waitHandle = new ManualResetEventSlim(false);
                    waitHandle.Wait(TimeSpan.FromMilliseconds(50));
                }
            });
        }
Example #6
0
        /// <summary>
        /// Afficher titre
        /// </summary>
        private static int AffTitre(int cycle, int debut)
        {
            if (Criteria.AffTitre)
            {
                foreach (Pixel pixel in Util.Context.Pixels.Where(p => p.Couleur.IsRouge && p.Coord.Y < 8))
                {
                    pixel.Couleur = Couleur.Noir;
                }

                CaractereList textes  = new CaractereList(Util.Context.Largeur);
                int           largeur = textes.SetText(Util.Musique);

                foreach (Police lettre in textes.GetCaracteres(debut).Where(c => c.Point))
                {
                    if (Util.Context.Pixels.GetCoordonnee(lettre.X, lettre.Y + 1) is Pixel pixel)
                    {
                        if (pixel.Couleur.IsNoir)//|| pixel.Couleur.IsRouge
                        {
                            pixel.SetColor(Couleur.Rouge);
                        }
                        else
                        {
                            pixel.SetColor(Couleur.RougePale);
                        }
                    }
                }

                if (cycle % Criteria.CycleMod == 0)
                {
                    debut++;
                }

                //Reset après avoir défiler tout le texte
                if (cycle % 10000 == 0 || largeur < debut)
                {
                    debut = -20;
                    Util.GetMusiqueAsync();
                }
            }

            return(debut);
        }
Example #7
0
        /// <summary>
        /// Binaire
        /// </summary>
        public static void Binaire()
        {
            Util.Setup();

            decimal cycle = 0;
            Random  r     = new Random();
            int     bg    = r.Next(1, Util.Context.Pixels.NbrBackground);

            Task.Run(() =>
            {
                int task = Util.StartTask();
                CaractereList caracteres = new CaractereList(20);

                while (Util.TaskWork(task))
                {
                    caracteres.SetText(Heure);
                    Util.Context.Pixels.SetBinaire(caracteres.GetCaracteres());
                    cycle = Util.Context.Pixels.BackGround(bg, cycle);
                    Util.SetLeds();
                    Util.Context.Pixels.Reset();
                }
            });
        }
Example #8
0
        /// <summary>
        /// Nouvelle
        /// </summary>
        public static void Nouvelle()
        {
            Util.Setup();

            Task.Run(() =>
            {
                int largeur              = 0;
                int debut                = ResetNouvelle();
                int task                 = Util.StartTask();
                DateTime update          = DateTime.Now.AddMinutes(-60);
                CaractereList caracteres = new CaractereList(20);

                while (Util.TaskWork(task))
                {
                    //Reset après avoir défiler tout le texte
                    if (!string.IsNullOrWhiteSpace(Util.NouvelleStr) && largeur < debut++)
                    {
                        debut = ResetNouvelle();
                    }

                    largeur = caracteres.SetText(Util.NouvelleStr);
                    Util.Context.Pixels.SetNouvelle(caracteres.GetCaracteres(debut), Heure);
                    Util.SetLeds();
                    Util.Context.Pixels.Reset();

                    using (ManualResetEventSlim waitHandle = new ManualResetEventSlim(false))
                        waitHandle.Wait(TimeSpan.FromMilliseconds(50));

                    //Mettre a jour les nouvelle aux heures
                    if (update.AddMinutes(60) < DateTime.Now)
                    {
                        update = DateTime.Now;
                        Util.GetNouvelleAsync();
                    }
                }
            });
        }
Example #9
0
        /// <summary>
        /// VuMeter
        /// </summary>
        /// <param name="criteria"></param>
        public static void VuMeter()
        {
            // Initialize the led strip
            Util.Setup();
            int task = Util.StartTask();

            Couleur couleur      = Couleur.Get(0, 0, 8);
            Random  ra           = new Random();
            bool    whiteBgColor = true;

            if (ra.Next(1, 3) == 1)
            {
                couleur      = Couleur.Get(63, 63, 127);
                whiteBgColor = false;
            }

            double        max        = 0;
            CaractereList caracteres = new CaractereList(Util.Context.Largeur);

            byte[] audioBuffer = new byte[256];
            using AudioCapture audioCapture = new AudioCapture(AudioCapture.AvailableDevices[1], 22000, ALFormat.Mono8, audioBuffer.Length);
            audioCapture.Start();

            while (Util.TaskWork(task))
            {
                max -= 0.5;

                double[] fft = Capture(audioCapture, audioBuffer);

                if (fft.Max(a => Math.Abs(a)) > max)
                {
                    max = fft.Max(a => Math.Abs(a));
                }

                if (whiteBgColor)
                {
                    foreach (Pixel pixel in Util.Context.Pixels)
                    {
                        pixel.Set(127, 127, 127);
                    }
                }

                caracteres.SetText("VU");
                Util.Context.Pixels.Print(caracteres.GetCaracteres(), 5, 12, couleur);

                Couleur couleurMax = couleur;

                //lumiere max
                if (max > 75)
                {
                    couleurMax = Couleur.Get(127, 0, 0);
                }

                Util.Context.Pixels.GetCoordonnee(17, 13).SetColor(couleurMax);
                Util.Context.Pixels.GetCoordonnee(18, 13).SetColor(couleurMax);
                Util.Context.Pixels.GetCoordonnee(17, 14).SetColor(couleurMax);
                Util.Context.Pixels.GetCoordonnee(18, 14).SetColor(couleurMax);

                //dessin
                Util.Context.Pixels.GetCoordonnee(1, 10).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(2, 10).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(3, 10).SetColor(couleur);

                Util.Context.Pixels.GetCoordonnee(4, 9).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(5, 9).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(6, 9).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(7, 9).SetColor(couleur);

                Util.Context.Pixels.GetCoordonnee(8, 8).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(9, 8).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(10, 8).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(11, 8).SetColor(couleur);

                Util.Context.Pixels.GetCoordonnee(12, 9).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(13, 9).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(14, 9).SetColor(Couleur.Get(127, 0, 0));
                Util.Context.Pixels.GetCoordonnee(15, 9).SetColor(Couleur.Get(127, 0, 0));

                Util.Context.Pixels.GetCoordonnee(16, 10).SetColor(Couleur.Get(127, 0, 0));
                Util.Context.Pixels.GetCoordonnee(17, 10).SetColor(Couleur.Get(127, 0, 0));
                Util.Context.Pixels.GetCoordonnee(18, 10).SetColor(Couleur.Get(127, 0, 0));

                //Moins
                Util.Context.Pixels.GetCoordonnee(1, 4).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(2, 4).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(3, 4).SetColor(couleur);

                Util.Context.Pixels.GetCoordonnee(2, 8).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(2, 9).SetColor(couleur);

                Util.Context.Pixels.GetCoordonnee(6, 7).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(6, 8).SetColor(couleur);

                Util.Context.Pixels.GetCoordonnee(9, 6).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(9, 7).SetColor(couleur);

                Util.Context.Pixels.GetCoordonnee(11, 6).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(11, 7).SetColor(couleur);

                Util.Context.Pixels.GetCoordonnee(13, 7).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(13, 8).SetColor(couleur);

                Util.Context.Pixels.GetCoordonnee(15, 7).SetColor(Couleur.Get(127, 0, 0));
                Util.Context.Pixels.GetCoordonnee(15, 8).SetColor(Couleur.Get(127, 0, 0));

                Util.Context.Pixels.GetCoordonnee(17, 8).SetColor(Couleur.Get(127, 0, 0));
                Util.Context.Pixels.GetCoordonnee(17, 9).SetColor(Couleur.Get(127, 0, 0));

                //Plus
                Util.Context.Pixels.GetCoordonnee(17, 3).SetColor(Couleur.Get(127, 0, 0));
                Util.Context.Pixels.GetCoordonnee(16, 4).SetColor(Couleur.Get(127, 0, 0));
                Util.Context.Pixels.GetCoordonnee(17, 4).SetColor(Couleur.Get(127, 0, 0));
                Util.Context.Pixels.GetCoordonnee(18, 4).SetColor(Couleur.Get(127, 0, 0));
                Util.Context.Pixels.GetCoordonnee(17, 5).SetColor(Couleur.Get(127, 0, 0));

                //base
                Util.Context.Pixels.GetCoordonnee(8, 18).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(9, 18).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(10, 18).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(11, 18).SetColor(couleur);

                Util.Context.Pixels.GetCoordonnee(7, 19).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(8, 19).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(9, 19).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(10, 19).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(11, 19).SetColor(couleur);
                Util.Context.Pixels.GetCoordonnee(12, 19).SetColor(couleur);

                //aiguille
                for (int r = 2; r < 18; r++)
                {
                    Util.Context.Pixels.GetCoordonnee(GetCercleCoord(max + 315, r)).SetColor(couleur);
                }

                Util.SetLeds();
                Util.Context.Pixels.Reset();
            }
        }