AudioFormat_YM.h
Go to the documentation of this file.00001 00011 #ifndef __AudioFormat_YM_H__ 00012 #define __AudioFormat_YM_H__ 00013 00014 // Includes 00015 #include "AudioFormat.h" 00016 00017 // Forward declares 00018 class CYmMusic; 00019 00020 // AudioFormat_YM 00021 class AudioFormat_YM:public AudioFormat 00022 { 00023 public: 00024 static void Register(); 00025 static bool TestAsset(const Asset& asset); 00026 static AudioFormat* Create(const Asset& asset); 00027 00031 AudioFormat_YM( 00032 const Asset& asset 00033 ); 00034 00038 virtual ~AudioFormat_YM(); 00039 00044 virtual int GetChannels(); 00045 00050 virtual int GetFrequency(); 00051 00055 virtual int GetBitsPerSample(); 00056 00062 virtual int GetSize(); 00063 00069 virtual int GetPosition(); 00070 00075 virtual void SetPosition( 00076 int position 00077 ); 00078 00084 virtual int CopySoundChunk( 00085 void* buffer, 00086 int bytes 00087 ); 00088 00095 struct YmRegisters 00096 { 00097 int Channel_A_fine_tune; // 8 bits 00098 int Channel_A_coarse_tune; // 4 bits 00099 int Channel_B_fine_tune; // 8 bits 00100 int Channel_B_coarse_tune; // 4 bits 00101 int Channel_C_fine_tune; // 8 bits 00102 int Channel_C_coarse_tune; // 4 bits 00103 int Noise_generator_control; // 5 bits 00104 int Mixer_control_IO_enable; // 8 bits 00105 int Channel_A_amplitude; // 5 bits 00106 int Channel_B_amplitude; // 5 bits 00107 int Channel_C_amplitude; // 5 bits 00108 int Envelope_period_fine_tune; // 8 bits 00109 int Envelope_period_coarse_tune; // 8 bits 00110 int Envelope_shape; // 4 bits 00111 }; 00112 00113 YmRegisters GetRegisters(float position); 00114 00115 private: 00116 CYmMusic* ymFile_; 00117 00118 int chunkStart_; 00119 int chunkEnd_; 00120 }; 00121 00122 #endif /* __AudioFormat_YM_H__ */
Reproduction/republishing of any material on this site without permission is strictly prohibited.
