File indexing completed on 2024-05-05 04:51:26
0001 /* 0002 SPDX-FileCopyrightText: 1998-2007 Sebastian Trueg <trueg@k3b.org> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #ifndef _K3B_VIDEODVD_TITLE_H_ 0007 #define _K3B_VIDEODVD_TITLE_H_ 0008 0009 #include "k3b_export.h" 0010 0011 #include "k3bvideodvdtime.h" 0012 #include "k3bvideodvdvideostream.h" 0013 #include "k3bvideodvdaudiostream.h" 0014 #include "k3bvideodvdsubpicturestream.h" 0015 #include "k3bvideodvdptt.h" 0016 0017 #include <QVector> 0018 0019 0020 namespace K3b { 0021 namespace VideoDVD 0022 { 0023 class LIBK3B_EXPORT Title 0024 { 0025 public: 0026 Title() {} 0027 0028 unsigned int titleNumber() const { return m_titleNum; } 0029 0030 /** 0031 * \return The number of PTTs (Part of Title), commonly known 0032 * as chapters 0033 */ 0034 unsigned int numPTTs() const { return m_numPTTs; } 0035 0036 /** 0037 * This method is just here for convenience. It returns the same as the above. 0038 */ 0039 unsigned int numChapters() const { return m_numPTTs; } 0040 unsigned int numAngles() const { return m_numAngles; } 0041 0042 /** 0043 * \return The number of the titleset this title is a part of. 0044 */ 0045 unsigned int titleSet() const { return m_titleSet; } 0046 0047 /** 0048 * \return Number of the title in it's titleset. 0049 */ 0050 unsigned int ttn() const { return m_ttn; } 0051 0052 unsigned int numAudioStreams() const { return m_audioStreams.count(); } 0053 unsigned int numSubPictureStreams() const { return m_subPictureStreams.count(); } 0054 0055 const VideoStream& videoStream() const { return m_videoStream; } 0056 const AudioStream& audioStream( unsigned int i ) const { return m_audioStreams[i]; } 0057 const SubPictureStream& subPictureStream( unsigned int i ) const { return m_subPictureStreams[i]; } 0058 0059 /** 0060 * Access to the PTTs of the title 0061 */ 0062 const PTT& operator[]( int i ) const { return ptt( i ); } 0063 0064 /** 0065 * Access to the PTTs of the title 0066 */ 0067 const PTT& ptt( int i ) const { return m_ptts[i]; } 0068 0069 /** 0070 * Access to the PTTs (chapters) of the title 0071 */ 0072 const PTT& chapter( int i ) const { return ptt( i ); } 0073 0074 const Time& playbackTime() const { return m_playbackTime; } 0075 0076 /** 0077 * \return A video capture 0078 */ 0079 // QBitmap videoCapture( const Time& ) const; 0080 0081 private: 0082 unsigned int m_titleNum; 0083 unsigned int m_numPTTs; 0084 unsigned int m_titleSet; 0085 // FIXME: find a proper name for ttn 0086 unsigned int m_ttn; 0087 unsigned int m_numAngles; 0088 0089 Time m_playbackTime; 0090 0091 VideoStream m_videoStream; 0092 QVector<AudioStream> m_audioStreams; 0093 QVector<SubPictureStream> m_subPictureStreams; 0094 0095 QVector<PTT> m_ptts; 0096 0097 // VideoDVD* m_videoDVD; 0098 0099 friend class VideoDVD; 0100 }; 0101 } 0102 } 0103 0104 #endif