libOGC  1.0
Data Structures | Defines | Typedefs | Functions | Variables
dvd.h File Reference

DVD subsystem. More...

#include <gctypes.h>
#include <ogc/lwp_queue.h>
#include <ogc/disc_io.h>

Data Structures

struct  _dvdcmdblk
struct  _dvddiskid
struct  _dvddrvinfo
struct  _dvdfileinfo

Defines

#define DEVICE_TYPE_GAMECUBE_DVD   (('G'<<24)|('D'<<16)|('V'<<8)|'D')
#define DVD_ERROR_CANCELED   -3
#define DVD_ERROR_COVER_CLOSED   -4
#define DVD_ERROR_FATAL   -1
#define DVD_ERROR_IGNORED   -2
#define DVD_ERROR_OK   0
#define DVD_GetUserData(block)   ((block)->usrdata)
#define DVD_RESETHARD   0
#define DVD_RESETNONE   2
#define DVD_RESETSOFT   1
#define DVD_SetUserData(block, data)   ((block)->usrdata = (data))
#define DVD_SPINMOTOR_ACCEPT   0x00004000
#define DVD_SPINMOTOR_CHECKDISK   0x00008000
#define DVD_SPINMOTOR_DOWN   0x00000000
#define DVD_SPINMOTOR_UP   0x00000100
#define DVD_STATE_BUSY   1
#define DVD_STATE_CANCELED   10
#define DVD_STATE_COVER_CLOSED   3
#define DVD_STATE_COVER_OPEN   5
#define DVD_STATE_END   0
#define DVD_STATE_FATAL_ERROR   -1
#define DVD_STATE_IGNORED   8
#define DVD_STATE_MOTOR_STOPPED   7
#define DVD_STATE_NO_DISK   4
#define DVD_STATE_RETRY   11
#define DVD_STATE_WAITING   2
#define DVD_STATE_WRONG_DISK   6

Typedefs

typedef void(* dvdcallback )(s32 result, dvdfileinfo *info)
 function pointer typedef for the user's DVD operation callback
typedef void(* dvdcbcallback )(s32 result, dvdcmdblk *block)
 function pointer typedef for the user's operations callback
typedef struct _dvdcmdblk dvdcmdblk
 forward typedef for struct _dvdcmdblk
typedef struct _dvddiskid dvddiskid
 forward typedef for struct _dvddiskid
typedef struct _dvddrvinfo dvddrvinfo
 forward typedef for struct _dvddrvinfo
typedef struct _dvdfileinfo dvdfileinfo
 forward typedef for struct _dvdfileinfo

Functions

s32 DVD_CancelAllAsync (dvdcbcallback cb)
s32 DVD_ControlDrive (dvdcmdblk *block, u32 cmd)
 Controls the drive's motor and behavior.
s32 DVD_ControlDriveAsync (dvdcmdblk *block, u32 cmd, dvdcbcallback cb)
 Controls the drive's motor and behavior.
s32 DVD_GetCmdBlockStatus (dvdcmdblk *block)
dvddiskidDVD_GetCurrentDiskID ()
dvddrvinfoDVD_GetDriveInfo ()
s32 DVD_GetDriveStatus ()
void DVD_Init ()
 Initializes the DVD subsystem.
s32 DVD_Inquiry (dvdcmdblk *block, dvddrvinfo *info)
s32 DVD_InquiryAsync (dvdcmdblk *block, dvddrvinfo *info, dvdcbcallback cb)
s32 DVD_Mount ()
 Mounts the DVD drive.
s32 DVD_MountAsync (dvdcmdblk *block, dvdcbcallback cb)
 Mounts the DVD drive.
void DVD_Pause ()
s32 DVD_ReadAbsAsyncForBS (dvdcmdblk *block, void *buf, u32 len, s64 offset, dvdcbcallback cb)
s32 DVD_ReadAbsAsyncPrio (dvdcmdblk *block, void *buf, u32 len, s64 offset, dvdcbcallback cb, s32 prio)
s32 DVD_ReadDiskID (dvdcmdblk *block, dvddiskid *id, dvdcbcallback cb)
s32 DVD_ReadPrio (dvdcmdblk *block, void *buf, u32 len, s64 offset, s32 prio)
void DVD_Reset (u32 reset_mode)
 Performs a reset of the drive and FW respectively.
s32 DVD_SeekAbsAsyncPrio (dvdcmdblk *block, s64 offset, dvdcbcallback cb, s32 prio)
s32 DVD_SeekPrio (dvdcmdblk *block, s64 offset, s32 prio)
u32 DVD_SetAutoInvalidation (u32 auto_inv)
s32 DVD_SetGCMOffset (dvdcmdblk *block, s64 offset)
s32 DVD_SetGCMOffsetAsync (dvdcmdblk *block, s64 offset, dvdcbcallback cb)
s32 DVD_SpinUpDrive (dvdcmdblk *block)
s32 DVD_SpinUpDriveAsync (dvdcmdblk *block, dvdcbcallback cb)
s32 DVD_StopStreamAtEnd (dvdcmdblk *block)
s32 DVD_StopStreamAtEndAsync (dvdcmdblk *block, dvdcbcallback cb)

Variables

const DISC_INTERFACE __io_gcdvd

Detailed Description

DVD subsystem.


Typedef Documentation

void(* dvdcallback)(s32 result, dvdfileinfo *info)

function pointer typedef for the user's DVD operation callback

Parameters:
[in]resulterror code of last operation
[in]infopointer to user's file info strucutre

forward typedef for struct _dvdcmdblk

This structure is used internally to control the requested operation.

forward typedef for struct _dvddiskid

This structure holds the game vendors copyright informations.
Additionally it holds certain parameters for audiocontrol and
multidisc support.

Parameters:
gamename[4]vendors game key
company[2]vendors company key
disknumnumber of disc when multidisc support is used.
gameverversion of game
streamingflag to control audio streaming
streambufsizesize of buffer used for audio streaming
pad[22]padding

forward typedef for struct _dvddrvinfo

This structure structure holds the drive version infromation.
Use DVD_Inquiry() to retrieve this information.

Parameters:
rev_leverevision level
dev_codedevice code
rel_daterelease date
pad[24]padding

forward typedef for struct _dvdfileinfo

This structure is used internally to control the requested file operation.


Function Documentation

s32 DVD_ControlDrive ( dvdcmdblk block,
u32  cmd 
)

Controls the drive's motor and behavior.

This is a synchronous version of DVD_ControlDriveAsync().

Parameters:
[in]blockpointer to a dvdcmdblk structure used to process the operation
[in]cmdcommand to control the drive.
Returns:
none
s32 DVD_ControlDriveAsync ( dvdcmdblk block,
u32  cmd,
dvdcbcallback  cb 
)

Controls the drive's motor and behavior.

Parameters:
[in]blockpointer to a dvdcmdblk structure used to process the operation
[in]cmdcommand to control the drive.
[in]cbcallback to be invoked upon completion of operation.
Returns:
none
void DVD_Init ( )

Initializes the DVD subsystem.

You must call this function before calling any other DVD function

Returns:
none
s32 DVD_Mount ( )

Mounts the DVD drive.

This is a synchronous version of DVD_MountAsync().

Returns:
none
s32 DVD_MountAsync ( dvdcmdblk block,
dvdcbcallback  cb 
)

Mounts the DVD drive.

You must call this function in order to access the DVD.

Following tasks are performed:

  • Issue a hard reset to the drive.
  • Turn on drive's debug mode.
  • Patch drive's FW.
  • Enable extensions.
  • Read disc ID

The patch code and procedure was taken from the gc-linux DVD device driver.

Parameters:
[in]blockpointer to a dvdcmdblk structure used to process the operation
[in]cbcallback to be invoked upon completion of operation
Returns:
none
void DVD_Reset ( u32  reset_mode)

Performs a reset of the drive and FW respectively.

Parameters:
[in]reset_modetype of reset
Returns:
none
 All Data Structures Files Functions Variables Typedefs Defines