- メインページ
- モジュール
- データ構造
- ファイル
- ディレクトリ

- ファイル一覧
- グローバル

# sound.h

説明を見る。

    00001 #include "dxlibp.h"
    00002 #include <pspmp3.h>
    00003 #include <psputility.h>
    00004
    00005 #define DXP_BUILDOPTION_SOUNDHANDLE_MAX 32
    00006
    00007 #define DXP_SOUNDCMD_NONE 0
    00008 #define DXP_SOUNDCMD_PLAY 1
    00009 #define DXP_SOUNDCMD_STOP 2
    00010 #define DXP_SOUNDCMD_EXIT 3
    00011
    00012 #define DXP_SOUNDFMT_MP3 1
    00013
    00014 typedef struct DXPAVCODEC_BUFFER
    00015 {
    00016     u32 reserved0[6];
    00017     u8* datIn;
    00018     u32 frameSize0;
    00019     u16* pcmOut;
    00020     u32 decodeByte;//set 4608 (= 1152[sample per frame] * 2[byte per sample] * 2[channel])
    00021     u32 frameSize1;
    00022     u32 reserved1[54];
    00023 }DXPAVCODEC_BUFFER;
    00024
    00025 typedef struct DXPSOUNDHANDLE
    00026 {
    00027     //ステータス
    00028     unsigned used : 1;
    00029     SceUID threadId;
    00030     //メインスレッドからの指示
    00031     unsigned loop : 1;
    00032     unsigned cmd : 2;//DXP_SOUNDCMD_XXXX
    00033     int gotoPos;
    00034     int loopPos[2];//A-B in sample num.
    00035     u8 volume;
    00036     int pan;
    00037     char filename[256];
    00038     int soundDataType;
    00039
    00040     //再生スレッドからの情報
    00041     int length;
    00042     int currentPos;
    00043     int sampleRate;
    00044     int id3v1;
    00045     int id3v2;
    00046     int loadstatus;
    00047     unsigned playing : 1;
    00048
    00049     //デコード関連
    00050     u8 format;
    00051     u16* pcmOut;
    00052     int pcmOutSize;
    00053     union{
    00054         struct
    00055         {
    00056             int handle;
    00057             DXPAVCODEC_BUFFER *avBuf;
    00058             u8 *mp3Buf;
    00059             u32 mp3BufSize;
    00060         }mp3;
    00061     };
    00062 }DXPSOUNDHANDLE;
    00063
    00064 typedef struct DXPSOUNDDATA
    00065 {
    00066     u8 init;
    00067     u8 createSoundDataType;
    00068 }DXPSOUNDDATA;
    00069
    00070 extern DXPSOUNDHANDLE dxpSoundArray[];
    00071 extern DXPSOUNDDATA dxpSoundData;
    00072
    00073 int dxpSoundInit();
    00074 int dxpSoundTerm();
    00075 int dxpSoundReserveHandle();
    00076 int dxpSoundReleaseHandle(int handle);
    00077 int dxpSoundThread(SceSize datLen,void* datPtr);
    00078
    00079
    00080 int dxpSoundMp3Init(DXPSOUNDHANDLE *pHnd,int fh);
    00081 int dxpSoundMp3Seek(DXPSOUNDHANDLE *pHnd,int fh,int sample);
    00082 int dxpSoundMp3Decode(DXPSOUNDHANDLE *pHnd,int fh);
    00083 int dxpSoundMp3End(DXPSOUNDHANDLE *pHnd,int fh);