00001 00002 #ifndef header_cdaudio_linux 00003 #define header_cdaudio_linux 00004 00005 #include "API/Sound/cd_audio.h" 00006 00007 struct cdrom_tocentry; 00008 00009 class CL_CDDrive_Linux : public CL_CDDrive 00010 { 00011 public: 00012 static void init_cdaudio(); 00013 00014 CL_CDDrive_Linux(const char *filename); 00015 virtual ~CL_CDDrive_Linux(); 00016 00017 virtual bool init(); 00018 00019 virtual std::string get_drive_path(); 00020 virtual std::string get_cd_name(); 00021 00022 virtual int get_num_tracks(); 00023 00024 virtual bool is_playing(); 00025 virtual int get_cur_track(); 00026 virtual int get_cur_frame(); 00027 00028 virtual bool play_tracks(int track, int end_track); 00029 virtual bool play_frames(int frame, int end_frame); 00030 virtual bool play_track(int track); 00031 00032 virtual void stop(); 00033 virtual void pause(); 00034 virtual void resume(); 00035 00036 private: 00037 std::string filename; 00038 int file_handle; 00039 00040 std::string cd_name; 00041 struct STrack 00042 { 00043 int start_lba; 00044 int track_length; 00045 bool is_audio; 00046 }; 00047 00048 std::vector<STrack> tracks; 00049 int num_tracks; 00050 00051 int first_track; 00052 int last_track; 00053 00054 bool readtoc(); 00055 bool readtocentry(int track_no,struct cdrom_tocentry* track_info); 00056 }; 00057 00058 #endif
1.2.6 written by Dimitri van Heesch,
© 1997-2001