00001 /*MT* 00002 00003 MediaTomb - http://www.mediatomb.cc/ 00004 00005 dvd_io_handler.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: dvd_io_handler.h 2081 2010-03-23 20:18:00Z lww $ 00028 */ 00029 00031 00033 #ifndef __DVD_IO_HANDLER_H__ 00034 #define __DVD_IO_HANDLER_H__ 00035 00036 #include "common.h" 00037 #include "io_handler.h" 00038 #include "dvdnav_read.h" 00039 00041 class DVDIOHandler : public IOHandler 00042 { 00043 protected: 00045 zmm::String dvdname; 00046 00048 zmm::Ref<DVDNavReader> dvd; 00049 00050 off_t total_size; 00051 00052 unsigned char *small_buffer; 00053 unsigned char *small_buffer_pos; 00054 bool last_read; 00055 00056 public: 00058 DVDIOHandler(zmm::String dvdname, int track, int chapter, 00059 int audio_stream_id); 00060 00061 ~DVDIOHandler(); 00063 virtual void open(IN enum UpnpOpenFileMode mode); 00064 00068 virtual int read(OUT char *buf, IN size_t length); 00069 00074 virtual int write(OUT char *buf, IN size_t length); 00075 00083 virtual void seek(IN off_t offset, IN int whence); 00084 00086 virtual void close(); 00087 00089 off_t length(); 00090 }; 00091 00092 00093 #endif // __DVD_IO_HANDLER_H__
1.6.1