#ifndef __CDDriver__H
#define __CDDriver__H

#include "MediaDrv.h"

void throw_CDDriver_Register(void);
void CDDriver_DeRegister(void);

void CDDriver_MountCD(MediaObject* pobj);
void CDDriver_DismountCD(MediaObject* pobj);
unsigned long CDDriver_IdentifyVolume(MediaObject* pobj);
void CDDriver_OpenDrawer(MediaObject* pobj);
void CDDriver_GetSectionInfo(MediaObject* pobj, unsigned int section, uint64_t* pos, uint64_t* length);

void CDDriver_Play(MediaObject* pobj, uint64_t pos);
void CDDriver_Freeze(MediaObject* pobj, bool on);
void CDDriver_Stop(MediaObject* pobj);
void CDDriver_Seek(MediaObject* pobj, EMedia_Seek set);

void CDDriver_SetLoopMode(MediaObject* pobj, Media_LoopMode mode);
Media_LoopMode CDDriver_GetLoopMode(MediaObject* pobj);

Media_Status CDDriver_GetStatus(MediaObject* pobj);
void CDDriver_GetPosition(MediaObject* pobj, MediaPosition* pos);
uint64_t CDDriver_GetSectionPos(MediaObject* pobj, unsigned int section);
void CDDriver_SetConfig(MediaObject* pobj, Media_Config type, const void* value);
unsigned int  CDDriver_GetConfig(MediaObject* pobj, Media_Config type);

#endif
