mirror of https://github.com/zeldaret/tp.git
57 lines
1.3 KiB
C
57 lines
1.3 KiB
C
#ifndef _DOLPHIN_DTK_H_
|
|
#define _DOLPHIN_DTK_H_
|
|
|
|
#include <dolphin/dvd.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef void (*DTKCallback)(u32 eventMask);
|
|
typedef void (*DTKFlushCallback)(void);
|
|
|
|
typedef struct DTKTrack {
|
|
/* 0x00 */ struct DTKTrack* prev;
|
|
/* 0x04 */ struct DTKTrack* next;
|
|
/* 0x08 */ char* fileName;
|
|
/* 0x0C */ u32 eventMask;
|
|
/* 0x10 */ DTKCallback callback;
|
|
/* 0x14 */ DVDFileInfo dvdFileInfo;
|
|
} DTKTrack;
|
|
|
|
#define DTK_STATE_STOP 0
|
|
#define DTK_STATE_RUN 1
|
|
#define DTK_STATE_PAUSE 2
|
|
#define DTK_STATE_BUSY 3
|
|
#define DTK_STATE_PREPARE 4
|
|
|
|
#define DTK_MODE_NOREPEAT 0
|
|
#define DTK_MODE_ALLREPEAT 1
|
|
#define DTK_MODE_REPEAT1 2
|
|
|
|
void DTKInit(void);
|
|
void DTKShutdown(void);
|
|
u32 DTKQueueTrack(char* fileName, DTKTrack* track, u32 eventMask, DTKCallback callback);
|
|
u32 DTKRemoveTrack(DTKTrack* track);
|
|
int DTKFlushTracks(DTKFlushCallback callback);
|
|
void DTKSetSampleRate(u32 samplerate);
|
|
void DTKSetInterruptFrequency(u32 samples);
|
|
void DTKSetRepeatMode(u32 repeat);
|
|
int DTKSetState(u32 state);
|
|
int DTKNextTrack(void);
|
|
int DTKPrevTrack(void);
|
|
u32 DTKGetSampleRate(void);
|
|
u32 DTKGetRepeatMode(void);
|
|
u32 DTKGetState(void);
|
|
u32 DTKGetPosition(void);
|
|
u32 DTKGetInterruptFrequency(void);
|
|
DTKTrack* DTKGetCurrentTrack(void);
|
|
void DTKSetVolume(u8 left, u8 right);
|
|
u16 DTKGetVolume(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|