00001 /*MT* 00002 00003 MediaTomb - http://www.mediatomb.cc/ 00004 00005 dvdnav_read.h - this file is part of MediaTomb. 00006 00007 Copyright (C) 2005 Gena Batyan <bgeradz@mediatomb.cc>, 00008 Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc> 00009 00010 Copyright (C) 2006-2010 Gena Batyan <bgeradz@mediatomb.cc>, 00011 Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc>, 00012 Leonhard Wimmer <leo@mediatomb.cc> 00013 00014 MediaTomb is free software; you can redistribute it and/or modify 00015 it under the terms of the GNU General Public License version 2 00016 as published by the Free Software Foundation. 00017 00018 MediaTomb is distributed in the hope that it will be useful, 00019 but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 GNU General Public License for more details. 00022 00023 You should have received a copy of the GNU General Public License 00024 version 2 along with MediaTomb; if not, write to the Free Software 00025 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 00026 00027 $Id: dvdnav_read.h 2081 2010-03-23 20:18:00Z lww $ 00028 */ 00029 00032 #ifndef __DVDNAV_READ_H__ 00033 #define __DVDNAV_READ_H__ 00034 00035 #include <stdint.h> 00036 00037 #include <sys/types.h> 00038 #include <dvdnav/dvdnav.h> 00039 #include "common.h" 00040 #include "sync.h" 00041 00056 class DVDNavReader : public zmm::Object 00057 { 00058 public: 00061 DVDNavReader(zmm::String path); 00062 ~DVDNavReader(); 00063 00065 int titleCount(); 00066 00069 int chapterCount(int title_idx); 00070 00072 int audioTrackCount(); 00073 00087 void selectPGC(int title_idx, int chapter_idx); 00088 00095 size_t readSector(unsigned char *buffer, size_t length); 00096 00098 zmm::String audioLanguage(int stream_idx); 00099 00101 int audioSampleFrequency(int stream_idx); 00102 00104 int audioChannels(int stream_idx); 00105 00107 int audioStreamID(int stream_idx); 00108 00110 zmm::String audioFormat(int stream_idx); 00111 00112 protected: 00114 zmm::String dvd_path; 00115 00117 dvdnav_t *dvd; 00118 00120 bool EOT; 00121 00122 zmm::Ref<Mutex> mutex; 00123 00124 zmm::String getLanguage(char *code); 00125 }; 00126 00127 00128 #endif // __DVDNAV_READ_H__
1.6.1