summaryrefslogtreecommitdiffstats
path: root/libk3b/videodvd/k3bvideodvdtitle.h
diff options
context:
space:
mode:
Diffstat (limited to 'libk3b/videodvd/k3bvideodvdtitle.h')
-rw-r--r--libk3b/videodvd/k3bvideodvdtitle.h112
1 files changed, 112 insertions, 0 deletions
diff --git a/libk3b/videodvd/k3bvideodvdtitle.h b/libk3b/videodvd/k3bvideodvdtitle.h
new file mode 100644
index 0000000..17f31a3
--- /dev/null
+++ b/libk3b/videodvd/k3bvideodvdtitle.h
@@ -0,0 +1,112 @@
+/*
+ *
+ * $Id: sourceheader 511311 2006-02-19 14:51:05Z trueg $
+ * Copyright (C) 2006 Sebastian Trueg <trueg@k3b.org>
+ *
+ * This file is part of the K3b project.
+ * Copyright (C) 1998-2007 Sebastian Trueg <trueg@k3b.org>
+ *
+ * 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.
+ * See the file "COPYING" for the exact licensing terms.
+ */
+
+#ifndef _K3B_VIDEODVD_TITLE_H_
+#define _K3B_VIDEODVD_TITLE_H_
+
+#include <k3b_export.h>
+
+#include <k3bvideodvdtime.h>
+#include <k3bvideodvdvideostream.h>
+#include <k3bvideodvdaudiostream.h>
+#include <k3bvideodvdsubpicturestream.h>
+#include <k3bvideodvdptt.h>
+
+#include <qvaluevector.h>
+
+
+namespace K3bVideoDVD
+{
+ class LIBK3B_EXPORT Title
+ {
+ public:
+ Title() {}
+
+ unsigned int titleNumber() const { return m_titleNum; }
+
+ /**
+ * \return The number of PTTs (Part of Title), commonly known
+ * as chapters
+ */
+ unsigned int numPTTs() const { return m_numPTTs; }
+
+ /**
+ * This method is just here for convenience. It returns the same as the above.
+ */
+ unsigned int numChapters() const { return m_numPTTs; }
+ unsigned int numAngles() const { return m_numAngles; }
+
+ /**
+ * \return The number of the titleset this title is a part of.
+ */
+ unsigned int titleSet() const { return m_titleSet; }
+
+ /**
+ * \return Number of the title in it's titleset.
+ */
+ unsigned int ttn() const { return m_ttn; }
+
+ unsigned int numAudioStreams() const { return m_audioStreams.count(); }
+ unsigned int numSubPictureStreams() const { return m_subPictureStreams.count(); }
+
+ const VideoStream& videoStream() const { return m_videoStream; }
+ const AudioStream& audioStream( unsigned int i ) const { return m_audioStreams[i]; }
+ const SubPictureStream& subPictureStream( unsigned int i ) const { return m_subPictureStreams[i]; }
+
+ /**
+ * Access to the PTTs of the title
+ */
+ const PTT& operator[]( int i ) const { return ptt( i ); }
+
+ /**
+ * Access to the PTTs of the title
+ */
+ const PTT& ptt( int i ) const { return m_ptts[i]; }
+
+ /**
+ * Access to the PTTs (chapters) of the title
+ */
+ const PTT& chapter( int i ) const { return ptt( i ); }
+
+ const Time& playbackTime() const { return m_playbackTime; }
+
+ /**
+ * \return A video capture
+ */
+ // QBitmap videoCapture( const Time& ) const;
+
+ private:
+ unsigned int m_titleNum;
+ unsigned int m_numPTTs;
+ unsigned int m_titleSet;
+ // FIXME: find a proper name for ttn
+ unsigned int m_ttn;
+ unsigned int m_numAngles;
+
+ Time m_playbackTime;
+
+ VideoStream m_videoStream;
+ QValueVector<AudioStream> m_audioStreams;
+ QValueVector<SubPictureStream> m_subPictureStreams;
+
+ QValueVector<PTT> m_ptts;
+
+ // VideoDVD* m_videoDVD;
+
+ friend class VideoDVD;
+ };
+}
+
+#endif