/// <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); } } } } }
/// <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(); } }); }
/// <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(); } }); }
/// <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)); } }); }
/// <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)); } }); }
/// <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); }
/// <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(); } }); }
/// <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(); } } }); }
/// <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(); } }