Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of wave_player by
wave_player.h
00001 #include <mbed.h> 00002 00003 typedef struct uFMT_STRUCT { 00004 short comp_code; 00005 short num_channels; 00006 unsigned sample_rate; 00007 unsigned avg_Bps; 00008 short block_align; 00009 short sig_bps; 00010 } FMT_STRUCT; 00011 00012 00013 /** wave file player class. 00014 * 00015 * Example: 00016 * @code 00017 * #include <mbed.h> 00018 * #include <wave_player.h> 00019 * 00020 * AnalogOut DACout(p18); 00021 * wave_player waver(&DACout); 00022 * 00023 * int main() { 00024 * FILE *wave_file; 00025 * 00026 * printf("\n\n\nHello, wave world!\n"); 00027 * wave_file=fopen("/sd/44_8_st.wav","r"); 00028 * waver.play(wave_file); 00029 * fclose(wave_file); 00030 * } 00031 * @endcode 00032 */ 00033 00034 class wave_player { 00035 public: 00036 /** Create a wave player using a pointer to the given AnalogOut object. 00037 * 00038 * @param _dac pointer to an AnalogOut object to which the samples are sent. 00039 */ 00040 wave_player(AnalogOut *_dac); 00041 00042 /** the player function. 00043 * 00044 * @param wavefile A pointer to an opened wave file 00045 */ 00046 void play(FILE *wavefile); 00047 00048 /** Set the printf verbosity of the wave player. A nonzero verbosity level 00049 * will put wave_player in a mode where the complete contents of the wave 00050 * file are echoed to the screen, including header values, and including 00051 * all of the sample values placed into the DAC FIFO, and the sample values 00052 * removed from the DAC FIFO by the ISR. The sample output frequency is 00053 * fixed at 2 Hz in this mode, so it's all very slow and the DAC output isn't 00054 * very useful, but it lets you see what's going on and may help for debugging 00055 * wave files that don't play correctly. 00056 * 00057 * @param v the verbosity level 00058 */ 00059 void set_verbosity(int v); 00060 00061 float volume; 00062 //public: 00063 //AnalogIn position_player; 00064 00065 private: 00066 void dac_out(void); 00067 int verbosity; 00068 AnalogOut *wave_DAC; 00069 Ticker tick; 00070 unsigned short DAC_fifo[256]; 00071 short DAC_wptr; 00072 volatile short DAC_rptr; 00073 short DAC_on; 00074 }; 00075 00076
Generated on Tue Jul 19 2022 09:12:22 by
1.7.2
