Announcement

Collapse
1 of 2 < >

New Sub-Forum

In an effort to help make sure there are appropriate categories for topics of discussion that are happening, there is now a sub-forum for databases and database programming under Special Interest groups. Please direct questions, etc., about this topic to that sub-forum moving forward. Thank you.
2 of 2 < >

Forum Guidelines

This forum is for finished source code that is working properly. If you have questions about this or any other source code, please post it in one of the Discussion Forums, not here.
See more
See less

Basscd.inc - Include file for Bass CD dll

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Basscd.inc - Include file for Bass CD dll

    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

    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);
    Last edited by Steven Pringels 3; 10 Oct 2007, 08:09 AM.
    So here we are, this is the end.
    But all that dies, is born again.
    - From The Ashes (In This Moment)
Working...
X