diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-17 00:32:19 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-17 00:32:19 +0000 |
commit | 0d382a262c0638d0f572fc37193ccc5ed3dc895f (patch) | |
tree | 8578dcddfce4191f3f7a142a37769df7add48475 /libk9copy/k9dvd.h | |
download | k9copy-0d382a262c0638d0f572fc37193ccc5ed3dc895f.tar.gz k9copy-0d382a262c0638d0f572fc37193ccc5ed3dc895f.zip |
Added old abandoned version of k9copy
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/k9copy@1091546 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'libk9copy/k9dvd.h')
-rwxr-xr-x | libk9copy/k9dvd.h | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/libk9copy/k9dvd.h b/libk9copy/k9dvd.h new file mode 100755 index 0000000..55182df --- /dev/null +++ b/libk9copy/k9dvd.h @@ -0,0 +1,174 @@ +/************************************************************************** +* Copyright (C) 2005 by Jean-Michel Petit * +* [email protected] * +* * +* 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., * +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * +***************************************************************************/ +#ifndef K9DVD_H +#define K9DVD_H +#include "k9common.h" +#include "k9dvdread.h" +#include <qstringlist.h> +#include <qdatetime.h> +#include <qvaluelist.h> + + +struct streamSize { + unsigned char id; + float size_mb; + float percent; +}; + +struct stream_counter { + unsigned char id; + int count; + float size_mb; + float percent; +}; + +class k9DVDProgress; +class k9DVDChapter; +class k9DVDTitle; +class k9DVDTitleset; + +/** get the DVD structure with titles lengths and streams lengths. + *@author + */ + +class k9DVD : public QObject { +Q_OBJECT +private: + QObjectList m_titles; + QPtrList<k9DVDTitleset> m_titlesets; + QString m_title; + int m_titleCount; + k9DVDTitle *m_longestTitle; + QStringList m_lvideoFormat; + QStringList m_laspectRatio; + QStringList m_lquantization; + QStringList m_lmpegVersion; + QStringList m_lvideoHeight; + QStringList m_lvideoWidth; + QStringList m_lpermittedDf; + QStringList m_laudioFormat; + QStringList m_lsampleFreq; + QStringList m_laudioType; + QStringList m_lsubpType; + QStringList m_langCode; + QStringList m_langName; + double m_frames_per_s[4]; + uint m_menuSize; + k9DVDProgress *m_progressDlg; + QString m_Device; + bool m_error; + QString m_errMsg; + bool m_opened; + QString m_format; + k9DVDTitle* m_start; + int m_titlesetCount; +public: + k9DVD(QObject *parent=0,const char *name=0,const QStringList args=0) ; + ~k9DVD(); + + /** + * Opens and estimates the size of each stream + * @param device input device + * @return return code (0=ok) + */ + virtual int scandvd (const QString & device,bool _quickScan); + + /** + * gets the title of the DVD + * @return DVD title + */ + virtual const QString& getDVDTitle(); + + /** + * set the title of the DVD + * @param _newVal the new DVD title + */ + virtual void setDVDTitle(const QString &_newVal); + + /** + * + * @return returns the number of titles + */ + virtual const int& gettitleCount(); + + /** + * + * @return returns the number of titlesets + */ + virtual const int& gettitlesetCount(); + + + /** + * returns a title of the DVD + * @param num the title number + * @return the title + */ + virtual k9DVDTitle* gettitle(int num); + + /** + * returns a title (which is in tt_srpt) + * @param num the title number + * @return the title + */ + virtual k9DVDTitle* gettitleByNum(int num); + virtual k9DVDTitle *getlongestTitle(); + virtual float getfactor(bool withMenus,bool _streams,bool _useDvdAuthor); + virtual const QString& getDevice(); + virtual const bool& geterror(); + virtual const QString& geterrMsg(); + virtual const bool& getopened(); + virtual uint64_t getsizeSelected(bool _streams); + virtual QString &getFormat(); + virtual k9DVDTitle* getstart(); + virtual void setstart(k9DVDTitle* title); + virtual int getnewTitleNum(k9DVDTitle *title); + virtual int getmenuSize(); + virtual void close(); + virtual k9DVDTitleset *gettitleset(int num); + virtual k9DVDRead * getdvd() {return &m_dvd;} + static QString lang_name(const QString & code,const QString & name); +private: // Private methods + k9DVDRead m_dvd; + k9DVDTitle* addTitle(k9DVDTitleset *titleset,int id,int num,int _VTS,int _pgc,uint32_t _startSector, bool _indexed); + float calcVobuSize(ifo_handle_t *_ifo,k9DVDChapter *_chapter); + long stream_vob( int title, unsigned long startblock, unsigned long lastblock, struct stream_counter *sc); + int identify_stream( unsigned char *buffer ) ; + int dvdtime2msec(dvd_time_t *dt); + int get_title_name(const char* dvd_device, char* title); + void calcStreamSize(k9DVDTitle & title); + void setError(const QString &err); + int getVampsID(int type); + int calcNumTitle(ifo_handle_t *ifo,int _vts,int _ttn); +public slots: // Public slots + void slotVobProgress(unsigned int position,unsigned int total); + void slotTitleProgress(unsigned int position,unsigned int total); + void slotTitleText(QString &text); + void slotTotalText(QString &text); +signals: // Signals + void sigVobProgress(unsigned int position,unsigned int total); + void sigTitleProgress(unsigned int position,unsigned int total); + void sigTitleText(QString &text); + void sigTotalText(QString &text); +}; + +typedef struct lng { char code[3]; QString name;}; + +#endif + |