This is the include file for the extension called Basscd which allows you to
rip CD tracks. Haven't tested it yet but had some spare time so converted
this .h file.
You can download the basscd.dll from the www.un4seen.com website.
The .h declares are still included in the posting for reference.
Cheers
Steven
UPDATE: Made a mistake mixing Alias before Lib -> happens to me all the time
rip CD tracks. Haven't tested it yet but had some spare time so converted
this .h file.
You can download the basscd.dll from the www.un4seen.com website.
The .h declares are still included in the posting for reference.
Cheers
Steven
UPDATE: Made a mistake mixing Alias before Lib -> happens to me all the time

Code:
rem BASSCD 2.3 C/C++ header file, copyright (c) 2003-2006 Ian Luck. rem Requires BASS 2.3 - available from www.un4seen.com rem See the BASSCD.CHM file for more complete documentation */ rem #ifndef BASSCD_H rem #define BASSCD_H rem #include "bass.h" rem #ifdef __cplusplus rem extern "C" { rem #endif rem #ifndef BASSCDDEF rem #define BASSCDDEF(f) WINAPI f rem #endif rem // Additional error codes returned by BASS_ErrorGetCode %BASS_ERROR_NOCD = 12 '// no CD in drive %BASS_ERROR_CDTRACK = 13 '// invalid track number %BASS_ERROR_NOTAUDIO = 17 '// not an audio track rem // Additional config options %BASS_CONFIG_CD_FREEOLD = &H10200 %BASS_CONFIG_CD_RETRY = &H10201 %BASS_CONFIG_CD_AUTOSPEED = &H10202 %BASS_CONFIG_CD_SKIPERROR = &H10203 Type BASS_CD_INFO rwFlags as Dword CanOpen As Long CanLock As Long MaxSpeed As Dword Cache AS Dword cdText AS Long End Type 'typedef struct { ' DWORD rwflags; // read/write capability flags ' BOOL canopen; // BASS_CD_DOOR_OPEN/CLOSE is supported? ' BOOL canlock; // BASS_CD_DOOR_LOCK/UNLOCK is supported? ' DWORD maxspeed; // max read speed (KB/s) ' DWORD cache; // cache size (KB) ' BOOL cdtext; // can read CD-TEXT '} BASS_CD_INFO; rem // "rwflag" read capability flags %BASS_CD_RWFLAG_READCDR = 1 %BASS_CD_RWFLAG_READCDRW = 2 %BASS_CD_RWFLAG_READCDRW2 = 4 %BASS_CD_RWFLAG_READDVD = 8 %BASS_CD_RWFLAG_READDVDR = 16 %BASS_CD_RWFLAG_READDVDRAM = 32 %BASS_CD_RWFLAG_READANALOG = &H10000 %BASS_CD_RWFLAG_READM2F1 = &H100000 %BASS_CD_RWFLAG_READM2F2 = &H200000 %BASS_CD_RWFLAG_READMULTI = &H400000 %BASS_CD_RWFLAG_READCDDA = &H1000000 %BASS_CD_RWFLAG_READCDDASIA = &H2000000 %BASS_CD_RWFLAG_READSUBCHAN = &H4000000 %BASS_CD_RWFLAG_READSUBCHANDI = &H8000000 %BASS_CD_RWFLAG_READISRC = &H20000000 %BASS_CD_RWFLAG_READUPC = &H40000000 rem // additional BASS_CD_StreamCreate/File flags %BASS_CD_SUBCHANNEL = &H200 %BASS_CD_SUBCHANNEL_NOHW = &H400 rem // additional CD sync type %BASS_SYNC_CD_ERROR = 1000 %BASS_SYNC_CD_SPEED = 1002 rem // BASS_CD_Door actions %BASS_CD_DOOR_CLOSE = 0 %BASS_CD_DOOR_OPEN = 1 %BASS_CD_DOOR_LOCK = 2 %BASS_CD_DOOR_UNLOCK = 3 rem // BASS_CD_GetID flags %BASS_CDID_UPC = 1 %BASS_CDID_CDDB = 2 %BASS_CDID_CDDB2 = 3 %BASS_CDID_TEXT = 4 %BASS_CDID_CDPLAYER = 5 %BASS_CDID_MUSICBRAINZ = 6 %BASS_CDID_ISRC = &H100 rem // + track # rem // BASS_CHANNELINFO type %BASS_CTYPE_STREAM_CD = &H10200 Declare Function BASS_CD_GetDriveDescription Lib "basscd.dll" Alias "BASS_CD_GetDriveDescription" (ByVal drive As Dword) As Dword rem const char *BASSCDDEF(BASS_CD_GetDriveDescription)(DWORD drive); Declare Function BASS_CD_GetDriveLetter Lib "basscd.dll" Alias "BASS_CD_GetDriveLetter" (ByVal drive AS Dword) As Dword rem DWORD BASSCDDEF(BASS_CD_GetDriveLetter)(DWORD drive); Declare Function BASS_CD_GetInfo Lib "basscd.dll" Alias "BASS_CD_GetInfo" (ByVal drive as Dword, ByRef CDInfo as BASS_CD_INFO) As Long rem BOOL BASSCDDEF(BASS_CD_GetInfo)(DWORD drive, BASS_CD_INFO *info); Declare Function BASS_CD_Door Lib "basscd.dll" alias "BASS_CD_Door" (ByVal drive as Dword, ByVal Action as Dword) As Long rem BOOL BASSCDDEF(BASS_CD_Door)(DWORD drive, DWORD action); Declare Function BASS_CD_DoorIsOpen Lib "basscd.dll" Alias "BASS_CD_DoorIsOpen" (ByVal drive as Dword) As Long rem BOOL BASSCDDEF(BASS_CD_DoorIsOpen)(DWORD drive); Declare Function BASS_CD_DoorIsLocked Lib "basscd.dll" Alias "BASS_CD_DoorIsLocked" (ByVal drive as dWord) As Long rem BOOL BASSCDDEF(BASS_CD_DoorIsLocked)(DWORD drive); Declare Function BASS_CD_IsReady Lib "basscd.dll" Alias "BASS_CD_IsReady" (ByVal drive as Dword) As Long rem BOOL BASSCDDEF(BASS_CD_IsReady)(DWORD drive); Declare Function BASS_CD_GetTracks Lib "basscd.dll" Alias "BASS_CD_GetTracks" (ByVal drive as Dword) As Dword rem DWORD BASSCDDEF(BASS_CD_GetTracks)(DWORD drive); Declare Function BASS_CD_GetTrackLength Lib "basscd.dll" Alias "BASS_CD_GetTrackLength"(ByVal drive as dword, ByVal Track as Dword) AS dword rem DWORD BASSCDDEF(BASS_CD_GetTrackLength)(DWORD drive, DWORD track); Declare Function BASS_CD_GetTrackPregap Lib "basscd.dll" Alias "BASS_CD_GetTrackPregap"(ByVal drive as Dword, ByVal track as Dword) as dword rem DWORD BASSCDDEF(BASS_CD_GetTrackPregap)(DWORD drive, DWORD track); Declare Function BASS_CD_GetID lib "basscd.dll" Alias "BASS_CD_GetID" (ByVal drive as Dword, ByVal id as Dword) as Dword rem const char *BASSCDDEF(BASS_CD_GetID)(DWORD drive, DWORD id); Declare Function BASS_CD_GetSpeed LIb "basscd.dll" Alias "BASS_CD_GetSpeed" (ByVal drive As Dword) As Dword rem DWORD BASSCDDEF(BASS_CD_GetSpeed)(DWORD drive); Declare Function BASS_CD_SetSpeed Lib "basscd.dll" Alias "BASS_CD_SetSpeed" (ByVal drive as Dword, ByVal speed as dword) As Long rem BOOL BASSCDDEF(BASS_CD_SetSpeed)(DWORD drive, DWORD speed); Declare Function BASS_CD_Release Lib "basscd.dll" Alias "BASS_CD_Release" (ByVal drive as Dword) as Long rem BOOL BASSCDDEF(BASS_CD_Release)(DWORD drive); Declare Function BASS_CD_StreamCreate Lib "basscd.dll" Alias "BASS_CD_StreamCreate" (ByVal drive as Dword, ByVal track as Dword, ByVal Flags as Dword) As Dword rem HSTREAM BASSCDDEF(BASS_CD_StreamCreate)(DWORD drive, DWORD track, DWORD flags); Declare Function BASS_CD_StreamCreateFile Lib "basscd.dll" Alias "BASS_CD_StreamCreateFile" _ (ByVal File as Asciiz ptr, ByVal Flags as Dword) As Dword rem HSTREAM BASSCDDEF(BASS_CD_StreamCreateFile)(const char *file, DWORD flags); Declare Function BASS_CD_StreamGetTrack Lib "basscd.dll" Alias "BASS_CD_StreamGetTrack" _ (ByVal handle as Dword) As Dword rem DWORD BASSCDDEF(BASS_CD_StreamGetTrack)(HSTREAM handle); Declare Function BASS_CD_StreamSetTrack Lib "basscd.dll" Alias "BASS_CD_StreamSetTrack" _ (ByVal handle as Dword, ByVal track as Dword) AS Long rem BOOL BASSCDDEF(BASS_CD_StreamSetTrack)(HSTREAM handle, DWORD track); Declare Function BASS_CD_Analog_Play Lib "basscd.dll" Alias "BASS_CD_Analog_Play" _ (ByVal drive as Dword, ByVal track as Dword, ByVal Pos as Dword) As Long rem BOOL BASSCDDEF(BASS_CD_Analog_Play)(DWORD drive, DWORD track, DWORD pos); Declare Function BASS_CD_Analog_PlayFile Lib "basscd.dll" Alias "BASS_CD_Analog_PlayFile" _ (ByVal File as Asciiz Ptr, ByVal pos as dword) As Dword rem DWORD BASSCDDEF(BASS_CD_Analog_PlayFile)(const char *file, DWORD pos); Declare Function BASS_CD_Analog_Stop Lib "basscd.dll" Alias "BASS_CD_Analog_Stop" _ (ByVal drive as Dword) As Long rem BOOL BASSCDDEF(BASS_CD_Analog_Stop)(DWORD drive); Declare Function BASS_CD_Analog_IsActive Lib "basscd.dll" Alias "BASS_CD_Analog_IsActive" _ (ByVal drive as Dword) As Dword rem DWORD BASSCDDEF(BASS_CD_Analog_IsActive)(DWORD drive); Declare Function BASS_CD_Analog_GetPosition Lib "basscd.dll" Alias "BASS_CD_Analog_GetPosition" _ (ByVal drive as Dword) As Dword rem DWORD BASSCDDEF(BASS_CD_Analog_GetPosition)(DWORD drive);