]> git.saurik.com Git - wxWidgets.git/blob - utils/wxMMedia2/lib/cdbase.h
Implemented Read in the PCM converter
[wxWidgets.git] / utils / wxMMedia2 / lib / cdbase.h
1 // -*- c++ -*-
2 // /////////////////////////////////////////////////////////////////////////////
3 // Name: cdbase.h
4 // Purpose: wxMMedia
5 // Author: Guilhem Lavaux
6 // Created: 1997
7 // Updated: 1998
8 // Copyright: (C) 1997, 1998, Guilhem Lavaux
9 // License: wxWindows license
10 // /////////////////////////////////////////////////////////////////////////////
11 #ifndef __CDA_base_H__
12 #define __CDA_base_H__
13
14 #ifdef __GNUG__
15 #pragma interface
16 #endif
17
18 #include "wx/wxprec.h"
19
20 #include "wx/object.h"
21
22 typedef struct wxCDtime {
23 wxUint8 track;
24 wxUint8 hour, min, sec;
25 } wxCDtime;
26
27 class WXDLLEXPORT wxCDAudio : public wxObject {
28 DECLARE_ABSTRACT_CLASS(wxCDAudio)
29 public:
30 typedef enum { PLAYING, PAUSED, STOPPED } CDstatus;
31 // Table of contents manager
32 class CDtoc {
33 protected:
34 wxCDtime *tracks_time, *tracks_pos;
35 wxCDtime total_time;
36 public:
37 //
38 CDtoc(wxCDtime& tot_tm, wxCDtime *trks_tm, wxCDtime *trks_pos)
39 { tracks_time = trks_tm; total_time = tot_tm; tracks_pos = trks_pos; }
40
41 // Returns the length of the specified track
42 // track: track to get length
43 wxCDtime GetTrackTime(wxUint8 track) const;
44 // Returns the position of the specified track
45 // track: track to get position
46 wxCDtime GetTrackPos(wxUint8 track) const;
47 // Returns the total time
48 inline wxCDtime GetTotalTime() const { return total_time; }
49 };
50 public:
51 //
52 wxCDAudio() : wxObject() {}
53 //
54 virtual ~wxCDAudio() {}
55
56 // Play audio at the specified position
57 virtual bool Play(const wxCDtime& beg_play, const wxCDtime& end_play) = 0;
58 // Play audio from the specified to the end of the CD audio
59 bool Play(const wxCDtime& beg_play);
60 //
61 bool Play(wxUint8 beg_track, wxUint8 end_track = 0);
62 // Pause the audio playing
63 virtual bool Pause() = 0;
64 // Resume a paused audio playing
65 virtual bool Resume() = 0;
66 // Get the current CD status
67 virtual CDstatus GetStatus() = 0;
68 // Get the current playing time
69 virtual wxCDtime GetTime() = 0;
70 // Returns the table of contents
71 virtual const CDtoc& GetToc() = 0;
72 // CD ok
73 virtual bool Ok() const = 0;
74 };
75
76 #endif