1 #ifndef _PSP_AUDIO_H_
2 #define _PSP_AUDIO_H_
3 
4 #include "PspModule.h"
5 #include "Stream.h"
6 
7 namespace Psp
8 {
9 	class CAudio : public CModule
10 	{
11 	public:
12 		CAudio(uint8*);
13 		virtual ~CAudio();
14 
15 		void Invoke(uint32, CMIPS&);
16 		std::string GetName() const;
17 
18 		void SetStream(Framework::CStream*);
19 
20 	private:
21 		struct CHANNEL
22 		{
23 			bool reserved;
24 			uint32 dataLength;
25 		};
26 
27 		enum
28 		{
29 			MAX_CHANNEL = 4,
30 		};
31 
32 		uint32 ChReserve(uint32, uint32, uint32);
33 		uint32 SetChannelDataLen(uint32, uint32);
34 		uint32 OutputPannedBlocking(uint32, uint32, uint32, uint32);
35 
36 		CHANNEL m_channels[MAX_CHANNEL];
37 		uint8* m_ram;
38 		Framework::CStream* m_stream;
39 	};
40 
41 	typedef std::shared_ptr<CAudio> AudioModulePtr;
42 }
43 
44 #endif
45