00001 /* 00002 dvdinfo.h 00003 00004 (c) 2003 Thor Sigvaldason and Isaac Richards 00005 Part of the mythTV project 00006 00007 header for class to store info about a DVD 00008 */ 00009 00010 #ifndef DVDINFO_H_ 00011 #define DVDINFO_H_ 00012 00013 // Qt headers 00014 #include <qstring.h> 00015 #include <qptrlist.h> 00016 00017 class DVDSubTitleInfo 00018 { 00019 // 00020 // Holds information about available 00021 // subtitles 00022 00023 public: 00024 00025 DVDSubTitleInfo(int subtitle_id, const QString &subtitle_name) 00026 {id = subtitle_id; name = subtitle_name;} 00027 00028 int getID(){return id;} 00029 QString getName(){return name;} 00030 00031 private: 00032 00033 int id; 00034 QString name; 00035 }; 00036 00037 class DVDAudioInfo 00038 { 00039 // 00040 // A DVDTitleInfo (see below) holds a pointer list 00041 // of zero or more DVDAudioInfo objects (one per audio 00042 // track) 00043 // 00044 00045 public: 00046 00047 DVDAudioInfo(int track_number, const QString &audio_description); 00048 ~DVDAudioInfo(); 00049 00050 QString getAudioString(){return description;} 00051 void setChannels(int a_number){channels = a_number;} 00052 int getChannels(){return channels;} 00053 int getTrack(){return track;} 00054 00055 private: 00056 00057 QString description; 00058 int track; 00059 int channels; 00060 }; 00061 00062 class DVDTitleInfo 00063 { 00064 // 00065 // A little "struct" class that holds 00066 // DVD Title information 00067 // (n.b. a DVD "title" is a logically distinct section 00068 // of video, i.e. A movie, a special, a featurette, etc.) 00069 // 00070 00071 public: 00072 00073 DVDTitleInfo(); 00074 ~DVDTitleInfo(); 00075 00076 // 00077 // Set 00078 // 00079 00080 void setChapters(uint a_uint){numb_chapters = a_uint;} 00081 void setAngles(uint a_uint){numb_angles = a_uint;} 00082 void setTrack(uint a_uint){track_number = a_uint;} 00083 void setTime(uint h, uint m, uint s); 00084 void setSelected(bool yes_or_no){is_selected = yes_or_no;} 00085 void setQuality(int a_level){selected_quality = a_level;} 00086 void setAudio(int which_track){selected_audio = which_track;} 00087 void setSubTitle(int which_subtitle){selected_subtitle = which_subtitle;} 00088 void setName(QString a_name){name = a_name;} 00089 void setInputID(uint a_uint){dvdinput_id = a_uint;} 00090 void setAC3(bool y_or_n){use_ac3 = y_or_n;} 00091 00092 // 00093 // Get 00094 // 00095 00096 uint getChapters(){return numb_chapters;} 00097 uint getAngles(){return numb_angles;} 00098 uint getTrack(){return track_number;} 00099 uint getPlayLength(); 00100 QString getTimeString(); 00101 bool getSelected(){return is_selected;} 00102 int getQuality(){return selected_quality;} 00103 QString getName(){return name;} 00104 int getAudio(){return selected_audio;} 00105 int getSubTitle(){return selected_subtitle;} 00106 uint getInputID(){return dvdinput_id;} 00107 bool getAC3(){return use_ac3;} 00108 00109 void addAudio(DVDAudioInfo *new_audio_track); 00110 void addSubTitle(DVDSubTitleInfo *new_subtitle); 00111 QPtrList<DVDAudioInfo>* getAudioTracks(){return &audio_tracks;} 00112 QPtrList<DVDSubTitleInfo>* getSubTitles(){return &subtitles;} 00113 DVDAudioInfo* getAudioTrack(int which_one){return audio_tracks.at(which_one);} 00114 00115 private: 00116 00117 uint numb_chapters; 00118 uint numb_angles; 00119 uint track_number; 00120 00121 uint hours; 00122 uint minutes; 00123 uint seconds; 00124 00125 QPtrList<DVDAudioInfo> audio_tracks; 00126 QPtrList<DVDSubTitleInfo> subtitles; 00127 00128 bool is_selected; 00129 int selected_quality; 00130 int selected_audio; 00131 int selected_subtitle; 00132 bool use_ac3; 00133 QString name; 00134 00135 uint dvdinput_id; 00136 00137 }; 00138 00139 class DVDInfo 00140 { 00141 // 00142 // A little class that holds info about a DVD 00143 // (info passed in from the mtd) 00144 // 00145 00146 public: 00147 00148 DVDInfo(const QString &new_name); 00149 ~DVDInfo(); 00150 00151 void addTitle(DVDTitleInfo *new_title){titles.append(new_title);} 00152 DVDTitleInfo* getTitle(uint which_one); 00153 00154 QString getName(){return volume_name;} 00155 QPtrList<DVDTitleInfo>* getTitles(){return &titles;} 00156 00157 private: 00158 00159 QPtrList<DVDTitleInfo> titles; 00160 QString volume_name; 00161 }; 00162 00163 #endif // dvdinfo_h_ 00164
1.5.5