Created
April 9, 2026 20:10
-
-
Save agrif/c5c667a8a253d215cc501c7265901247 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| use embassy_sync::pubsub::PubSubBehavior; | |
| use super::music::{music, Music}; | |
| // jingles adapted from | |
| // https://github.com/DavinderHanda/HandaDigitalSpeaker/ | |
| #[derive(Clone, Copy, Debug, defmt::Format)] | |
| #[allow(dead_code)] | |
| pub enum Jingle { | |
| // basic / system sounds | |
| Aa, | |
| Da, | |
| Sdp, | |
| Tdb, | |
| Tct, | |
| Ud, | |
| Dd, | |
| Ursb, | |
| Fahls, | |
| Sllt, | |
| Sb, | |
| Slb, | |
| Vsc, | |
| Dbl, | |
| Bhi, | |
| Chn, | |
| Err, | |
| Ok, | |
| Bsy, | |
| Rst, | |
| Wup, | |
| Slp, | |
| Tmr, | |
| Att, | |
| // premium digital | |
| Iph, | |
| Pop, | |
| Msg, | |
| Noti, | |
| Clk, | |
| Tch, | |
| // short system melodies | |
| Jingle1, | |
| Jingle2, | |
| Jingle3, | |
| Start1, | |
| Start2, | |
| End1, | |
| End2, | |
| Ready1, | |
| Ready2, | |
| // success / notification | |
| Success1, | |
| Success2, | |
| Notify1, | |
| Notify2, | |
| Ok1, | |
| Ok2, | |
| // fun / classic game tunes | |
| Coin1, | |
| Coin2, | |
| Win1, | |
| Win2, | |
| Fail1, | |
| // system / startup | |
| PowerOn, | |
| BootOk, | |
| Ready, | |
| Shutdown, | |
| // success / confirm | |
| Success, | |
| Confirm, | |
| TaskDone, | |
| Complete, | |
| // warning / error | |
| Error, | |
| Warning, | |
| AlertDrop, | |
| // key / click / touch | |
| ButtonTap, | |
| KeyPress, | |
| ShortBlip, | |
| FastTick, | |
| // door / lock | |
| Lock, | |
| Unlock, | |
| } | |
| impl Jingle { | |
| pub fn play(&self) { | |
| super::JINGLES.publish_immediate(*self) | |
| } | |
| pub fn music(&self) -> Music<'static> { | |
| match self { | |
| Self::Aa => music!(bpm 150, octave o5, [ | |
| C 16, E 16, G 16, (o6) C 8, | |
| ]), | |
| Self::Da => music!(bpm 150, octave o5, [ | |
| (o6) C 16, G 16, E 16, C 8, | |
| ]), | |
| Self::Sdp => music!(bpm 188, octave o5, [ | |
| G 16, (o6) C 3 32, | |
| ]), | |
| Self::Tdb => music!(bpm 125, octave o4, [ | |
| (o5) D 16, B 16, Fis 16, | |
| ]), | |
| Self::Tct => music!(bpm 125, octave o5, [ | |
| A 3 32, (o6) C 8, | |
| ]), | |
| Self::Ud => music!(bpm 150, octave o5, [ | |
| C 16, E 16, G 8, | |
| ]), | |
| Self::Dd => music!(bpm 150, octave o5, [ | |
| G 16, E 16, C 8, | |
| ]), | |
| Self::Ursb => music!(bpm 188, octave o5, [ | |
| G 16, G 16, G 16, G 16, | |
| ]), | |
| Self::Fahls => music!(bpm 125, octave o5, [ | |
| G 16, G 16, G 16, G 16, (o6) Dis 16, | |
| ]), | |
| Self::Sllt => music!(bpm 86, octave o4, [ | |
| G 4, | |
| ]), | |
| Self::Sb => music!(bpm 188, octave o5, [ | |
| B 16, | |
| ]), | |
| Self::Slb => music!(bpm 150, octave o5, [ | |
| B 4, | |
| ]), | |
| Self::Vsc => music!(bpm 150, octave o6, [ | |
| G 32, | |
| ]), | |
| Self::Dbl => music!(bpm 150, octave o4, [ | |
| G 16, | |
| R 16, | |
| G 16, | |
| ]), | |
| Self::Bhi => music!(bpm 150, octave o6, [ | |
| G 16, R 32, A 3 32, | |
| ]), | |
| Self::Chn => music!(bpm 188, octave o6, [ | |
| (o5) B 16, D 16, F 16, | |
| ]), | |
| Self::Err => music!(bpm 150, octave o4, [ | |
| D 3 32, R 32, D 3 32, R 32, D 3 32, R 32, | |
| ]), | |
| Self::Ok => music!(bpm 188, octave o6, [ | |
| D 16, Fis 3 32, | |
| ]), | |
| Self::Bsy => music!(bpm 188, octave o5, [ | |
| D 3 32, R 16, D 3 32, R 16, | |
| ]), | |
| Self::Rst => music!(bpm 150, octave o5, [ | |
| C 16, E 16, G 16, (o6) C 16, G 3 16, | |
| ]), | |
| Self::Wup => music!(bpm 188, octave o5, [ | |
| E 16, G 5 64, B 3 32, | |
| ]), | |
| Self::Slp => music!(bpm 150, octave o4, [ | |
| (o5) C 8, G 8, | |
| ]), | |
| Self::Tmr => music!(bpm 150, octave o6, [ | |
| (o5) B 16, R 16, Fis 16, R 16, B 16, | |
| ]), | |
| Self::Att => music!(bpm 214, octave o5, [ | |
| G 16, R 16, G 16, R 16, G 16, R 16, G 16, R 16, G 16, R 16, | |
| ]), | |
| Self::Iph => music!(bpm 214, octave o6, [ | |
| D 16, R 32, G 3 32, | |
| ]), | |
| Self::Pop => music!(bpm 188, octave o5, [ | |
| F 32, R 64, A 3 64, | |
| ]), | |
| Self::Msg => music!(bpm 188, octave o5, [ | |
| A 16, R 32, (o6) E 3 32, | |
| ]), | |
| Self::Noti => music!(bpm 214, octave o6, [ | |
| (o5) B 16, R 32, Fis 16, | |
| ]), | |
| Self::Clk => music!(bpm 214, octave o5, [ | |
| A 32, | |
| ]), | |
| Self::Tch => music!(bpm 214, octave o5, [ | |
| (o6) D 32, R 64, A 32, | |
| ]), | |
| Self::Jingle1 => music!(bpm 150, octave o5, [ | |
| C 16, E 16, G 3 32, (o6) C 8, | |
| ]), | |
| Self::Jingle2 => music!(bpm 150, octave o6, [ | |
| (o5) G 16, (o5) B 16, D 3 32, G 8, | |
| ]), | |
| Self::Jingle3 => music!(bpm 150, octave o4, [ | |
| G 16, A 16, B 3 32, (o5) C 8, | |
| ]), | |
| Self::Start1 => music!(bpm 150, octave o5, [ | |
| C 16, R 32, E 16, R 32, G 3 32, R 3 64, (o6) C 8, | |
| ]), | |
| Self::Start2 => music!(bpm 150, octave o5, [ | |
| E 16, R 32, G 16, R 32, B 3 32, R 3 64, (o6) E 8, | |
| ]), | |
| Self::End1 => music!(bpm 150, octave o5, [ | |
| (o6) E 16, R 32, B 16, R 32, G 5 64, R 32, C 3 32, | |
| ]), | |
| Self::End2 => music!(bpm 150, octave o5, [ | |
| A 16, R 32, F 16, R 32, D 5 64, R 32, (o4) A 3 32, | |
| ]), | |
| Self::Ready1 => music!(bpm 188, octave o5, [ | |
| C 16, R 32, E 16, R 32, A 3 32, R 32, (o6) C 8, | |
| ]), | |
| Self::Ready2 => music!(bpm 150, octave o5, [ | |
| (o4) A 16, R 64, Cis 16, R 64, E 3 32, R 64, A 8, | |
| ]), | |
| Self::Success1 => music!(bpm 150, octave o5, [ | |
| G 16, B 16, (o6) E 3 32, (o6) A 8, | |
| ]), | |
| Self::Success2 => music!(bpm 188, octave o5, [ | |
| E 16, R 32, A 5 64, R 32, B 8, R 32, (o6) E 8, | |
| ]), | |
| Self::Notify1 => music!(bpm 188, octave o6, [ | |
| (o5) B 16, R 32, E 5 64, R 32, A 8, | |
| ]), | |
| Self::Notify2 => music!(bpm 188, octave o5, [ | |
| E 16, R 32, A 5 64, R 32, (o6) C 8, R 32, (o6) E 8, | |
| ]), | |
| Self::Ok1 => music!(bpm 188, octave o6, [ | |
| (o5) B 16, R 32, E 5 64, R 32, G 8, | |
| ]), | |
| Self::Ok2 => music!(bpm 188, octave o5, [ | |
| D 16, R 32, A 5 64, R 32, (o6) D 8, R 32, (o6) G 8, | |
| ]), | |
| Self::Coin1 => music!(bpm 150, octave o6, [ | |
| C 16, R 64, G 16, R 64, (o7) C 3 32, | |
| ]), | |
| Self::Coin2 => music!(bpm 188, octave o6, [ | |
| (o5) A 16, R 64, E 5 64, R 64, A 3 32, | |
| ]), | |
| Self::Win1 => music!(bpm 150, octave o5, [ | |
| C 16, R 32, E 16, R 32, G 5 64, R 32, (o6) C 3 32, R 32, (o6) E 8, | |
| ]), | |
| Self::Win2 => music!(bpm 188, octave o5, [ | |
| (o4) G 16, R 32, (o4) B 5 64, R 32, D 5 64, R 32, G 3 32, R 32, B 8, | |
| ]), | |
| Self::Fail1 => music!(bpm 188, octave o5, [ | |
| G 3 32, R 32, E 3 32, R 32, C 8, R 32, (o4) G 5 32, | |
| ]), | |
| Self::PowerOn => music!(bpm 188, octave o5, [ | |
| C 16, E 5 64, G 3 32, | |
| ]), | |
| Self::BootOk => music!(bpm 188, octave o5, [ | |
| (o4) A 16, Cis 16, A 3 32, | |
| ]), | |
| Self::Ready => music!(bpm 188, octave o5, [ | |
| G 16, R 32, B 3 32, | |
| ]), | |
| Self::Shutdown => music!(bpm 188, octave o5, [ | |
| (o6) C 16, A 16, G 5 64, | |
| ]), | |
| Self::Success => music!(bpm 188, octave o5, [ | |
| A 16, (o6) C 5 64, | |
| ]), | |
| Self::Confirm => music!(bpm 188, octave o5, [ | |
| G 16, R 32, B 3 32, | |
| ]), | |
| Self::TaskDone => music!(bpm 188, octave o6, [ | |
| C 3 64, E 16, G 5 64, | |
| ]), | |
| Self::Complete => music!(bpm 150, octave o5, [ | |
| B 16, R 64, (o6) E 16, | |
| ]), | |
| Self::Error => music!(bpm 150, octave o5, [ | |
| C 3 32, R 32, (o4) E 8, | |
| ]), | |
| Self::Warning => music!(bpm 188, octave o5, [ | |
| D 16, R 3 64, (o4) G 16, R 3 64, | |
| D 16, R 3 64, (o4) G 16, R 3 64, | |
| ]), | |
| Self::AlertDrop => music!(bpm 188, octave o5, [ | |
| G 3 32, R 32, (o4) A 8, | |
| ]), | |
| Self::ButtonTap => music!(bpm 188, octave o5, [ | |
| A 32, R 32, B 32, | |
| ]), | |
| Self::KeyPress => music!(bpm 188, octave o5, [ | |
| A 32, R 64, (o6) E 32, | |
| ]), | |
| Self::ShortBlip => music!(bpm 188, octave o5, [ | |
| E 32, R 64, G 32, | |
| ]), | |
| Self::FastTick => music!(bpm 188, octave o6, [ | |
| C 32, R 64, E 32, | |
| ]), | |
| Self::Lock => music!(bpm 188, octave o5, [ | |
| E 16, R 32, C 5 64, | |
| ]), | |
| Self::Unlock => music!(bpm 188, octave o5, [ | |
| (o4) A 16, R 32, E 3 32, | |
| ]), | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment