| 1 | 1 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,46 @@ |
| 1 |
+/* |
|
| 2 |
+ * Author: Pawel Jablonski |
|
| 3 |
+ * E-mail: pj@xirx.net |
|
| 4 |
+ * WWW: xirx.net |
|
| 5 |
+ * GIT: git.xirx.net |
|
| 6 |
+ * |
|
| 7 |
+ * License: You can use this code however you like |
|
| 8 |
+ * but leave information about the original author. |
|
| 9 |
+ * Code is free for non-commercial and commercial use. |
|
| 10 |
+ */ |
|
| 11 |
+ |
|
| 12 |
+#ifndef _SPEAKER_H |
|
| 13 |
+#define _SPEAKER_H |
|
| 14 |
+ |
|
| 15 |
+//! List of possible notes to play |
|
| 16 |
+enum SpeakerNoteCode |
|
| 17 |
+{
|
|
| 18 |
+ NOTE_SILENT, |
|
| 19 |
+ NOTE_A0, NOTE_AS0, NOTE_B0, |
|
| 20 |
+ NOTE_C1, NOTE_CS1, NOTE_D1, NOTE_DS1, NOTE_E1, NOTE_F1, NOTE_FS1, NOTE_G1, NOTE_GS1, NOTE_A1, NOTE_AS1, NOTE_B1, |
|
| 21 |
+ NOTE_C2, NOTE_CS2, NOTE_D2, NOTE_DS2, NOTE_E2, NOTE_F2, NOTE_FS2, NOTE_G2, NOTE_GS2, NOTE_A2, NOTE_AS2, NOTE_B2, |
|
| 22 |
+ NOTE_C3, NOTE_CS3, NOTE_D3, NOTE_DS3, NOTE_E3, NOTE_F3, NOTE_FS3, NOTE_G3, NOTE_GS3, NOTE_A3, NOTE_AS3, NOTE_B3, |
|
| 23 |
+ NOTE_C4, NOTE_CS4, NOTE_D4, NOTE_DS4, NOTE_E4, NOTE_F4, NOTE_FS4, NOTE_G4, NOTE_GS4, NOTE_A4, NOTE_AS4, NOTE_B4, |
|
| 24 |
+ NOTE_C5, NOTE_CS5, NOTE_D5, NOTE_DS5, NOTE_E5, NOTE_F5, NOTE_FS5, NOTE_G5, NOTE_GS5, NOTE_A5, NOTE_AS5, NOTE_B5, |
|
| 25 |
+ NOTE_C6, NOTE_CS6, NOTE_D6, NOTE_DS6, NOTE_E6, NOTE_F6, NOTE_FS6, NOTE_G6, NOTE_GS6, NOTE_A6, NOTE_AS6, NOTE_B6, |
|
| 26 |
+ NOTE_C7, NOTE_CS7, NOTE_D7, NOTE_DS7, NOTE_E7, NOTE_F7, NOTE_FS7, NOTE_G7, NOTE_GS7, NOTE_A7, NOTE_AS7, NOTE_B7, |
|
| 27 |
+ NOTE_C8 |
|
| 28 |
+}; |
|
| 29 |
+ |
|
| 30 |
+//! Fields used by speaker to describe note |
|
| 31 |
+struct SpeakerNote |
|
| 32 |
+{
|
|
| 33 |
+ unsigned char note; //!< Number of the note |
|
| 34 |
+ unsigned char time; //!< Time to play |
|
| 35 |
+ unsigned char fill; //!< Square wave fill |
|
| 36 |
+ unsigned char volume; //!< Volume level |
|
| 37 |
+}; |
|
| 38 |
+ |
|
| 39 |
+void speakerInit(void); |
|
| 40 |
+ |
|
| 41 |
+void speakerClear(void); |
|
| 42 |
+void speakerAddNote(struct SpeakerNote note); |
|
| 43 |
+ |
|
| 44 |
+unsigned char speakerGetBufferFree(void); |
|
| 45 |
+ |
|
| 46 |
+#endif |