⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dvdimage.h

📁 Linux下比较早的基于命令行的DVD播放器
💻 H
字号:
//// Copyright (c) 2004 by Istv醤 V醨adi//// This file is part of dxr3Player, a DVD player written specifically // for the DXR3 (aka Hollywood+) decoder card.// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA#ifndef DVD_DVDIMAGE_H#define DVD_DVDIMAGE_H//------------------------------------------------------------------------------#include "Device.h"#include "DVD.h"#include "FileHandler.h"//------------------------------------------------------------------------------typedef struct dvd_reader_s dvd_reader_t;//------------------------------------------------------------------------------namespace dvd {//------------------------------------------------------------------------------/** * A DVD image or mount directory. */class DVDImage : public Device{private:    /**     * Our own file handler.     */    class FileHandler : public dvd::FileHandler    {    private:        /**         * The low-level file structure.         */        dvd_file_t* file;    public:        /**         * Construct the wrapper with the given file, which should not         * be 0.         */        FileHandler(dvd_file_t* file);        /**         * Destroy the wrapper by closing the file.         */        ~FileHandler();        /**         * @see dvd::FileHandler::getLength         */        virtual size_t getLength();        /**         * @see dvd::FileHandler::readSectors         */        virtual void readSectors(void* dest, size_t offset, size_t numSectors);    };public:    /**     * Check if the given path can belong to a DVD image or directory.     */    static bool isDVDImage(const char* path);private:        /**     * The DVD path.     */    char* path;        /**     * The DVD reader to use.      */    dvd_reader_t* reader;    /**     * The IFO handles.     */    ifo_handle_t* ifoHandles[DVD::maxNumberOfVTSs + 1];public:    /**     * Construct the DVD image with the given path.     */    DVDImage(const char* p);    /**     * Destroy the DVD image handler     */    ~DVDImage();    /**     * @see Device::hasDisk     */    virtual bool hasDisk();    /**     * @see Device::isOpen     */    virtual bool isOpen() const;        /**     * @see Device::open     */    virtual bool open();    /**     * @see Device::getID     */    virtual void getID(unsigned char* dest) const;    /**     * @see Device::getIFOHandle     */    virtual const ifo_handle_t* getIFOHandle(unsigned titleNo) const;        /**     * @see Device::openFile     */    virtual dvd::FileHandler* openFile(unsigned titleNo, bool isMenu) const;    /**     * @see Device::close     */    virtual void close();    /**     * @see Device::eject     */    virtual void eject();private:    /**     * Open and read the IFO handles.     *     * @return if reading succeeded     */    bool readIFOHandles();    /**     * Close the IFO handles.     */    void closeIFOHandles();};//------------------------------------------------------------------------------} /* namespace dvd *///------------------------------------------------------------------------------#endif // DVD_DVDIMAGE_H// Local variables:// mode: c++// End:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -