00001 00007 #ifndef VS10XX_H 00008 #define VS10XX_H 00009 00010 #include "board.h" 00011 #include "ui.h" 00012 00013 #define USE_512_BYTE_DREQ 1 00014 00015 00017 #define VS_WRITE_COMMAND 0x02 00018 00020 #define VS_READ_COMMAND 0x03 00021 00022 00023 #define SCI_MODE 0x0 00024 #define SCI_STATUS 0x1 00025 #define SCI_BASS 0x2 00026 #define SCI_CLOCKF 0x3 00027 #define SCI_DECODE_TIME 0x4 00028 #define SCI_AUDATA 0x5 00029 #define SCI_WRAM 0x6 00030 #define SCI_WRAMADDR 0x7 00031 #define SCI_IN0 0x8 00032 #define SCI_IN1 0x9 00033 #define SCI_AIADDR 0xa 00034 #define SCI_VOL 0xb 00035 #define SCI_MIXERVOL 0xc 00036 #define SCI_ADPCMRECCTL 0xd 00037 #define SCI_AICTRL2 0xe 00038 #define SCI_AICTRL3 0xf 00041 // SCI_MODE register low byte 00042 00043 #define SM_DIFF 0x01 00044 #define SM_RECORD_MIXER 0x02 00045 #define SM_RESET 0x04 00046 #define SM_OUTOFMIDI 0x08 00047 #define SM_OUTOFWAV 0x08 00049 #define SM_PDOWN 0x10 00050 #define SM_TESTS 0x20 00051 #define SM_SDI_ADPCM 0x40 00052 #define SM_RT_MIDI 0x80 00054 // SCI_MODE register high byte 00055 00056 #define SM_DACT 0x01 00057 #define SM_SDIORD 0x02 00058 #define SM_SDISHARE 0x04 00059 #define SM_SDINEW 0x08 00061 #define SM_EARSPK_0 0x00 00062 #define SM_EARSPK_1 0x10 00063 #define SM_EARSPK_2 0x20 00064 #define SM_EARSPK_3 0x30 00065 00066 #define SM_LINE_IN 0x40 00067 #define SM_RECORD_ADPCM 0x80 00068 00069 00071 extern xdata unsigned char playingState; 00072 00073 void Vs1103SetMode(); 00074 00075 00076 00077 extern bit vs1103_recording_active; 00078 extern bit vs1103_record_mixer; 00079 extern bit vs1103_use_line_input; 00080 extern bit vs1103_do_reset; 00081 extern bit vs1103_mono_output; 00082 extern bit vs1103_terminate; 00083 extern bit vs1103_earSpkHi; 00084 extern bit vs1103_earSpkLo; 00085 extern bit vs1103_real_time_midi; 00086 00087 00088 00090 void VsSineTest(); 00091 00092 void Mp3Reset(); 00093 00095 void Mp3SoftReset(); 00096 00097 00098 00100 #define Mp3WriteRegister(addressbyte,highbyte,lowbyte){ \ 00101 Mp3SelectControl(); \ 00102 SPIPutCharWithoutWaiting(VS_WRITE_COMMAND); \ 00103 SPIPutChar((addressbyte)); \ 00104 SPIPutChar((highbyte)); \ 00105 SPIPutChar((lowbyte)); \ 00106 SPIWait(); \ 00107 Mp3DeselectControl();} 00108 00110 #define Mp3SetVolume(leftchannel,rightchannel){\ 00111 Mp3WriteRegister(11,(leftchannel),(rightchannel));} 00112 00114 #define Mp3Wait() {while(!MP3_DREQ);} 00115 00116 void Mp3SetMixerVolume(unsigned char midiVolume, 00117 unsigned char waveVolume, 00118 unsigned char micVolume); 00119 00120 00122 unsigned int Mp3ReadRegister (unsigned char addressbyte); 00123 00125 void SendZerosToVS10xx(); 00126 00128 unsigned char PlayDiskSectors (unsigned int nSectorsToPlay); 00129 00130 00131 00132 void AvailableProcessorTime(); 00133 00135 void Vs1103B_SetMidiTranspose(int transpose); 00136 00138 void Vs1103B_SetChannelMask(unsigned int newMask); 00139 00141 void Vs1103SetMicGain(unsigned char gain); 00142 00144 void Vs1103CancelWave(); 00145 00147 void Vs1103CancelMidi(); 00148 00149 00150 #endif