[matroska] r1277 - in trunk: . ARCorrect DvdMenuXtractor DvdMenuXtractor/libdvdread DvdMenuXtractor/libdvdread/dvdread DvdMenuXtractor/libdvdread/src DvdMenuXtractor/libdvdread/win32 DvdMenuXtractor/mpegparser DvdMenuXtractor/vobparser DvdMenuXtractor/vobparser/iso LemAPI/ac3_input LemAPI/avi_input LemAPI/matroska_writer LemAPI/mpa_input LemAPI/tinyXML LemAPI/wav_input MatroskaUtils MatroskaUtils/GDC/GDCMatroska MatroskaUtils/GDC/common MatroskaUtils/MatroskaCDL MatroskaUtils/ShellExtension MatroskaUtils/ShellExtension/CheckUsage MatroskaUtils/ShellExtension/DShowTools MatroskaUtils/tinyxml foo_input_matroska libebml libmatroska libmatroska/matroska libmatroska/test libmatroska/test/ebml libmatroska/test/mux libmatroska/test/tags libmatroska/test/utf8 mkaencoder/src mkvwriter mkvwriter/pub mkxds mkxuncat
[email protected] Sat, 17 Feb 2007 14:00:20 +0300 (MSK)
| Newsgroups | gmane.comp.multimedia.matroska.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: robux4
Date: 2007-02-17 13:55:54 +0300 (Sat, 17 Feb 2007)
New Revision: 1277
Modified:
trunk/ARCorrect/ARCorrect.h
trunk/ARCorrect/ARCorrectFilter.h
trunk/ARCorrect/ARCorrectPage.h
trunk/ARCorrect/ARCorrect_GUID.h
trunk/ARCorrect/DShowUtils.h
trunk/ARCorrect/ITrackInfo.h
trunk/ARCorrect/PersistPropertyBag.h
trunk/ARCorrect/resource.h
trunk/DvdMenuXtractor/DvdMenuXtractor.proj
trunk/DvdMenuXtractor/chaptermanager.h
trunk/DvdMenuXtractor/config.h
trunk/DvdMenuXtractor/dmx.h
trunk/DvdMenuXtractor/dmxconsole.h
trunk/DvdMenuXtractor/dmxlogwidget.h
trunk/DvdMenuXtractor/dmxselectionitem.h
trunk/DvdMenuXtractor/dmxselectiontree.h
trunk/DvdMenuXtractor/dmxwizard.h
trunk/DvdMenuXtractor/libdvdread/dvdread/bswap.h
trunk/DvdMenuXtractor/libdvdread/dvdread/cmd_print.h
trunk/DvdMenuXtractor/libdvdread/dvdread/dvd_input.h
trunk/DvdMenuXtractor/libdvdread/dvdread/dvd_reader.h
trunk/DvdMenuXtractor/libdvdread/dvdread/dvd_udf.h
trunk/DvdMenuXtractor/libdvdread/dvdread/dvdread.proj
trunk/DvdMenuXtractor/libdvdread/dvdread/dvdread_internal.h
trunk/DvdMenuXtractor/libdvdread/dvdread/ifo_print.h
trunk/DvdMenuXtractor/libdvdread/dvdread/ifo_read.h
trunk/DvdMenuXtractor/libdvdread/dvdread/ifo_types.h
trunk/DvdMenuXtractor/libdvdread/dvdread/md5.h
trunk/DvdMenuXtractor/libdvdread/dvdread/nav_print.h
trunk/DvdMenuXtractor/libdvdread/dvdread/nav_read.h
trunk/DvdMenuXtractor/libdvdread/dvdread/nav_types.h
trunk/DvdMenuXtractor/libdvdread/libdvdread.proj
trunk/DvdMenuXtractor/libdvdread/src/src.proj
trunk/DvdMenuXtractor/libdvdread/win32/config.h
trunk/DvdMenuXtractor/libdvdread/win32/dirent.h
trunk/DvdMenuXtractor/libdvdread/win32/gtchar.h
trunk/DvdMenuXtractor/libdvdread/win32/inttypes.h
trunk/DvdMenuXtractor/libdvdread/win32/posix.h
trunk/DvdMenuXtractor/libdvdread/win32/stdint.h
trunk/DvdMenuXtractor/libdvdread/win32/win32.proj
trunk/DvdMenuXtractor/logtextedit.h
trunk/DvdMenuXtractor/mpegparser/CircBuffer.h
trunk/DvdMenuXtractor/mpegparser/M2VParser.h
trunk/DvdMenuXtractor/mpegparser/MPEGVideoBuffer.h
trunk/DvdMenuXtractor/mpegparser/Types.h
trunk/DvdMenuXtractor/mpegparser/mpegparser.proj
trunk/DvdMenuXtractor/outputreader.h
trunk/DvdMenuXtractor/selectiontreeitem.h
trunk/DvdMenuXtractor/selectiontreesubitem.h
trunk/DvdMenuXtractor/utilities.h
trunk/DvdMenuXtractor/vobparser/IFOContent.h
trunk/DvdMenuXtractor/vobparser/IFOFile.h
trunk/DvdMenuXtractor/vobparser/VobParser.h
trunk/DvdMenuXtractor/vobparser/iso/iso_lang.h
trunk/DvdMenuXtractor/vobparser/vobparser.proj
trunk/LemAPI/ac3_input/ac3file.h
trunk/LemAPI/ac3_input/ac3frame.h
trunk/LemAPI/ac3_input/ac3iframe.h
trunk/LemAPI/ac3_input/c_types.h
trunk/LemAPI/avi_input/avilib.h
trunk/LemAPI/matroska_writer/matroska_writer.h
trunk/LemAPI/matroska_writer/matroska_writer_gui.h
trunk/LemAPI/mpa_input/c_types.h
trunk/LemAPI/mpa_input/mpafile.h
trunk/LemAPI/mpa_input/mpaframe.h
trunk/LemAPI/mpa_input/mpiframe.h
trunk/LemAPI/tinyXML/tinystr.h
trunk/LemAPI/tinyXML/tinyxml.h
trunk/LemAPI/wav_input/Config.h
trunk/LemAPI/wav_input/Endian.h
trunk/LemAPI/wav_input/FourCC.h
trunk/LemAPI/wav_input/Types.h
trunk/LemAPI/wav_input/c_types.h
trunk/LemAPI/wav_input/chunk.h
trunk/LemAPI/wav_input/fact.h
trunk/LemAPI/wav_input/fio.h
trunk/LemAPI/wav_input/format.h
trunk/LemAPI/wav_input/riff.h
trunk/LemAPI/wav_input/wav.h
trunk/LemAPI/wav_input/wav2mka.h
trunk/MatroskaUtils/AviTagReader.h
trunk/MatroskaUtils/CFireRoutine.h
trunk/MatroskaUtils/DbgOut.h
trunk/MatroskaUtils/GDC/GDCMatroska/GDCMatroska_h.h
trunk/MatroskaUtils/GDC/GDCMatroska/IndexMatroska.h
trunk/MatroskaUtils/GDC/GDCMatroska/MatroskaParser.h
trunk/MatroskaUtils/GDC/GDCMatroska/Win32Stream.h
trunk/MatroskaUtils/GDC/GDCMatroska/resource.h
trunk/MatroskaUtils/GDC/GDCMatroska/stdafx.h
trunk/MatroskaUtils/GDC/common/GoogleDesktopComponentRegistration.h
trunk/MatroskaUtils/GDC/common/GoogleDesktopSearchAPI.h
trunk/MatroskaUtils/GDC/common/stdafx.h
trunk/MatroskaUtils/JCThread.h
trunk/MatroskaUtils/JList.h
trunk/MatroskaUtils/JString.h
trunk/MatroskaUtils/MP3TagReader.h
trunk/MatroskaUtils/MatroskaCDL/CDLApi.h
trunk/MatroskaUtils/MatroskaCDL/MatroskaCDL.h
trunk/MatroskaUtils/MatroskaChapterData.h
trunk/MatroskaUtils/MatroskaPages.h
trunk/MatroskaUtils/MatroskaReg.h
trunk/MatroskaUtils/MatroskaTagData.h
trunk/MatroskaUtils/MatroskaTrackData.h
trunk/MatroskaUtils/MatroskaUtils.h
trunk/MatroskaUtils/MatroskaUtilsBitrate.h
trunk/MatroskaUtils/MatroskaUtilsDebug.h
trunk/MatroskaUtils/MatroskaUtilsReader.h
trunk/MatroskaUtils/ShellExtension/CheckUsage/CheckUsage.h
trunk/MatroskaUtils/ShellExtension/CheckUsage/resource.h
trunk/MatroskaUtils/ShellExtension/DShowTools/DShowTools.h
trunk/MatroskaUtils/ShellExtension/DShowTools/convert.h
trunk/MatroskaUtils/ShellExtension/Http.h
trunk/MatroskaUtils/ShellExtension/MatroskaInfoParserCache.h
trunk/MatroskaUtils/ShellExtension/MatroskaProp.h
trunk/MatroskaUtils/ShellExtension/MatroskaPropShellExtension.h
trunk/MatroskaUtils/TagReader.h
trunk/MatroskaUtils/ZipArchive.h
trunk/MatroskaUtils/mdump.h
trunk/MatroskaUtils/resource.h
trunk/MatroskaUtils/tinyxml/tinystr.h
trunk/config.h
trunk/foo_input_matroska/DbgOut.h
trunk/foo_input_matroska/Foobar2000ReaderIOCallback.h
trunk/foo_input_matroska/container_matroska.h
trunk/foo_input_matroska/container_matroska_impl.h
trunk/foo_input_matroska/filesystem_matroska.h
trunk/foo_input_matroska/matroska_parser.h
trunk/foo_input_matroska/resource.h
trunk/libebml/libebml.proj
trunk/libmatroska/libmatroska.proj
trunk/libmatroska/matroska/KaxTag.h
trunk/libmatroska/test/ebml/ebml.proj
trunk/libmatroska/test/mux/mux.proj
trunk/libmatroska/test/tags/tags.proj
trunk/libmatroska/test/test.proj
trunk/libmatroska/test/utf8/utf8.proj
trunk/mkaencoder/src/mkaenc.h
trunk/mkvwriter/IOCallbackWrapper.h
trunk/mkvwriter/MatroskaMuxer.h
trunk/mkvwriter/MatroskaSimpleTags.h
trunk/mkvwriter/mkvwriter.h
trunk/mkvwriter/pub/hxtmkvwriter.h
trunk/mkxds/CoreVorbisGUID.h
trunk/mkxds/MatroskaReader.h
trunk/mkxds/OggDS.h
trunk/mkxds/Subtitles.h
trunk/mkxds/asyncio.h
trunk/mkxds/codecs.h
trunk/mkxds/global.h
trunk/mkxds/mkxPrioFrame.h
trunk/mkxds/mkx_opin.h
trunk/mkxds/mkxds.h
trunk/mkxds/mkxdsProperty.h
trunk/mkxds/mkxread.h
trunk/mkxds/resource.h
trunk/mkxuncat/mkxuncat.proj
trunk/root.proj
Log:
fix EOL style
Property changes on: trunk/ARCorrect/ARCorrect.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/ARCorrect/ARCorrectFilter.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/ARCorrect/ARCorrectPage.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/ARCorrect/ARCorrect_GUID.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/ARCorrect/DShowUtils.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/ARCorrect/ITrackInfo.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/ARCorrect/PersistPropertyBag.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/ARCorrect/resource.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/DvdMenuXtractor.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/DvdMenuXtractor.proj 2007-02-17 10:34:40 UTC (r=
ev 1276)
+++ trunk/DvdMenuXtractor/DvdMenuXtractor.proj 2007-02-17 10:55:54 UTC (r=
ev 1277)
@@ -1,91 +1,91 @@
-CONFIG_FILE config.h
-PLATFORM_FILES coremake
-
-WORKSPACE dmx
-{
- USE DvdMenuXtractor
-}
-
-#include "*/*.proj"
-
-CON DvdMenuXtractor
-{
- USE dvdread
- USE vobparser
- USE mpegparser
-
- INCLUDE "$(QTDIR)/include/QtCore"
- INCLUDE "$(QTDIR)/include/QtGui"
- INCLUDE "$(QTDIR)/include/QtXml"
- INCLUDE "$(QTDIR)/include"
- INCLUDE(COMPILER_MSVC) libdvdread/win32
- INCLUDE libdvdread
- =20
- DEFINE(QT_NO_DEBUG) QT_NO_DEBUG_STREAM
- =20
- LIBS_RELEASE(COMPILER_MSVC) qtmain.lib
- LIBS_RELEASE(COMPILER_MSVC && CONFIG_STATIC) QtCore.lib
- LIBS_RELEASE(COMPILER_MSVC && CONFIG_STATIC) QtGui.lib
- LIBS_RELEASE(COMPILER_MSVC && CONFIG_STATIC) QtNetwork.lib
- LIBS_RELEASE(COMPILER_MSVC && CONFIG_STATIC) QtXml.lib
- LIBS_RELEASE(COMPILER_MSVC && !CONFIG_STATIC) QtCore4.lib
- LIBS_RELEASE(COMPILER_MSVC && !CONFIG_STATIC) QtGui4.lib
- LIBS_RELEASE(COMPILER_MSVC && !CONFIG_STATIC) QtNetwork4.lib
- LIBS_RELEASE(COMPILER_MSVC && !CONFIG_STATIC) QtXml4.lib
- LIBS_DEBUG(COMPILER_MSVC) qtmaind.lib
- LIBS_DEBUG(COMPILER_MSVC && CONFIG_STATIC) QtCored.lib
- LIBS_DEBUG(COMPILER_MSVC && CONFIG_STATIC) QtGuid.lib
- LIBS_DEBUG(COMPILER_MSVC && CONFIG_STATIC) QtNetworkd.lib
- LIBS_DEBUG(COMPILER_MSVC && CONFIG_STATIC) QtXmld.lib
- LIBS_DEBUG(COMPILER_MSVC && !CONFIG_STATIC) QtCored4.lib
- LIBS_DEBUG(COMPILER_MSVC && !CONFIG_STATIC) QtGuid4.lib
- LIBS_DEBUG(COMPILER_MSVC && !CONFIG_STATIC) QtNetworkd4.lib
- LIBS_DEBUG(COMPILER_MSVC && !CONFIG_STATIC) QtXmld4.lib
- LIBS(COMPILER_GCC) qtmain
- LIBS(COMPILER_GCC && CONFIG_STATIC) QtNetwork
- LIBS(COMPILER_GCC && CONFIG_STATIC) QtGui
- LIBS(COMPILER_GCC && CONFIG_STATIC) QtCore
- LIBS(COMPILER_GCC && CONFIG_STATIC) QtXml
- LIBS(COMPILER_GCC && !CONFIG_STATIC) QtNetwork4
- LIBS(COMPILER_GCC && !CONFIG_STATIC) QtGui4
- LIBS(COMPILER_GCC && !CONFIG_STATIC) QtCore4
- LIBS(COMPILER_GCC && !CONFIG_STATIC) QtXml4
- LIBS(TARGET_WIN) imm32.lib
- LIBS(TARGET_WIN) winmm.lib
- LIBS(TARGET_WIN) ws2_32.lib
-
- LIBINCLUDE "$(QTDIR)/lib"
-
- SOURCE chaptermanager.cpp
- SOURCE dmx.cpp
- SOURCE dmxconsole.cpp
- SOURCE dmxlogwidget.cpp
- SOURCE dmxselectionitem.cpp
- SOURCE dmxselectiontree.cpp
- SOURCE dmxwizard.cpp
- SOURCE logtextedit.cpp
- SOURCE main.cpp
- SOURCE outputreader.cpp
- SOURCE selectiontreeitem.cpp
- SOURCE selectiontreesubitem.cpp
- SOURCE utilities.cpp
- SOURCE(TARGET_WIN) dmx.rc
-
- HEADER chaptermanager.h
- HEADER_QT4 dmx.h
- HEADER dmxconsole.h
- HEADER_QT4 dmxlogwidget.h
- HEADER dmxselectionitem.h
- HEADER_QT4 dmxselectiontree.h
- HEADER_QT4 dmxwizard.h
- HEADER_QT4 logtextedit.h
- HEADER_QT4 outputreader.h
- HEADER selectiontreeitem.h
- HEADER selectiontreesubitem.h
- HEADER utilities.h
- =20
- UI_FORM_QT4 dmxlogwidget.ui
- UI_FORM_QT4 dmxwizard.ui
- =20
- RESOURCE_QT4 dmxwizard.qrc
-}
+CONFIG_FILE config.h
+PLATFORM_FILES coremake
+
+WORKSPACE dmx
+{
+ USE DvdMenuXtractor
+}
+
+#include "*/*.proj"
+
+CON DvdMenuXtractor
+{
+ USE dvdread
+ USE vobparser
+ USE mpegparser
+
+ INCLUDE "$(QTDIR)/include/QtCore"
+ INCLUDE "$(QTDIR)/include/QtGui"
+ INCLUDE "$(QTDIR)/include/QtXml"
+ INCLUDE "$(QTDIR)/include"
+ INCLUDE(COMPILER_MSVC) libdvdread/win32
+ INCLUDE libdvdread
+ =20
+ DEFINE(QT_NO_DEBUG) QT_NO_DEBUG_STREAM
+ =20
+ LIBS_RELEASE(COMPILER_MSVC) qtmain.lib
+ LIBS_RELEASE(COMPILER_MSVC && CONFIG_STATIC) QtCore.lib
+ LIBS_RELEASE(COMPILER_MSVC && CONFIG_STATIC) QtGui.lib
+ LIBS_RELEASE(COMPILER_MSVC && CONFIG_STATIC) QtNetwork.lib
+ LIBS_RELEASE(COMPILER_MSVC && CONFIG_STATIC) QtXml.lib
+ LIBS_RELEASE(COMPILER_MSVC && !CONFIG_STATIC) QtCore4.lib
+ LIBS_RELEASE(COMPILER_MSVC && !CONFIG_STATIC) QtGui4.lib
+ LIBS_RELEASE(COMPILER_MSVC && !CONFIG_STATIC) QtNetwork4.lib
+ LIBS_RELEASE(COMPILER_MSVC && !CONFIG_STATIC) QtXml4.lib
+ LIBS_DEBUG(COMPILER_MSVC) qtmaind.lib
+ LIBS_DEBUG(COMPILER_MSVC && CONFIG_STATIC) QtCored.lib
+ LIBS_DEBUG(COMPILER_MSVC && CONFIG_STATIC) QtGuid.lib
+ LIBS_DEBUG(COMPILER_MSVC && CONFIG_STATIC) QtNetworkd.lib
+ LIBS_DEBUG(COMPILER_MSVC && CONFIG_STATIC) QtXmld.lib
+ LIBS_DEBUG(COMPILER_MSVC && !CONFIG_STATIC) QtCored4.lib
+ LIBS_DEBUG(COMPILER_MSVC && !CONFIG_STATIC) QtGuid4.lib
+ LIBS_DEBUG(COMPILER_MSVC && !CONFIG_STATIC) QtNetworkd4.lib
+ LIBS_DEBUG(COMPILER_MSVC && !CONFIG_STATIC) QtXmld4.lib
+ LIBS(COMPILER_GCC) qtmain
+ LIBS(COMPILER_GCC && CONFIG_STATIC) QtNetwork
+ LIBS(COMPILER_GCC && CONFIG_STATIC) QtGui
+ LIBS(COMPILER_GCC && CONFIG_STATIC) QtCore
+ LIBS(COMPILER_GCC && CONFIG_STATIC) QtXml
+ LIBS(COMPILER_GCC && !CONFIG_STATIC) QtNetwork4
+ LIBS(COMPILER_GCC && !CONFIG_STATIC) QtGui4
+ LIBS(COMPILER_GCC && !CONFIG_STATIC) QtCore4
+ LIBS(COMPILER_GCC && !CONFIG_STATIC) QtXml4
+ LIBS(TARGET_WIN) imm32.lib
+ LIBS(TARGET_WIN) winmm.lib
+ LIBS(TARGET_WIN) ws2_32.lib
+
+ LIBINCLUDE "$(QTDIR)/lib"
+
+ SOURCE chaptermanager.cpp
+ SOURCE dmx.cpp
+ SOURCE dmxconsole.cpp
+ SOURCE dmxlogwidget.cpp
+ SOURCE dmxselectionitem.cpp
+ SOURCE dmxselectiontree.cpp
+ SOURCE dmxwizard.cpp
+ SOURCE logtextedit.cpp
+ SOURCE main.cpp
+ SOURCE outputreader.cpp
+ SOURCE selectiontreeitem.cpp
+ SOURCE selectiontreesubitem.cpp
+ SOURCE utilities.cpp
+ SOURCE(TARGET_WIN) dmx.rc
+
+ HEADER chaptermanager.h
+ HEADER_QT4 dmx.h
+ HEADER dmxconsole.h
+ HEADER_QT4 dmxlogwidget.h
+ HEADER dmxselectionitem.h
+ HEADER_QT4 dmxselectiontree.h
+ HEADER_QT4 dmxwizard.h
+ HEADER_QT4 logtextedit.h
+ HEADER_QT4 outputreader.h
+ HEADER selectiontreeitem.h
+ HEADER selectiontreesubitem.h
+ HEADER utilities.h
+ =20
+ UI_FORM_QT4 dmxlogwidget.ui
+ UI_FORM_QT4 dmxwizard.ui
+ =20
+ RESOURCE_QT4 dmxwizard.qrc
+}
Property changes on: trunk/DvdMenuXtractor/DvdMenuXtractor.proj
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/chaptermanager.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/chaptermanager.h 2007-02-17 10:34:40 UTC (rev 1=
276)
+++ trunk/DvdMenuXtractor/chaptermanager.h 2007-02-17 10:55:54 UTC (rev 1=
277)
@@ -1,40 +1,40 @@
-#ifndef CHAPTER_MANAGER_H
-#define CHAPTER_MANAGER_H
-
-#include <QString>
-#include "vobparser/IFOFile.h"
-
-class QDomNode;
-class QDomElement;
-class QDomDocument;
-
-class ChapterManager
-{
-public:
- ChapterManager(unsigned xmlIdentCount)
- : INDENT_COUNT(xmlIdentCount)
- {
- }
- bool generateScript(const IFOFile& ifoFile, const QString& filename, ui=
nt16_t title, const QString& editionUID) const;
- bool generateMenuScript(const IFOFile& ifoFile, const QString& filename=
, uint16_t title, const QString& editionUID) const;
-
- static QString INFO_SUFFIX;
- static QString CHAPTER_SUFFIX;
-
-private:
- void generateInfoScript(const QString& filename, uint16_t title, const =
QString& editionUID) const;
-=09
- static QDomElement CreateDOMElement(QDomDocument& document, const QStri=
ng& elementName, const QString& content);
- static void AddChapterTime(QDomDocument& document, QDomNode& parent, ui=
nt64_t start_time, uint64_t end_time);
- static void AddCodecPrivateData(QDomDocument& document, QDomNode& paren=
t, const unsigned char *buffer, unsigned int size, bool createChapterProc=
essElement =3D true);
- static void AddPGCCommands(QDomDocument& document, QDomNode& parent, co=
nst pgc_command_tbl_t * command_tbl);
- static uint64_t AddProgram(QDomDocument& document, QDomNode& parent, co=
nst pgc_t *pgc, const QString& PgcUID, int program_number, const CellsLis=
tType& cell_list, int16_t pgc_num, const ttu_t *ptts, int title);
- static uint64_t AddPGC(QDomDocument& document, QDomNode& parent, const =
pgc_t * pgc, uint16_t pgc_num, unsigned char pgc_type, const CellsListTyp=
e & cell_list, const ttu_t * ptts, int title);
- static QString GetPGCType(unsigned char entry_id);
- static uint64_t HandleLanguageUnit(QDomDocument& document, QDomNode& pa=
rent, const IFOFile& _ifo, int title);
-
- uint8_t familyUID[16];
- unsigned INDENT_COUNT;
-};
-
+#ifndef CHAPTER_MANAGER_H
+#define CHAPTER_MANAGER_H
+
+#include <QString>
+#include "vobparser/IFOFile.h"
+
+class QDomNode;
+class QDomElement;
+class QDomDocument;
+
+class ChapterManager
+{
+public:
+ ChapterManager(unsigned xmlIdentCount)
+ : INDENT_COUNT(xmlIdentCount)
+ {
+ }
+ bool generateScript(const IFOFile& ifoFile, const QString& filename, ui=
nt16_t title, const QString& editionUID) const;
+ bool generateMenuScript(const IFOFile& ifoFile, const QString& filename=
, uint16_t title, const QString& editionUID) const;
+
+ static QString INFO_SUFFIX;
+ static QString CHAPTER_SUFFIX;
+
+private:
+ void generateInfoScript(const QString& filename, uint16_t title, const =
QString& editionUID) const;
+=09
+ static QDomElement CreateDOMElement(QDomDocument& document, const QStri=
ng& elementName, const QString& content);
+ static void AddChapterTime(QDomDocument& document, QDomNode& parent, ui=
nt64_t start_time, uint64_t end_time);
+ static void AddCodecPrivateData(QDomDocument& document, QDomNode& paren=
t, const unsigned char *buffer, unsigned int size, bool createChapterProc=
essElement =3D true);
+ static void AddPGCCommands(QDomDocument& document, QDomNode& parent, co=
nst pgc_command_tbl_t * command_tbl);
+ static uint64_t AddProgram(QDomDocument& document, QDomNode& parent, co=
nst pgc_t *pgc, const QString& PgcUID, int program_number, const CellsLis=
tType& cell_list, int16_t pgc_num, const ttu_t *ptts, int title);
+ static uint64_t AddPGC(QDomDocument& document, QDomNode& parent, const =
pgc_t * pgc, uint16_t pgc_num, unsigned char pgc_type, const CellsListTyp=
e & cell_list, const ttu_t * ptts, int title);
+ static QString GetPGCType(unsigned char entry_id);
+ static uint64_t HandleLanguageUnit(QDomDocument& document, QDomNode& pa=
rent, const IFOFile& _ifo, int title);
+
+ uint8_t familyUID[16];
+ unsigned INDENT_COUNT;
+};
+
#endif //CHAPTER_MANAGER_H
\ No newline at end of file
Property changes on: trunk/DvdMenuXtractor/chaptermanager.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/config.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/config.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/DvdMenuXtractor/config.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,31 +1,31 @@
-#define CONFIG_STATIC
-#define CONFIG_UNICODE
-//#define CONFIG_MULTITHREAD
-//#define CONFIG_MSVCRT
-
-//-----------
-// failsafes
-
-#if !defined(ARM) || defined(TARGET_SYMBIAN)
-#undef CONFIG_WMMX
-#endif
-
-#if !defined(IX86) || defined(TARGET_SYMBIAN)
-#undef CONFIG_MMX
-#endif
-
-#if !defined(CONFIG_UNICODE) && (defined(TARGET_WINCE) || defined(TARGET=
_SYMBIAN))
-#define CONFIG_UNICODE
-#endif
-
-#if defined(CONFIG_MULTITHREAD) && (defined(TARGET_SYMBIAN) || defined(T=
ARGET_PALMOS))
-#undef CONFIG_MULTITHREAD
-#endif
-
-#if defined(CONFIG_UNICODE) && (defined(TARGET_PALMOS) || defined(TARGET=
_LINUX))
-#undef CONFIG_UNICODE
-#endif
-
-#if !defined(CONFIG_STATIC) && defined(TARGET_PALMOS) && defined(IX86)
-#define CONFIG_STATIC
-#endif
+#define CONFIG_STATIC
+#define CONFIG_UNICODE
+//#define CONFIG_MULTITHREAD
+//#define CONFIG_MSVCRT
+
+//-----------
+// failsafes
+
+#if !defined(ARM) || defined(TARGET_SYMBIAN)
+#undef CONFIG_WMMX
+#endif
+
+#if !defined(IX86) || defined(TARGET_SYMBIAN)
+#undef CONFIG_MMX
+#endif
+
+#if !defined(CONFIG_UNICODE) && (defined(TARGET_WINCE) || defined(TARGET=
_SYMBIAN))
+#define CONFIG_UNICODE
+#endif
+
+#if defined(CONFIG_MULTITHREAD) && (defined(TARGET_SYMBIAN) || defined(T=
ARGET_PALMOS))
+#undef CONFIG_MULTITHREAD
+#endif
+
+#if defined(CONFIG_UNICODE) && (defined(TARGET_PALMOS) || defined(TARGET=
_LINUX))
+#undef CONFIG_UNICODE
+#endif
+
+#if !defined(CONFIG_STATIC) && defined(TARGET_PALMOS) && defined(IX86)
+#define CONFIG_STATIC
+#endif
Property changes on: trunk/DvdMenuXtractor/config.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/dmx.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/dmxconsole.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/dmxconsole.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/DvdMenuXtractor/dmxconsole.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,30 +1,30 @@
-#ifndef DMXCONSOLE_H
-#define DMXCONSOLE_H
-
-#include "dmx.h"
-
-class DMXConsole
-{
-public:
- DMXConsole(char *arguments[], int argumentCount);
- ~DMXConsole();
-
- void extract();
-
- static void ShowUsage();
-
-private:
- bool ready_;
- QString toolsPath_;
- QString sourcePath_;
- QString destinationPath_;
- DMX::SelectionType selectionItems_;
-
- enum {TITLE_INDEX =3D 0, MENU_INDEX, VIDEO_INDEX,
- AUDIO_TRACKS_INDEX, SUBTITLE_TRACKS_INDEX, ITEM_COUNT};
-=09
- QStringList extractTrackNumbers(const QString& trackNumberString);
- DMX::SelectionType generateSelectionItems(const QString& selectionStrin=
g);
-};
-
-#endif // DMXCONSOLE_H
+#ifndef DMXCONSOLE_H
+#define DMXCONSOLE_H
+
+#include "dmx.h"
+
+class DMXConsole
+{
+public:
+ DMXConsole(char *arguments[], int argumentCount);
+ ~DMXConsole();
+
+ void extract();
+
+ static void ShowUsage();
+
+private:
+ bool ready_;
+ QString toolsPath_;
+ QString sourcePath_;
+ QString destinationPath_;
+ DMX::SelectionType selectionItems_;
+
+ enum {TITLE_INDEX =3D 0, MENU_INDEX, VIDEO_INDEX,
+ AUDIO_TRACKS_INDEX, SUBTITLE_TRACKS_INDEX, ITEM_COUNT};
+=09
+ QStringList extractTrackNumbers(const QString& trackNumberString);
+ DMX::SelectionType generateSelectionItems(const QString& selectionStrin=
g);
+};
+
+#endif // DMXCONSOLE_H
Property changes on: trunk/DvdMenuXtractor/dmxconsole.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/dmxlogwidget.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/dmxlogwidget.h 2007-02-17 10:34:40 UTC (rev 127=
6)
+++ trunk/DvdMenuXtractor/dmxlogwidget.h 2007-02-17 10:55:54 UTC (rev 127=
7)
@@ -1,28 +1,28 @@
-#ifndef DMXLOGWIDGET_H
-#define DMXLOGWIDGET_H
-
-#include <QWidget>
-#include "ui_dmxlogwidget.h"
-
-class DMXLogWidget : public QWidget
-{
- Q_OBJECT
-
-public:
- DMXLogWidget(QWidget *parent =3D 0);
- ~DMXLogWidget();
-
-signals:
- void closed();
-
-protected:
- virtual void closeEvent(QCloseEvent *event);
-
-private slots:
- void saveButtonClicked();
-
-private:
- Ui::DMXLogWidgetClass ui;
-};
-
-#endif // DMXLOGWIDGET_H
+#ifndef DMXLOGWIDGET_H
+#define DMXLOGWIDGET_H
+
+#include <QWidget>
+#include "ui_dmxlogwidget.h"
+
+class DMXLogWidget : public QWidget
+{
+ Q_OBJECT
+
+public:
+ DMXLogWidget(QWidget *parent =3D 0);
+ ~DMXLogWidget();
+
+signals:
+ void closed();
+
+protected:
+ virtual void closeEvent(QCloseEvent *event);
+
+private slots:
+ void saveButtonClicked();
+
+private:
+ Ui::DMXLogWidgetClass ui;
+};
+
+#endif // DMXLOGWIDGET_H
Property changes on: trunk/DvdMenuXtractor/dmxlogwidget.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/dmxselectionitem.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/dmxselectiontree.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/dmxselectiontree.h 2007-02-17 10:34:40 UTC (rev=
1276)
+++ trunk/DvdMenuXtractor/dmxselectiontree.h 2007-02-17 10:55:54 UTC (rev=
1277)
@@ -1,22 +1,22 @@
-#ifndef DMX_SELECTIONTREE_H
-#define DMX_SELECTIONTREE_H
-
-#include "dmx.h"
-#include <QTreeWidget>
-
-class DMXSelectionTree : public QTreeWidget
-{
- Q_OBJECT
-
-public:
- DMXSelectionTree(QWidget *parent);
- ~DMXSelectionTree();
-
- DMX::SelectionType getSelection() const;
- bool loadIFOFile(const QString& path);
-
-private:
- IFOFile *ifoFile_;
-};
-
-#endif // DMX_SELECTIONTREE_H
+#ifndef DMX_SELECTIONTREE_H
+#define DMX_SELECTIONTREE_H
+
+#include "dmx.h"
+#include <QTreeWidget>
+
+class DMXSelectionTree : public QTreeWidget
+{
+ Q_OBJECT
+
+public:
+ DMXSelectionTree(QWidget *parent);
+ ~DMXSelectionTree();
+
+ DMX::SelectionType getSelection() const;
+ bool loadIFOFile(const QString& path);
+
+private:
+ IFOFile *ifoFile_;
+};
+
+#endif // DMX_SELECTIONTREE_H
Property changes on: trunk/DvdMenuXtractor/dmxselectiontree.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/dmxwizard.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/dmxwizard.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/DvdMenuXtractor/dmxwizard.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,40 +1,40 @@
-#ifndef DMXWIZARD_H
-#define DMXWIZARD_H
-
-#include <QDialog>
-#include "ui_dmxwizard.h"
-#include "dmxlogwidget.h"
-
-class DMXWizard : public QDialog
-{
- Q_OBJECT
-
-public:
- DMXWizard(QWidget *parent =3D 0);
- ~DMXWizard();
-
-protected:
- void closeEvent(QCloseEvent* evt);
-
-private slots:
- void backButtonClicked();
- void nextButtonClicked();
- void browseButtonClicked();
- void extractionFinished();
- void pathEditTextChanged(const QString& path);
- void extractionStepChanged(const QString& text);
-
-private:
- Ui::DMXWizardClass ui;
-=09
- DMX dmx;
- DMXLogWidget logWidget_;
-
- enum {SETTINGS_PAGE_INDEX =3D 0, SELECTION_PAGE_INDEX, EXTRACTION_PAGE_=
INDEX};
-
- void setupSlots();
- void loadSettings();
- void storeSettings();
-};
-
-#endif // DMXWIZARD_H
+#ifndef DMXWIZARD_H
+#define DMXWIZARD_H
+
+#include <QDialog>
+#include "ui_dmxwizard.h"
+#include "dmxlogwidget.h"
+
+class DMXWizard : public QDialog
+{
+ Q_OBJECT
+
+public:
+ DMXWizard(QWidget *parent =3D 0);
+ ~DMXWizard();
+
+protected:
+ void closeEvent(QCloseEvent* evt);
+
+private slots:
+ void backButtonClicked();
+ void nextButtonClicked();
+ void browseButtonClicked();
+ void extractionFinished();
+ void pathEditTextChanged(const QString& path);
+ void extractionStepChanged(const QString& text);
+
+private:
+ Ui::DMXWizardClass ui;
+=09
+ DMX dmx;
+ DMXLogWidget logWidget_;
+
+ enum {SETTINGS_PAGE_INDEX =3D 0, SELECTION_PAGE_INDEX, EXTRACTION_PAGE_=
INDEX};
+
+ void setupSlots();
+ void loadSettings();
+ void storeSettings();
+};
+
+#endif // DMXWIZARD_H
Property changes on: trunk/DvdMenuXtractor/dmxwizard.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/libdvdread/dvdread/bswap.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/libdvdread/dvdread/cmd_print.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/libdvdread/dvdread/dvd_input.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/libdvdread/dvdread/dvd_reader.=
h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/libdvdread/dvdread/dvd_udf.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/libdvdread/dvdread/dvdread.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/libdvdread/dvdread/dvdread.proj 2007-02-17 10:3=
4:40 UTC (rev 1276)
+++ trunk/DvdMenuXtractor/libdvdread/dvdread/dvdread.proj 2007-02-17 10:5=
5:54 UTC (rev 1277)
@@ -1,35 +1,35 @@
-#include "*/*.proj"
-
-LIB dvdread
-{
- USE(TARGET_WIN) c99msvc
- USE(TARGET_WIN) posixmsvc
- DEFINE STDC_HEADERS
-
- SOURCE cmd_print.c
- SOURCE dvd_input.c
- SOURCE dvd_reader.c
- SOURCE dvd_udf.c
- SOURCE ifo_print.c
- SOURCE ifo_read.c
- SOURCE md5.c
- SOURCE nav_print.c
- SOURCE nav_read.c
-
- HEADER bswap.h
- HEADER cmd_print.h
- HEADER dvd_input.h
- HEADER dvd_reader.h
- HEADER dvd_udf.h
- HEADER dvdread_internal.h
- HEADER ifo_print.h
- HEADER ifo_read.h
- HEADER ifo_types.h
- HEADER md5.h
- HEADER nav_print.h
- HEADER nav_read.h
- HEADER nav_types.h
- =20
- INCLUDE(TARGET_WIN) ../win32
- INCLUDE ..
-}
+#include "*/*.proj"
+
+LIB dvdread
+{
+ USE(TARGET_WIN) c99msvc
+ USE(TARGET_WIN) posixmsvc
+ DEFINE STDC_HEADERS
+
+ SOURCE cmd_print.c
+ SOURCE dvd_input.c
+ SOURCE dvd_reader.c
+ SOURCE dvd_udf.c
+ SOURCE ifo_print.c
+ SOURCE ifo_read.c
+ SOURCE md5.c
+ SOURCE nav_print.c
+ SOURCE nav_read.c
+
+ HEADER bswap.h
+ HEADER cmd_print.h
+ HEADER dvd_input.h
+ HEADER dvd_reader.h
+ HEADER dvd_udf.h
+ HEADER dvdread_internal.h
+ HEADER ifo_print.h
+ HEADER ifo_read.h
+ HEADER ifo_types.h
+ HEADER md5.h
+ HEADER nav_print.h
+ HEADER nav_read.h
+ HEADER nav_types.h
+ =20
+ INCLUDE(TARGET_WIN) ../win32
+ INCLUDE ..
+}
Property changes on: trunk/DvdMenuXtractor/libdvdread/dvdread/dvdread.pro=
j
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/libdvdread/dvdread/dvdread_int=
ernal.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/libdvdread/dvdread/ifo_print.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/libdvdread/dvdread/ifo_read.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/libdvdread/dvdread/ifo_types.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/libdvdread/dvdread/md5.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/libdvdread/dvdread/nav_print.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/libdvdread/dvdread/nav_read.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/libdvdread/dvdread/nav_types.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/libdvdread/libdvdread.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/libdvdread/libdvdread.proj 2007-02-17 10:34:40 =
UTC (rev 1276)
+++ trunk/DvdMenuXtractor/libdvdread/libdvdread.proj 2007-02-17 10:55:54 =
UTC (rev 1277)
@@ -1,11 +1,11 @@
-#include "*/*.proj"
-
-WORKSPACE dvdread
-{
- USE dvdread
- USE disc_id
- USE filestat
- USE ifo_dump
- USE play_title
- USE title_info
-}
+#include "*/*.proj"
+
+WORKSPACE dvdread
+{
+ USE dvdread
+ USE disc_id
+ USE filestat
+ USE ifo_dump
+ USE play_title
+ USE title_info
+}
Property changes on: trunk/DvdMenuXtractor/libdvdread/libdvdread.proj
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/libdvdread/src/src.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/libdvdread/src/src.proj 2007-02-17 10:34:40 UTC=
(rev 1276)
+++ trunk/DvdMenuXtractor/libdvdread/src/src.proj 2007-02-17 10:55:54 UTC=
(rev 1277)
@@ -1,51 +1,51 @@
-#include "*/*.proj"
-
-CON disc_id
-{
- USE dvdread
-
- SOURCE disc_id.c
- =20
- INCLUDE(TARGET_WIN) ../win32
- INCLUDE ..
-}
-
-CON filestat
-{
- USE dvdread
-
- SOURCE filestat.c
- =20
- INCLUDE(TARGET_WIN) ../win32
- INCLUDE ..
-}
-
-CON ifo_dump
-{
- USE dvdread
-
- SOURCE ifo_dump.c
- =20
- INCLUDE(TARGET_WIN) ../win32
- INCLUDE ..
-}
-
-CON play_title
-{
- USE dvdread
-
- SOURCE play_title.c
- =20
- INCLUDE(TARGET_WIN) ../win32
- INCLUDE ..
-}
-
-CON title_info
-{
- USE dvdread
-
- SOURCE title_info.c
- =20
- INCLUDE(TARGET_WIN) ../win32
- INCLUDE ..
-}
+#include "*/*.proj"
+
+CON disc_id
+{
+ USE dvdread
+
+ SOURCE disc_id.c
+ =20
+ INCLUDE(TARGET_WIN) ../win32
+ INCLUDE ..
+}
+
+CON filestat
+{
+ USE dvdread
+
+ SOURCE filestat.c
+ =20
+ INCLUDE(TARGET_WIN) ../win32
+ INCLUDE ..
+}
+
+CON ifo_dump
+{
+ USE dvdread
+
+ SOURCE ifo_dump.c
+ =20
+ INCLUDE(TARGET_WIN) ../win32
+ INCLUDE ..
+}
+
+CON play_title
+{
+ USE dvdread
+
+ SOURCE play_title.c
+ =20
+ INCLUDE(TARGET_WIN) ../win32
+ INCLUDE ..
+}
+
+CON title_info
+{
+ USE dvdread
+
+ SOURCE title_info.c
+ =20
+ INCLUDE(TARGET_WIN) ../win32
+ INCLUDE ..
+}
Property changes on: trunk/DvdMenuXtractor/libdvdread/src/src.proj
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/libdvdread/win32/config.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/libdvdread/win32/dirent.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/libdvdread/win32/dirent.h 2007-02-17 10:34:40 U=
TC (rev 1276)
+++ trunk/DvdMenuXtractor/libdvdread/win32/dirent.h 2007-02-17 10:55:54 U=
TC (rev 1277)
@@ -1,147 +1,147 @@
-/*
- * DIRENT.H (formerly DIRLIB.H)
- *
- * by M. J. Weinstein Released to public domain 1-Jan-89
- *
- * Because I have heard that this feature (opendir, readdir, closedir)
- * it so useful for programmers coming from UNIX or attempting to port
- * UNIX code, and because it is reasonably light weight, I have included
- * it in the Mingw32 package. I have also added an implementation of
- * rewinddir, seekdir and telldir.
- * - Colin Peters <[email protected]>
- *
- * This code is distributed in the hope that is will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includeds but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.1 $
- * $Author: ds $
- * $Date: 2004/04/29 02:52:21 $
- *
- */
-
-#ifndef __STRICT_ANSI__
-
-#ifndef _DIRENT_H_
-#define _DIRENT_H_
-
-/* All the headers include this file. */
-/*#include <_mingw.h>*/
-
-#include <io.h>
-
-#ifndef RC_INVOKED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct dirent
-{
- long d_ino; /* Always zero. */
- unsigned short d_reclen; /* Always zero. */
- unsigned short d_namlen; /* Length of name in d_name. */
- char* d_name; /* File name. */
- /* NOTE: The name in the dirent structure points to the name in the
- * finddata_t structure in the DIR. */
-};
-
-/*
- * This is an internal data structure. Good programmers will not use it
- * except as an argument to one of the functions below.
- * dd_stat field is now int (was short in older versions).
- */
-typedef struct
-{
- /* disk transfer area for this dir */
- struct _finddata_t dd_dta;
-
- /* dirent struct to return from dir (NOTE: this makes this thread
- * safe as long as only one thread uses a particular DIR struct at
- * a time) */
- struct dirent dd_dir;
-
- /* _findnext handle */
- long dd_handle;
-
- /*
- * Status of search:
- * 0 =3D not started yet (next entry to read is first entry)
- * -1 =3D off the end
- * positive =3D 0 based index of next entry
- */
- int dd_stat;
-
- /* given path for dir with search pattern (struct is extended) */
- char dd_name[1];
-} DIR;
-
-DIR* opendir (const char*);
-struct dirent* readdir (DIR*);
-int closedir (DIR*);
-void rewinddir (DIR*);
-long telldir (DIR*);
-void seekdir (DIR*, long);
-
-
-/* wide char versions */
-
-struct _wdirent
-{
- long d_ino; /* Always zero. */
- unsigned short d_reclen; /* Always zero. */
- unsigned short d_namlen; /* Length of name in d_name. */
- wchar_t* d_name; /* File name. */
- /* NOTE: The name in the dirent structure points to the name in the * =
wfinddata_t structure in the _WDIR. */
-};
-
-/*
- * This is an internal data structure. Good programmers will not use it
- * except as an argument to one of the functions below.
- */
-typedef struct
-{
- /* disk transfer area for this dir */
- struct _wfinddata_t dd_dta;
-
- /* dirent struct to return from dir (NOTE: this makes this thread
- * safe as long as only one thread uses a particular DIR struct at
- * a time) */
- struct _wdirent dd_dir;
-
- /* _findnext handle */
- long dd_handle;
-
- /*
- * Status of search:
- * 0 =3D not started yet (next entry to read is first entry)
- * -1 =3D off the end
- * positive =3D 0 based index of next entry
- */
- int dd_stat;
-
- /* given path for dir with search pattern (struct is extended) */
- wchar_t dd_name[1];
-} _WDIR;
-
-
-
-_WDIR* _wopendir (const wchar_t*);
-struct _wdirent* _wreaddir (_WDIR*);
-int _wclosedir (_WDIR*);
-void _wrewinddir (_WDIR*);
-long _wtelldir (_WDIR*);
-void _wseekdir (_WDIR*, long);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* Not RC_INVOKED */
-
-#endif /* Not _DIRENT_H_ */
-
-#endif /* Not __STRICT_ANSI__ */
-
+/*
+ * DIRENT.H (formerly DIRLIB.H)
+ *
+ * by M. J. Weinstein Released to public domain 1-Jan-89
+ *
+ * Because I have heard that this feature (opendir, readdir, closedir)
+ * it so useful for programmers coming from UNIX or attempting to port
+ * UNIX code, and because it is reasonably light weight, I have included
+ * it in the Mingw32 package. I have also added an implementation of
+ * rewinddir, seekdir and telldir.
+ * - Colin Peters <[email protected]>
+ *
+ * This code is distributed in the hope that is will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includeds but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $Revision: 1.1 $
+ * $Author: ds $
+ * $Date: 2004/04/29 02:52:21 $
+ *
+ */
+
+#ifndef __STRICT_ANSI__
+
+#ifndef _DIRENT_H_
+#define _DIRENT_H_
+
+/* All the headers include this file. */
+/*#include <_mingw.h>*/
+
+#include <io.h>
+
+#ifndef RC_INVOKED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct dirent
+{
+ long d_ino; /* Always zero. */
+ unsigned short d_reclen; /* Always zero. */
+ unsigned short d_namlen; /* Length of name in d_name. */
+ char* d_name; /* File name. */
+ /* NOTE: The name in the dirent structure points to the name in the
+ * finddata_t structure in the DIR. */
+};
+
+/*
+ * This is an internal data structure. Good programmers will not use it
+ * except as an argument to one of the functions below.
+ * dd_stat field is now int (was short in older versions).
+ */
+typedef struct
+{
+ /* disk transfer area for this dir */
+ struct _finddata_t dd_dta;
+
+ /* dirent struct to return from dir (NOTE: this makes this thread
+ * safe as long as only one thread uses a particular DIR struct at
+ * a time) */
+ struct dirent dd_dir;
+
+ /* _findnext handle */
+ long dd_handle;
+
+ /*
+ * Status of search:
+ * 0 =3D not started yet (next entry to read is first entry)
+ * -1 =3D off the end
+ * positive =3D 0 based index of next entry
+ */
+ int dd_stat;
+
+ /* given path for dir with search pattern (struct is extended) */
+ char dd_name[1];
+} DIR;
+
+DIR* opendir (const char*);
+struct dirent* readdir (DIR*);
+int closedir (DIR*);
+void rewinddir (DIR*);
+long telldir (DIR*);
+void seekdir (DIR*, long);
+
+
+/* wide char versions */
+
+struct _wdirent
+{
+ long d_ino; /* Always zero. */
+ unsigned short d_reclen; /* Always zero. */
+ unsigned short d_namlen; /* Length of name in d_name. */
+ wchar_t* d_name; /* File name. */
+ /* NOTE: The name in the dirent structure points to the name in the * =
wfinddata_t structure in the _WDIR. */
+};
+
+/*
+ * This is an internal data structure. Good programmers will not use it
+ * except as an argument to one of the functions below.
+ */
+typedef struct
+{
+ /* disk transfer area for this dir */
+ struct _wfinddata_t dd_dta;
+
+ /* dirent struct to return from dir (NOTE: this makes this thread
+ * safe as long as only one thread uses a particular DIR struct at
+ * a time) */
+ struct _wdirent dd_dir;
+
+ /* _findnext handle */
+ long dd_handle;
+
+ /*
+ * Status of search:
+ * 0 =3D not started yet (next entry to read is first entry)
+ * -1 =3D off the end
+ * positive =3D 0 based index of next entry
+ */
+ int dd_stat;
+
+ /* given path for dir with search pattern (struct is extended) */
+ wchar_t dd_name[1];
+} _WDIR;
+
+
+
+_WDIR* _wopendir (const wchar_t*);
+struct _wdirent* _wreaddir (_WDIR*);
+int _wclosedir (_WDIR*);
+void _wrewinddir (_WDIR*);
+long _wtelldir (_WDIR*);
+void _wseekdir (_WDIR*, long);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* Not RC_INVOKED */
+
+#endif /* Not _DIRENT_H_ */
+
+#endif /* Not __STRICT_ANSI__ */
+
Property changes on: trunk/DvdMenuXtractor/libdvdread/win32/dirent.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/libdvdread/win32/gtchar.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/libdvdread/win32/gtchar.h 2007-02-17 10:34:40 U=
TC (rev 1276)
+++ trunk/DvdMenuXtractor/libdvdread/win32/gtchar.h 2007-02-17 10:55:54 U=
TC (rev 1277)
@@ -1,402 +1,402 @@
-/*=20
- * tchar.h
- *
- * Unicode mapping layer for the standard C library. By including this
- * file and using the 't' names for string functions
- * (eg. _tprintf) you can make code which can be easily adapted to both
- * Unicode and non-unicode environments. In a unicode enabled compile de=
fine
- * _UNICODE before including tchar.h, otherwise the standard non-unicode
- * library functions will be used.
- *
- * Note that you still need to include string.h or stdlib.h etc. to defi=
ne
- * the appropriate functions. Also note that there are several defines
- * included for non-ANSI functions which are commonly available (but usi=
ng
- * the convention of prepending an underscore to non-ANSI library functi=
on
- * names).
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- * Created by Colin Peters <[email protected]>
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.1 $
- * $Author: ds $
- * $Date: 2004/04/29 02:52:21 $
- *
- */
-
-#ifndef _TCHAR_H_
-#define _TCHAR_H_
-
-/* All the headers include this file. */
-/*#include <_mingw.h>*/
-
-/*
- * NOTE: This tests _UNICODE, which is different from the UNICODE define
- * used to differentiate Win32 API calls.
- */
-#ifdef _UNICODE
-
-
-/*
- * Use TCHAR instead of char or wchar_t. It will be appropriately transl=
ated
- * if _UNICODE is correctly defined (or not).
- */
-#ifndef _TCHAR_DEFINED
-#ifndef RC_INVOKED
-typedef wchar_t TCHAR;
-typedef wchar_t _TCHAR;
-#endif /* Not RC_INVOKED */
-#define _TCHAR_DEFINED
-#endif
-
-
-/*
- * __TEXT is a private macro whose specific use is to force the expansio=
n of a
- * macro passed as an argument to the macros _T or _TEXT. DO NOT use th=
is
- * macro within your programs. It's name and function could change with=
out
- * notice.
- */
-#define __TEXT(q) L##q
-
-/* for porting from other Windows compilers */
-#if 0 // no wide startup module
-#define _tmain wmain
-#define _tWinMain wWinMain
-#define _tenviron _wenviron
-#define __targv __wargv
-#endif
-
-/*
- * Unicode functions
- */
-#define _tstat _wstat
-#define _tprintf wprintf
-#define _ftprintf fwprintf
-#define _stprintf swprintf
-#define _sntprintf _snwprintf
-#define _vtprintf vwprintf
-#define _vftprintf vfwprintf
-#define _vstprintf vswprintf
-#define _vsntprintf _vsnwprintf
-#define _tscanf wscanf
-#define _ftscanf fwscanf
-#define _stscanf swscanf
-#define _fgettc fgetwc
-#define _fgettchar _fgetwchar
-#define _fgetts fgetws
-#define _fputtc fputwc
-#define _fputtchar _fputwchar
-#define _fputts fputws
-#define _gettc getwc
-#define _getts _getws
-#define _puttc putwc
-#define _putts _putws
-#define _ungettc ungetwc
-#define _tcstod wcstod
-#define _tcstol wcstol
-#define _tcstoul wcstoul
-#define _itot _itow
-#define _ltot _ltow
-#define _ultot _ultow
-#define _ttoi _wtoi
-#define _ttol _wtol
-#define _tcscat wcscat
-#define _tcscat_s wcscat_s
-#define _tcschr wcschr
-#define _tcscmp wcscmp
-#define _tcscpy wcscpy
-#define _tcscpy_s wcscpy_s
-#define _tcscspn wcscspn
-#define _tcslen wcslen
-#define _tcsncat wcsncat
-#define _tcsncmp wcsncmp
-#define _tcsncpy wcsncpy
-#define _tcspbrk wcspbrk
-#define _tcsrchr wcsrchr
-#define _tcsspn wcsspn
-#define _tcsstr wcsstr
-#define _tcstok wcstok
-#define _tcsdup _wcsdup
-#define _tcsicmp _wcsicmp
-#define _tcsnicmp _wcsnicmp
-#define _tcsnset _wcsnset
-#define _tcsrev _wcsrev
-#define _tcsset _wcsset
-#define _tcslwr _wcslwr
-#define _tcsupr _wcsupr
-#define _tcsxfrm wcsxfrm
-#define _tcscoll wcscoll
-#define _tcsicoll _wcsicoll
-#define _istalpha iswalpha
-#define _istupper iswupper
-#define _istlower iswlower
-#define _istdigit iswdigit
-#define _istxdigit iswxdigit
-#define _istspace iswspace
-#define _istpunct iswpunct
-#define _istalnum iswalnum
-#define _istprint iswprint
-#define _istgraph iswgraph
-#define _istcntrl iswcntrl
-#define _istascii iswascii
-#define _totupper towupper
-#define _totlower towlower
-#define _tcsftime wcsftime
-/* Macro functions */=20
-#define _tcsdec _wcsdec
-#define _tcsinc _wcsinc
-#define _tcsnbcnt _wcsncnt
-#define _tcsnccnt _wcsncnt
-#define _tcsnextc _wcsnextc
-#define _tcsninc _wcsninc
-#define _tcsspnp _wcsspnp
-#define _wcsdec(_wcs1, _wcs2) ((_wcs1)>=3D(_wcs2) ? NULL : (_wcs2)-1)
-#define _wcsinc(_wcs) ((_wcs)+1)
-#define _wcsnextc(_wcs) ((unsigned int) *(_wcs))
-#define _wcsninc(_wcs, _inc) (((_wcs)+(_inc)))
-#define _wcsncnt(_wcs, _cnt) ((wcslen(_wcs)>_cnt) ? _count : wcslen(_wcs=
))
-#define _wcsspnp(_wcs1, _wcs2) ((*((_wcs1)+wcsspn(_wcs1,_wcs2))) ? ((_wc=
s1)+wcsspn(_wcs1,_wcs2)) : NULL)
-
-#if 1 /* defined __MSVCRT__ */
-/*
- * These wide functions not in crtdll.dll.
- * Define macros anyway so that _wfoo rather than _tfoo is undefined
- */
-#define _ttoi64 _wtoi64
-#define _i64tot _i64tow
-#define _ui64tot _ui64tow
-#define _tasctime _wasctime
-#define _tctime _wctime
-#define _tstrdate _wstrdate
-#define _tstrtime _wstrtime
-#define _tutime _wutime
-#define _tcsnccoll _wcsncoll
-#define _tcsncoll _wcsncoll
-#define _tcsncicoll _wcsnicoll
-#define _tcsnicoll _wcsnicoll
-#define _taccess _waccess
-#define _tchmod _wchmod
-#define _tcreat _wcreat
-#define _tfindfirst _wfindfirst
-#define _tfindnext _wfindnext
-#define _tfdopen _wfdopen
-#define _tfopen _wfopen
-#define _tgetenv _wgetenv
-#define _tputenv _wputenv
-#define _tsearchenv _wsearchenv
-#define _tmakepath _wmakepath
-#define _tsplitpath _wsplitpath
-#define _tfullpath _wfullpath
-#define _tmktemp _wmktemp
-#define _topen _wopen
-#define _tremove _wremove
-#define _trename _wrename
-#define _tsopen _wsopen
-#define _tsetlocale _wsetlocale
-#define _tunlink _wunlink
-#define _tfinddata_t _wfinddata_t
-#define _tfindfirsti64 _wfindfirsti64
-#define _tfindnexti64 _wfindnexti64
-#define _tfinddatai64_t _wfinddatai64_t
-#endif /* __MSVCRT__ */
-
-/* dirent structures and functions */
-#define _tdirent _wdirent
-#define _TDIR _WDIR
-#define _topendir _wopendir
-#define _tclosedir _wclosedir
-#define _treaddir _wreaddir
-#define _trewinddir _wrewinddir
-#define _ttelldir _wtelldir
-#define _tseekdir _wseekdir
-#else /* Not _UNICODE */
-
-/*
- * TCHAR, the type you should use instead of char.
- */
-#ifndef _TCHAR_DEFINED
-#ifndef RC_INVOKED
-typedef char TCHAR;
-typedef char _TCHAR;
-#endif
-#define _TCHAR_DEFINED
-#endif
-
-/*
- * __TEXT is a private macro whose specific use is to force the expansio=
n of a
- * macro passed as an argument to the macros _T or _TEXT. DO NOT use th=
is
- * macro within your programs. It's name and function could change with=
out
- * notice.
- */
-#define __TEXT(q) q
-
-/* for porting from other Windows compilers */
-#define _tmain main
-#define _tWinMain WinMain
-#define _tenviron _environ
-#define __targv __argv
-
-/*
- * Non-unicode (standard) functions
- */
-#define _tstat _stat
-#define _tprintf printf
-#define _ftprintf fprintf
-#define _stprintf sprintf
-#define _sntprintf _snprintf
-#define _vtprintf vprintf
-#define _vftprintf vfprintf
-#define _vstprintf vsprintf
-#define _vsntprintf _vsnprintf
-#define _tscanf scanf
-#define _ftscanf fscanf
-#define _stscanf sscanf
-#define _fgettc fgetc
-#define _fgettchar _fgetchar
-#define _fgetts fgets
-#define _fputtc fputc
-#define _fputtchar _fputchar
-#define _fputts fputs
-#define _tfdopen _fdopen
-#define _tfopen fopen
-#define _tgetenv getenv
-#define _tputenv _putenv
-#define _tsearchenv _searchenv
-#define _tmakepath _makepath
-#define _tsplitpath _splitpath
-#define _tfullpath _fullpath
-#define _gettc getc
-#define _getts gets
-#define _puttc putc
-#define _putts puts
-#define _ungettc ungetc
-#define _tcstod strtod
-#define _tcstol strtol
-#define _tcstoul strtoul
-#define _itot _itoa
-#define _ltot _ltoa
-#define _ultot _ultoa
-#define _ttoi atoi
-#define _ttol atol
-#define _tcscat strcat
-#define _tcscat_s strcat_s
-#define _tcschr strchr
-#define _tcscmp strcmp
-#define _tcscpy strcpy
-#define _tcscpy_s strcpy_s
-#define _tcscspn strcspn
-#define _tcslen strlen
-#define _tcsncat strncat
-#define _tcsncmp strncmp
-#define _tcsncpy strncpy
-#define _tcspbrk strpbrk
-#define _tcsrchr strrchr
-#define _tcsspn strspn
-#define _tcsstr strstr
-#define _tcstok strtok
-#define _tcsdup _strdup
-#define _tcsicmp _stricmp
-#define _tcsnicmp _strnicmp
-#define _tcsnset _strnset
-#define _tcsrev _strrev
-#define _tcsset _strset
-#define _tcslwr _strlwr
-#define _tcsupr _strupr
-#define _tcsxfrm strxfrm
-#define _tcscoll strcoll
-#define _tcsicoll _stricoll
-#define _istalpha isalpha
-#define _istupper isupper
-#define _istlower islower
-#define _istdigit isdigit
-#define _istxdigit isxdigit
-#define _istspace isspace
-#define _istpunct ispunct
-#define _istalnum isalnum
-#define _istprint isprint
-#define _istgraph isgraph
-#define _istcntrl iscntrl
-#define _istascii isascii
-#define _totupper toupper
-#define _totlower tolower
-#define _tasctime asctime
-#define _tctime ctime
-#define _tstrdate _strdate
-#define _tstrtime _strtime
-#define _tutime _utime
-#define _tcsftime strftime
-/* Macro functions */=20
-#define _tcsdec _strdec
-#define _tcsinc _strinc
-#define _tcsnbcnt _strncnt
-#define _tcsnccnt _strncnt
-#define _tcsnextc _strnextc
-#define _tcsninc _strninc
-#define _tcsspnp _strspnp
-#define _strdec(_str1, _str2) ((_str1)>=3D(_str2) ? NULL : (_str2)-1)
-#define _strinc(_str) ((_str)+1)
-#define _strnextc(_str) ((unsigned int) *(_str))
-#define _strninc(_str, _inc) (((_str)+(_inc)))
-#define _strncnt(_str, _cnt) ((strlen(_str)>_cnt) ? _count : strlen(_str=
))
-#define _strspnp(_str1, _str2) ((*((_str1)+strspn(_str1,_str2))) ? ((_st=
r1)+strspn(_str1,_str2)) : NULL)
-
-#define _tchmod _chmod
-#define _tcreat _creat
-#define _tfindfirst _findfirst
-#define _tfindnext _findnext
-#define _tmktemp _mktemp
-#define _topen _open
-#define _taccess _access
-#define _tremove remove
-#define _trename rename
-#define _tsopen _sopen
-#define _tsetlocale setlocale
-#define _tunlink _unlink
-#define _tfinddata_t _finddata_t
-
-#if 1 /* defined __MSVCRT__ */
-/* Not in crtdll.dll. Define macros anyway? */
-#define _ttoi64 _atoi64
-#define _i64tot _i64toa
-#define _ui64tot _ui64toa
-#define _tcsnccoll _strncoll
-#define _tcsncoll _strncoll
-#define _tcsncicoll _strnicoll
-#define _tcsnicoll _strnicoll
-#define _tfindfirsti64 _findfirsti64
-#define _tfindnexti64 _findnexti64
-#define _tfinddatai64_t _finddatai64_t
-#endif /* __MSVCRT__ */
-
-/* dirent structures and functions */
-#define _tdirent dirent
-#define _TDIR DIR
-#define _topendir opendir
-#define _tclosedir closedir
-#define _treaddir readdir
-#define _trewinddir rewinddir
-#define _ttelldir telldir
-#define _tseekdir seekdir
-
-#endif /* Not _UNICODE */
-
-/*
- * UNICODE a constant string when _UNICODE is defined else returns the s=
tring
- * unmodified. Also defined in w32api/winnt.h.
- */
-#define _TEXT(x) __TEXT(x)
-#define _T(x) __TEXT(x)
-
-#endif /* Not _TCHAR_H_ */
-
+/*=20
+ * tchar.h
+ *
+ * Unicode mapping layer for the standard C library. By including this
+ * file and using the 't' names for string functions
+ * (eg. _tprintf) you can make code which can be easily adapted to both
+ * Unicode and non-unicode environments. In a unicode enabled compile de=
fine
+ * _UNICODE before including tchar.h, otherwise the standard non-unicode
+ * library functions will be used.
+ *
+ * Note that you still need to include string.h or stdlib.h etc. to defi=
ne
+ * the appropriate functions. Also note that there are several defines
+ * included for non-ANSI functions which are commonly available (but usi=
ng
+ * the convention of prepending an underscore to non-ANSI library functi=
on
+ * names).
+ *
+ * This file is part of the Mingw32 package.
+ *
+ * Contributors:
+ * Created by Colin Peters <[email protected]>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $Revision: 1.1 $
+ * $Author: ds $
+ * $Date: 2004/04/29 02:52:21 $
+ *
+ */
+
+#ifndef _TCHAR_H_
+#define _TCHAR_H_
+
+/* All the headers include this file. */
+/*#include <_mingw.h>*/
+
+/*
+ * NOTE: This tests _UNICODE, which is different from the UNICODE define
+ * used to differentiate Win32 API calls.
+ */
+#ifdef _UNICODE
+
+
+/*
+ * Use TCHAR instead of char or wchar_t. It will be appropriately transl=
ated
+ * if _UNICODE is correctly defined (or not).
+ */
+#ifndef _TCHAR_DEFINED
+#ifndef RC_INVOKED
+typedef wchar_t TCHAR;
+typedef wchar_t _TCHAR;
+#endif /* Not RC_INVOKED */
+#define _TCHAR_DEFINED
+#endif
+
+
+/*
+ * __TEXT is a private macro whose specific use is to force the expansio=
n of a
+ * macro passed as an argument to the macros _T or _TEXT. DO NOT use th=
is
+ * macro within your programs. It's name and function could change with=
out
+ * notice.
+ */
+#define __TEXT(q) L##q
+
+/* for porting from other Windows compilers */
+#if 0 // no wide startup module
+#define _tmain wmain
+#define _tWinMain wWinMain
+#define _tenviron _wenviron
+#define __targv __wargv
+#endif
+
+/*
+ * Unicode functions
+ */
+#define _tstat _wstat
+#define _tprintf wprintf
+#define _ftprintf fwprintf
+#define _stprintf swprintf
+#define _sntprintf _snwprintf
+#define _vtprintf vwprintf
+#define _vftprintf vfwprintf
+#define _vstprintf vswprintf
+#define _vsntprintf _vsnwprintf
+#define _tscanf wscanf
+#define _ftscanf fwscanf
+#define _stscanf swscanf
+#define _fgettc fgetwc
+#define _fgettchar _fgetwchar
+#define _fgetts fgetws
+#define _fputtc fputwc
+#define _fputtchar _fputwchar
+#define _fputts fputws
+#define _gettc getwc
+#define _getts _getws
+#define _puttc putwc
+#define _putts _putws
+#define _ungettc ungetwc
+#define _tcstod wcstod
+#define _tcstol wcstol
+#define _tcstoul wcstoul
+#define _itot _itow
+#define _ltot _ltow
+#define _ultot _ultow
+#define _ttoi _wtoi
+#define _ttol _wtol
+#define _tcscat wcscat
+#define _tcscat_s wcscat_s
+#define _tcschr wcschr
+#define _tcscmp wcscmp
+#define _tcscpy wcscpy
+#define _tcscpy_s wcscpy_s
+#define _tcscspn wcscspn
+#define _tcslen wcslen
+#define _tcsncat wcsncat
+#define _tcsncmp wcsncmp
+#define _tcsncpy wcsncpy
+#define _tcspbrk wcspbrk
+#define _tcsrchr wcsrchr
+#define _tcsspn wcsspn
+#define _tcsstr wcsstr
+#define _tcstok wcstok
+#define _tcsdup _wcsdup
+#define _tcsicmp _wcsicmp
+#define _tcsnicmp _wcsnicmp
+#define _tcsnset _wcsnset
+#define _tcsrev _wcsrev
+#define _tcsset _wcsset
+#define _tcslwr _wcslwr
+#define _tcsupr _wcsupr
+#define _tcsxfrm wcsxfrm
+#define _tcscoll wcscoll
+#define _tcsicoll _wcsicoll
+#define _istalpha iswalpha
+#define _istupper iswupper
+#define _istlower iswlower
+#define _istdigit iswdigit
+#define _istxdigit iswxdigit
+#define _istspace iswspace
+#define _istpunct iswpunct
+#define _istalnum iswalnum
+#define _istprint iswprint
+#define _istgraph iswgraph
+#define _istcntrl iswcntrl
+#define _istascii iswascii
+#define _totupper towupper
+#define _totlower towlower
+#define _tcsftime wcsftime
+/* Macro functions */=20
+#define _tcsdec _wcsdec
+#define _tcsinc _wcsinc
+#define _tcsnbcnt _wcsncnt
+#define _tcsnccnt _wcsncnt
+#define _tcsnextc _wcsnextc
+#define _tcsninc _wcsninc
+#define _tcsspnp _wcsspnp
+#define _wcsdec(_wcs1, _wcs2) ((_wcs1)>=3D(_wcs2) ? NULL : (_wcs2)-1)
+#define _wcsinc(_wcs) ((_wcs)+1)
+#define _wcsnextc(_wcs) ((unsigned int) *(_wcs))
+#define _wcsninc(_wcs, _inc) (((_wcs)+(_inc)))
+#define _wcsncnt(_wcs, _cnt) ((wcslen(_wcs)>_cnt) ? _count : wcslen(_wcs=
))
+#define _wcsspnp(_wcs1, _wcs2) ((*((_wcs1)+wcsspn(_wcs1,_wcs2))) ? ((_wc=
s1)+wcsspn(_wcs1,_wcs2)) : NULL)
+
+#if 1 /* defined __MSVCRT__ */
+/*
+ * These wide functions not in crtdll.dll.
+ * Define macros anyway so that _wfoo rather than _tfoo is undefined
+ */
+#define _ttoi64 _wtoi64
+#define _i64tot _i64tow
+#define _ui64tot _ui64tow
+#define _tasctime _wasctime
+#define _tctime _wctime
+#define _tstrdate _wstrdate
+#define _tstrtime _wstrtime
+#define _tutime _wutime
+#define _tcsnccoll _wcsncoll
+#define _tcsncoll _wcsncoll
+#define _tcsncicoll _wcsnicoll
+#define _tcsnicoll _wcsnicoll
+#define _taccess _waccess
+#define _tchmod _wchmod
+#define _tcreat _wcreat
+#define _tfindfirst _wfindfirst
+#define _tfindnext _wfindnext
+#define _tfdopen _wfdopen
+#define _tfopen _wfopen
+#define _tgetenv _wgetenv
+#define _tputenv _wputenv
+#define _tsearchenv _wsearchenv
+#define _tmakepath _wmakepath
+#define _tsplitpath _wsplitpath
+#define _tfullpath _wfullpath
+#define _tmktemp _wmktemp
+#define _topen _wopen
+#define _tremove _wremove
+#define _trename _wrename
+#define _tsopen _wsopen
+#define _tsetlocale _wsetlocale
+#define _tunlink _wunlink
+#define _tfinddata_t _wfinddata_t
+#define _tfindfirsti64 _wfindfirsti64
+#define _tfindnexti64 _wfindnexti64
+#define _tfinddatai64_t _wfinddatai64_t
+#endif /* __MSVCRT__ */
+
+/* dirent structures and functions */
+#define _tdirent _wdirent
+#define _TDIR _WDIR
+#define _topendir _wopendir
+#define _tclosedir _wclosedir
+#define _treaddir _wreaddir
+#define _trewinddir _wrewinddir
+#define _ttelldir _wtelldir
+#define _tseekdir _wseekdir
+#else /* Not _UNICODE */
+
+/*
+ * TCHAR, the type you should use instead of char.
+ */
+#ifndef _TCHAR_DEFINED
+#ifndef RC_INVOKED
+typedef char TCHAR;
+typedef char _TCHAR;
+#endif
+#define _TCHAR_DEFINED
+#endif
+
+/*
+ * __TEXT is a private macro whose specific use is to force the expansio=
n of a
+ * macro passed as an argument to the macros _T or _TEXT. DO NOT use th=
is
+ * macro within your programs. It's name and function could change with=
out
+ * notice.
+ */
+#define __TEXT(q) q
+
+/* for porting from other Windows compilers */
+#define _tmain main
+#define _tWinMain WinMain
+#define _tenviron _environ
+#define __targv __argv
+
+/*
+ * Non-unicode (standard) functions
+ */
+#define _tstat _stat
+#define _tprintf printf
+#define _ftprintf fprintf
+#define _stprintf sprintf
+#define _sntprintf _snprintf
+#define _vtprintf vprintf
+#define _vftprintf vfprintf
+#define _vstprintf vsprintf
+#define _vsntprintf _vsnprintf
+#define _tscanf scanf
+#define _ftscanf fscanf
+#define _stscanf sscanf
+#define _fgettc fgetc
+#define _fgettchar _fgetchar
+#define _fgetts fgets
+#define _fputtc fputc
+#define _fputtchar _fputchar
+#define _fputts fputs
+#define _tfdopen _fdopen
+#define _tfopen fopen
+#define _tgetenv getenv
+#define _tputenv _putenv
+#define _tsearchenv _searchenv
+#define _tmakepath _makepath
+#define _tsplitpath _splitpath
+#define _tfullpath _fullpath
+#define _gettc getc
+#define _getts gets
+#define _puttc putc
+#define _putts puts
+#define _ungettc ungetc
+#define _tcstod strtod
+#define _tcstol strtol
+#define _tcstoul strtoul
+#define _itot _itoa
+#define _ltot _ltoa
+#define _ultot _ultoa
+#define _ttoi atoi
+#define _ttol atol
+#define _tcscat strcat
+#define _tcscat_s strcat_s
+#define _tcschr strchr
+#define _tcscmp strcmp
+#define _tcscpy strcpy
+#define _tcscpy_s strcpy_s
+#define _tcscspn strcspn
+#define _tcslen strlen
+#define _tcsncat strncat
+#define _tcsncmp strncmp
+#define _tcsncpy strncpy
+#define _tcspbrk strpbrk
+#define _tcsrchr strrchr
+#define _tcsspn strspn
+#define _tcsstr strstr
+#define _tcstok strtok
+#define _tcsdup _strdup
+#define _tcsicmp _stricmp
+#define _tcsnicmp _strnicmp
+#define _tcsnset _strnset
+#define _tcsrev _strrev
+#define _tcsset _strset
+#define _tcslwr _strlwr
+#define _tcsupr _strupr
+#define _tcsxfrm strxfrm
+#define _tcscoll strcoll
+#define _tcsicoll _stricoll
+#define _istalpha isalpha
+#define _istupper isupper
+#define _istlower islower
+#define _istdigit isdigit
+#define _istxdigit isxdigit
+#define _istspace isspace
+#define _istpunct ispunct
+#define _istalnum isalnum
+#define _istprint isprint
+#define _istgraph isgraph
+#define _istcntrl iscntrl
+#define _istascii isascii
+#define _totupper toupper
+#define _totlower tolower
+#define _tasctime asctime
+#define _tctime ctime
+#define _tstrdate _strdate
+#define _tstrtime _strtime
+#define _tutime _utime
+#define _tcsftime strftime
+/* Macro functions */=20
+#define _tcsdec _strdec
+#define _tcsinc _strinc
+#define _tcsnbcnt _strncnt
+#define _tcsnccnt _strncnt
+#define _tcsnextc _strnextc
+#define _tcsninc _strninc
+#define _tcsspnp _strspnp
+#define _strdec(_str1, _str2) ((_str1)>=3D(_str2) ? NULL : (_str2)-1)
+#define _strinc(_str) ((_str)+1)
+#define _strnextc(_str) ((unsigned int) *(_str))
+#define _strninc(_str, _inc) (((_str)+(_inc)))
+#define _strncnt(_str, _cnt) ((strlen(_str)>_cnt) ? _count : strlen(_str=
))
+#define _strspnp(_str1, _str2) ((*((_str1)+strspn(_str1,_str2))) ? ((_st=
r1)+strspn(_str1,_str2)) : NULL)
+
+#define _tchmod _chmod
+#define _tcreat _creat
+#define _tfindfirst _findfirst
+#define _tfindnext _findnext
+#define _tmktemp _mktemp
+#define _topen _open
+#define _taccess _access
+#define _tremove remove
+#define _trename rename
+#define _tsopen _sopen
+#define _tsetlocale setlocale
+#define _tunlink _unlink
+#define _tfinddata_t _finddata_t
+
+#if 1 /* defined __MSVCRT__ */
+/* Not in crtdll.dll. Define macros anyway? */
+#define _ttoi64 _atoi64
+#define _i64tot _i64toa
+#define _ui64tot _ui64toa
+#define _tcsnccoll _strncoll
+#define _tcsncoll _strncoll
+#define _tcsncicoll _strnicoll
+#define _tcsnicoll _strnicoll
+#define _tfindfirsti64 _findfirsti64
+#define _tfindnexti64 _findnexti64
+#define _tfinddatai64_t _finddatai64_t
+#endif /* __MSVCRT__ */
+
+/* dirent structures and functions */
+#define _tdirent dirent
+#define _TDIR DIR
+#define _topendir opendir
+#define _tclosedir closedir
+#define _treaddir readdir
+#define _trewinddir rewinddir
+#define _ttelldir telldir
+#define _tseekdir seekdir
+
+#endif /* Not _UNICODE */
+
+/*
+ * UNICODE a constant string when _UNICODE is defined else returns the s=
tring
+ * unmodified. Also defined in w32api/winnt.h.
+ */
+#define _TEXT(x) __TEXT(x)
+#define _T(x) __TEXT(x)
+
+#endif /* Not _TCHAR_H_ */
+
Property changes on: trunk/DvdMenuXtractor/libdvdread/win32/gtchar.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/libdvdread/win32/inttypes.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/libdvdread/win32/inttypes.h 2007-02-17 10:34:40=
UTC (rev 1276)
+++ trunk/DvdMenuXtractor/libdvdread/win32/inttypes.h 2007-02-17 10:55:54=
UTC (rev 1277)
@@ -1,303 +1,303 @@
-// ISO C9x compliant inttypes.h for Miscrosoft Visual Studio
-// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124=20
-//=20
-// Copyright (c) 2006 Alexander Chemeris
-//=20
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions ar=
e met:
-//=20
-// 1. Redistributions of source code must retain the above copyright n=
otice,
-// this list of conditions and the following disclaimer.
-//=20
-// 2. Redistributions in binary form must reproduce the above copyrigh=
t
-// notice, this list of conditions and the following disclaimer in =
the
-// documentation and/or other materials provided with the distribut=
ion.
-//=20
-// 3. The name of the author may be used to endorse or promote product=
s
-// derived from this software without specific prior written permis=
sion.
-//=20
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR =
IMPLIED
-// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. =
IN NO
-// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL=
,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMI=
TED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PR=
OFITS;
-// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILI=
TY,=20
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE =
OR
-// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN I=
F
-// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//=20
-////////////////////////////////////////////////////////////////////////=
///////
-
-#ifndef _MSC_VER // [
-#error "Use this header only with Microsoft Visual C++ compilers!"
-#endif // _MSC_VER ]
-
-#ifndef _MSC_INTTYPES_H_ // [
-#define _MSC_INTTYPES_H_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif
-
-#include "stdint.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// 7.8 Format conversion of integer types
-
-typedef struct {
- intmax_t quot;
- intmax_t rem;
-} imaxdiv_t;
-
-// 7.8.1 Macros for format specifiers
-
-// The fprintf macros for signed integers are:
-#define PRId8 "d"
-#define PRIi8 "i"
-#define PRIdLEAST8 "d"
-#define PRIiLEAST8 "i"
-#define PRIdFAST8 "d"
-#define PRIiFAST8 "i"
-
-#define PRId16 "hd"
-#define PRIi16 "hi"
-#define PRIdLEAST16 "hd"
-#define PRIiLEAST16 "hi"
-#define PRIdFAST16 "hd"
-#define PRIiFAST16 "hi"
-
-#define PRId32 "I32d"
-#define PRIi32 "I32i"
-#define PRIdLEAST32 "I32d"
-#define PRIiLEAST32 "I32i"
-#define PRIdFAST32 "I32d"
-#define PRIiFAST32 "I32i"
-
-#define PRId64 "I64d"
-#define PRIi64 "I64i"
-#define PRIdLEAST64 "I64d"
-#define PRIiLEAST64 "I64i"
-#define PRIdFAST64 "I64d"
-#define PRIiFAST64 "I64i"
-
-#define PRIdMAX "I64d"
-#define PRIiMAX "I64i"
-
-#define PRIdPTR "Id"
-#define PRIiPTR "Ii"
-
-// The fprintf macros for unsigned integers are:
-#define PRIo8 "o"
-#define PRIu8 "u"
-#define PRIx8 "x"
-#define PRIX8 "X"
-#define PRIoLEAST8 "o"
-#define PRIuLEAST8 "u"
-#define PRIxLEAST8 "x"
-#define PRIXLEAST8 "X"
-#define PRIoFAST8 "o"
-#define PRIuFAST8 "u"
-#define PRIxFAST8 "x"
-#define PRIXFAST8 "X"
-
-#define PRIo16 "ho"
-#define PRIu16 "hu"
-#define PRIx16 "hx"
-#define PRIX16 "hX"
-#define PRIoLEAST16 "ho"
-#define PRIuLEAST16 "hu"
-#define PRIxLEAST16 "hx"
-#define PRIXLEAST16 "hX"
-#define PRIoFAST16 "ho"
-#define PRIuFAST16 "hu"
-#define PRIxFAST16 "hx"
-#define PRIXFAST16 "hX"
-
-#define PRIo32 "I32o"
-#define PRIu32 "I32u"
-#define PRIx32 "I32x"
-#define PRIX32 "I32X"
-#define PRIoLEAST32 "I32o"
-#define PRIuLEAST32 "I32u"
-#define PRIxLEAST32 "I32x"
-#define PRIXLEAST32 "I32X"
-#define PRIoFAST32 "I32o"
-#define PRIuFAST32 "I32u"
-#define PRIxFAST32 "I32x"
-#define PRIXFAST32 "I32X"
-
-#define PRIo64 "I64o"
-#define PRIu64 "I64u"
-#define PRIx64 "I64x"
-#define PRIX64 "I64X"
-#define PRIoLEAST64 "I64o"
-#define PRIuLEAST64 "I64u"
-#define PRIxLEAST64 "I64x"
-#define PRIXLEAST64 "I64X"
-#define PRIoFAST64 "I64o"
-#define PRIuFAST64 "I64u"
-#define PRIxFAST64 "I64x"
-#define PRIXFAST64 "I64X"
-
-#define PRIoMAX "I64o"
-#define PRIuMAX "I64u"
-#define PRIxMAX "I64x"
-#define PRIXMAX "I64X"
-
-#define PRIoPTR "Io"
-#define PRIuPTR "Iu"
-#define PRIxPTR "Ix"
-#define PRIXPTR "IX"
-
-// The fscanf macros for signed integers are:
-#define SCNd8 "d"
-#define SCNi8 "i"
-#define SCNdLEAST8 "d"
-#define SCNiLEAST8 "i"
-#define SCNdFAST8 "d"
-#define SCNiFAST8 "i"
-
-#define SCNd16 "hd"
-#define SCNi16 "hi"
-#define SCNdLEAST16 "hd"
-#define SCNiLEAST16 "hi"
-#define SCNdFAST16 "hd"
-#define SCNiFAST16 "hi"
-
-#define SCNd32 "ld"
-#define SCNi32 "li"
-#define SCNdLEAST32 "ld"
-#define SCNiLEAST32 "li"
-#define SCNdFAST32 "ld"
-#define SCNiFAST32 "li"
-
-#define SCNd64 "I64d"
-#define SCNi64 "I64i"
-#define SCNdLEAST64 "I64d"
-#define SCNiLEAST64 "I64i"
-#define SCNdFAST64 "I64d"
-#define SCNiFAST64 "I64i"
-
-#define SCNdMAX "I64d"
-#define SCNiMAX "I64i"
-
-#ifdef _WIN64 // [
-# define SCNdPTR "I64d"
-# define SCNiPTR "I64i"
-#else // _WIN64 ][
-# define SCNdPTR "ld"
-# define SCNiPTR "li"
-#endif // _WIN64 ]
-
-// The fscanf macros for unsigned integers are:
-#define SCNo8 "o"
-#define SCNu8 "u"
-#define SCNx8 "x"
-#define SCNX8 "X"
-#define SCNoLEAST8 "o"
-#define SCNuLEAST8 "u"
-#define SCNxLEAST8 "x"
-#define SCNXLEAST8 "X"
-#define SCNoFAST8 "o"
-#define SCNuFAST8 "u"
-#define SCNxFAST8 "x"
-#define SCNXFAST8 "X"
-
-#define SCNo16 "ho"
-#define SCNu16 "hu"
-#define SCNx16 "hx"
-#define SCNX16 "hX"
-#define SCNoLEAST16 "ho"
-#define SCNuLEAST16 "hu"
-#define SCNxLEAST16 "hx"
-#define SCNXLEAST16 "hX"
-#define SCNoFAST16 "ho"
-#define SCNuFAST16 "hu"
-#define SCNxFAST16 "hx"
-#define SCNXFAST16 "hX"
-
-#define SCNo32 "lo"
-#define SCNu32 "lu"
-#define SCNx32 "lx"
-#define SCNX32 "lX"
-#define SCNoLEAST32 "lo"
-#define SCNuLEAST32 "lu"
-#define SCNxLEAST32 "lx"
-#define SCNXLEAST32 "lX"
-#define SCNoFAST32 "lo"
-#define SCNuFAST32 "lu"
-#define SCNxFAST32 "lx"
-#define SCNXFAST32 "lX"
-
-#define SCNo64 "I64o"
-#define SCNu64 "I64u"
-#define SCNx64 "I64x"
-#define SCNX64 "I64X"
-#define SCNoLEAST64 "I64o"
-#define SCNuLEAST64 "I64u"
-#define SCNxLEAST64 "I64x"
-#define SCNXLEAST64 "I64X"
-#define SCNoFAST64 "I64o"
-#define SCNuFAST64 "I64u"
-#define SCNxFAST64 "I64x"
-#define SCNXFAST64 "I64X"
-
-#define SCNoMAX "I64o"
-#define SCNuMAX "I64u"
-#define SCNxMAX "I64x"
-#define SCNXMAX "I64X"
-
-#ifdef _WIN64 // [
-# define SCNoPTR "I64o"
-# define SCNuPTR "I64u"
-# define SCNxPTR "I64x"
-# define SCNXPTR "I64X"
-#else // _WIN64 ][
-# define SCNoPTR "lo"
-# define SCNuPTR "lu"
-# define SCNxPTR "lx"
-# define SCNXPTR "lX"
-#endif // _WIN64 ]
-
-// 7.8.2 Functions for greatest-width integer types
-
-// 7.8.2.1 The imaxabs function
-#define imaxabs _abs64
-
-// 7.8.2.2 The imaxdiv function
-
-// This is modified version of div() function from Microsoft's div.c fou=
nd
-// in %MSVC.NET%\crt\src\div.c
-static _inline imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom)
-{
- imaxdiv_t result;
-
- result.quot =3D numer / denom;
- result.rem =3D numer % denom;
-
- if (numer < 0 && result.rem > 0) {
- // did division wrong; must fix up
- ++result.quot;
- result.rem -=3D denom;
- }
-
- return result;
-}
-
-// 7.8.2.3 The strtoimax and strtoumax functions
-#define strtoimax _strtoi64
-#define strtoumax _strtoui64
-
-// 7.8.2.4 The wcstoimax and wcstoumax functions
-#define wcstoimax _wcstoi64
-#define wcstoumax _wcstoui64
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // _MSC_INTTYPES_H_ ]
+// ISO C9x compliant inttypes.h for Miscrosoft Visual Studio
+// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124=20
+//=20
+// Copyright (c) 2006 Alexander Chemeris
+//=20
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions ar=
e met:
+//=20
+// 1. Redistributions of source code must retain the above copyright n=
otice,
+// this list of conditions and the following disclaimer.
+//=20
+// 2. Redistributions in binary form must reproduce the above copyrigh=
t
+// notice, this list of conditions and the following disclaimer in =
the
+// documentation and/or other materials provided with the distribut=
ion.
+//=20
+// 3. The name of the author may be used to endorse or promote product=
s
+// derived from this software without specific prior written permis=
sion.
+//=20
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR =
IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. =
IN NO
+// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL=
,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMI=
TED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PR=
OFITS;
+// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILI=
TY,=20
+// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE =
OR
+// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN I=
F
+// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//=20
+////////////////////////////////////////////////////////////////////////=
///////
+
+#ifndef _MSC_VER // [
+#error "Use this header only with Microsoft Visual C++ compilers!"
+#endif // _MSC_VER ]
+
+#ifndef _MSC_INTTYPES_H_ // [
+#define _MSC_INTTYPES_H_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif
+
+#include "stdint.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// 7.8 Format conversion of integer types
+
+typedef struct {
+ intmax_t quot;
+ intmax_t rem;
+} imaxdiv_t;
+
+// 7.8.1 Macros for format specifiers
+
+// The fprintf macros for signed integers are:
+#define PRId8 "d"
+#define PRIi8 "i"
+#define PRIdLEAST8 "d"
+#define PRIiLEAST8 "i"
+#define PRIdFAST8 "d"
+#define PRIiFAST8 "i"
+
+#define PRId16 "hd"
+#define PRIi16 "hi"
+#define PRIdLEAST16 "hd"
+#define PRIiLEAST16 "hi"
+#define PRIdFAST16 "hd"
+#define PRIiFAST16 "hi"
+
+#define PRId32 "I32d"
+#define PRIi32 "I32i"
+#define PRIdLEAST32 "I32d"
+#define PRIiLEAST32 "I32i"
+#define PRIdFAST32 "I32d"
+#define PRIiFAST32 "I32i"
+
+#define PRId64 "I64d"
+#define PRIi64 "I64i"
+#define PRIdLEAST64 "I64d"
+#define PRIiLEAST64 "I64i"
+#define PRIdFAST64 "I64d"
+#define PRIiFAST64 "I64i"
+
+#define PRIdMAX "I64d"
+#define PRIiMAX "I64i"
+
+#define PRIdPTR "Id"
+#define PRIiPTR "Ii"
+
+// The fprintf macros for unsigned integers are:
+#define PRIo8 "o"
+#define PRIu8 "u"
+#define PRIx8 "x"
+#define PRIX8 "X"
+#define PRIoLEAST8 "o"
+#define PRIuLEAST8 "u"
+#define PRIxLEAST8 "x"
+#define PRIXLEAST8 "X"
+#define PRIoFAST8 "o"
+#define PRIuFAST8 "u"
+#define PRIxFAST8 "x"
+#define PRIXFAST8 "X"
+
+#define PRIo16 "ho"
+#define PRIu16 "hu"
+#define PRIx16 "hx"
+#define PRIX16 "hX"
+#define PRIoLEAST16 "ho"
+#define PRIuLEAST16 "hu"
+#define PRIxLEAST16 "hx"
+#define PRIXLEAST16 "hX"
+#define PRIoFAST16 "ho"
+#define PRIuFAST16 "hu"
+#define PRIxFAST16 "hx"
+#define PRIXFAST16 "hX"
+
+#define PRIo32 "I32o"
+#define PRIu32 "I32u"
+#define PRIx32 "I32x"
+#define PRIX32 "I32X"
+#define PRIoLEAST32 "I32o"
+#define PRIuLEAST32 "I32u"
+#define PRIxLEAST32 "I32x"
+#define PRIXLEAST32 "I32X"
+#define PRIoFAST32 "I32o"
+#define PRIuFAST32 "I32u"
+#define PRIxFAST32 "I32x"
+#define PRIXFAST32 "I32X"
+
+#define PRIo64 "I64o"
+#define PRIu64 "I64u"
+#define PRIx64 "I64x"
+#define PRIX64 "I64X"
+#define PRIoLEAST64 "I64o"
+#define PRIuLEAST64 "I64u"
+#define PRIxLEAST64 "I64x"
+#define PRIXLEAST64 "I64X"
+#define PRIoFAST64 "I64o"
+#define PRIuFAST64 "I64u"
+#define PRIxFAST64 "I64x"
+#define PRIXFAST64 "I64X"
+
+#define PRIoMAX "I64o"
+#define PRIuMAX "I64u"
+#define PRIxMAX "I64x"
+#define PRIXMAX "I64X"
+
+#define PRIoPTR "Io"
+#define PRIuPTR "Iu"
+#define PRIxPTR "Ix"
+#define PRIXPTR "IX"
+
+// The fscanf macros for signed integers are:
+#define SCNd8 "d"
+#define SCNi8 "i"
+#define SCNdLEAST8 "d"
+#define SCNiLEAST8 "i"
+#define SCNdFAST8 "d"
+#define SCNiFAST8 "i"
+
+#define SCNd16 "hd"
+#define SCNi16 "hi"
+#define SCNdLEAST16 "hd"
+#define SCNiLEAST16 "hi"
+#define SCNdFAST16 "hd"
+#define SCNiFAST16 "hi"
+
+#define SCNd32 "ld"
+#define SCNi32 "li"
+#define SCNdLEAST32 "ld"
+#define SCNiLEAST32 "li"
+#define SCNdFAST32 "ld"
+#define SCNiFAST32 "li"
+
+#define SCNd64 "I64d"
+#define SCNi64 "I64i"
+#define SCNdLEAST64 "I64d"
+#define SCNiLEAST64 "I64i"
+#define SCNdFAST64 "I64d"
+#define SCNiFAST64 "I64i"
+
+#define SCNdMAX "I64d"
+#define SCNiMAX "I64i"
+
+#ifdef _WIN64 // [
+# define SCNdPTR "I64d"
+# define SCNiPTR "I64i"
+#else // _WIN64 ][
+# define SCNdPTR "ld"
+# define SCNiPTR "li"
+#endif // _WIN64 ]
+
+// The fscanf macros for unsigned integers are:
+#define SCNo8 "o"
+#define SCNu8 "u"
+#define SCNx8 "x"
+#define SCNX8 "X"
+#define SCNoLEAST8 "o"
+#define SCNuLEAST8 "u"
+#define SCNxLEAST8 "x"
+#define SCNXLEAST8 "X"
+#define SCNoFAST8 "o"
+#define SCNuFAST8 "u"
+#define SCNxFAST8 "x"
+#define SCNXFAST8 "X"
+
+#define SCNo16 "ho"
+#define SCNu16 "hu"
+#define SCNx16 "hx"
+#define SCNX16 "hX"
+#define SCNoLEAST16 "ho"
+#define SCNuLEAST16 "hu"
+#define SCNxLEAST16 "hx"
+#define SCNXLEAST16 "hX"
+#define SCNoFAST16 "ho"
+#define SCNuFAST16 "hu"
+#define SCNxFAST16 "hx"
+#define SCNXFAST16 "hX"
+
+#define SCNo32 "lo"
+#define SCNu32 "lu"
+#define SCNx32 "lx"
+#define SCNX32 "lX"
+#define SCNoLEAST32 "lo"
+#define SCNuLEAST32 "lu"
+#define SCNxLEAST32 "lx"
+#define SCNXLEAST32 "lX"
+#define SCNoFAST32 "lo"
+#define SCNuFAST32 "lu"
+#define SCNxFAST32 "lx"
+#define SCNXFAST32 "lX"
+
+#define SCNo64 "I64o"
+#define SCNu64 "I64u"
+#define SCNx64 "I64x"
+#define SCNX64 "I64X"
+#define SCNoLEAST64 "I64o"
+#define SCNuLEAST64 "I64u"
+#define SCNxLEAST64 "I64x"
+#define SCNXLEAST64 "I64X"
+#define SCNoFAST64 "I64o"
+#define SCNuFAST64 "I64u"
+#define SCNxFAST64 "I64x"
+#define SCNXFAST64 "I64X"
+
+#define SCNoMAX "I64o"
+#define SCNuMAX "I64u"
+#define SCNxMAX "I64x"
+#define SCNXMAX "I64X"
+
+#ifdef _WIN64 // [
+# define SCNoPTR "I64o"
+# define SCNuPTR "I64u"
+# define SCNxPTR "I64x"
+# define SCNXPTR "I64X"
+#else // _WIN64 ][
+# define SCNoPTR "lo"
+# define SCNuPTR "lu"
+# define SCNxPTR "lx"
+# define SCNXPTR "lX"
+#endif // _WIN64 ]
+
+// 7.8.2 Functions for greatest-width integer types
+
+// 7.8.2.1 The imaxabs function
+#define imaxabs _abs64
+
+// 7.8.2.2 The imaxdiv function
+
+// This is modified version of div() function from Microsoft's div.c fou=
nd
+// in %MSVC.NET%\crt\src\div.c
+static _inline imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom)
+{
+ imaxdiv_t result;
+
+ result.quot =3D numer / denom;
+ result.rem =3D numer % denom;
+
+ if (numer < 0 && result.rem > 0) {
+ // did division wrong; must fix up
+ ++result.quot;
+ result.rem -=3D denom;
+ }
+
+ return result;
+}
+
+// 7.8.2.3 The strtoimax and strtoumax functions
+#define strtoimax _strtoi64
+#define strtoumax _strtoui64
+
+// 7.8.2.4 The wcstoimax and wcstoumax functions
+#define wcstoimax _wcstoi64
+#define wcstoumax _wcstoui64
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _MSC_INTTYPES_H_ ]
Property changes on: trunk/DvdMenuXtractor/libdvdread/win32/inttypes.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/libdvdread/win32/posix.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/libdvdread/win32/posix.h 2007-02-17 10:34:40 UT=
C (rev 1276)
+++ trunk/DvdMenuXtractor/libdvdread/win32/posix.h 2007-02-17 10:55:54 UT=
C (rev 1277)
@@ -1,37 +1,37 @@
-#ifndef _MSC_VER
-#error "Use this header only with Microsoft Visual C++ compilers!"
-#endif
-
-#ifndef _MSC_POSIX_H_
-#define _MSC_POSIX_H_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif
-
-#include <sys/stat.h>
-#ifndef S_ISREG
-#define S_ISREG(mode) (0)
-#endif
-#ifndef S_ISDIR
-#define S_ISDIR(mode) ((mode)&_S_IFDIR)
-#endif
-#ifndef S_ISCHR
-#define S_ISCHR(mode) (0)
-#endif
-#ifndef S_ISSOCK
-#define S_ISSOCK(x) (0)
-#endif
-#ifndef S_ISBLK
-#define S_ISBLK(x) (0)
-#endif
-
-#include <stdlib.h>
-
-#define PATH_MAX _MAX_PATH
-
-#include <windows.h>
-#define dlclose(x) FreeLibrary(x)
-#define dlsym(x,y) GetProcAddress(x,y)
-
-#endif // _MSC_POSIX_H_
+#ifndef _MSC_VER
+#error "Use this header only with Microsoft Visual C++ compilers!"
+#endif
+
+#ifndef _MSC_POSIX_H_
+#define _MSC_POSIX_H_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif
+
+#include <sys/stat.h>
+#ifndef S_ISREG
+#define S_ISREG(mode) (0)
+#endif
+#ifndef S_ISDIR
+#define S_ISDIR(mode) ((mode)&_S_IFDIR)
+#endif
+#ifndef S_ISCHR
+#define S_ISCHR(mode) (0)
+#endif
+#ifndef S_ISSOCK
+#define S_ISSOCK(x) (0)
+#endif
+#ifndef S_ISBLK
+#define S_ISBLK(x) (0)
+#endif
+
+#include <stdlib.h>
+
+#define PATH_MAX _MAX_PATH
+
+#include <windows.h>
+#define dlclose(x) FreeLibrary(x)
+#define dlsym(x,y) GetProcAddress(x,y)
+
+#endif // _MSC_POSIX_H_
Property changes on: trunk/DvdMenuXtractor/libdvdread/win32/posix.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/libdvdread/win32/stdint.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/libdvdread/win32/stdint.h 2007-02-17 10:34:40 U=
TC (rev 1276)
+++ trunk/DvdMenuXtractor/libdvdread/win32/stdint.h 2007-02-17 10:55:54 U=
TC (rev 1277)
@@ -1,208 +1,208 @@
-// ISO C9x compliant stdint.h for Miscrosoft Visual Studio
-// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124=20
-//=20
-// Copyright (c) 2006 Alexander Chemeris
-//=20
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions ar=
e met:
-//=20
-// 1. Redistributions of source code must retain the above copyright n=
otice,
-// this list of conditions and the following disclaimer.
-//=20
-// 2. Redistributions in binary form must reproduce the above copyrigh=
t
-// notice, this list of conditions and the following disclaimer in =
the
-// documentation and/or other materials provided with the distribut=
ion.
-//=20
-// 3. The name of the author may be used to endorse or promote product=
s
-// derived from this software without specific prior written permis=
sion.
-//=20
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR =
IMPLIED
-// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. =
IN NO
-// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL=
,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMI=
TED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PR=
OFITS;
-// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILI=
TY,=20
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE =
OR
-// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN I=
F
-// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//=20
-////////////////////////////////////////////////////////////////////////=
///////
-
-#ifndef _MSC_VER // [
-#error "Use this header only with Microsoft Visual C++ compilers!"
-#endif // _MSC_VER ]
-
-#ifndef _MSC_STDINT_H_ // [
-#define _MSC_STDINT_H_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif
-
-#include <BaseTsd.h>
-#include <limits.h>
-#include <wchar.h>
-
-// 7.18.1 Integer types
-
-// 7.18.1.1 Exact-width integer types
-typedef signed __int8 int8_t;
-typedef signed __int16 int16_t;
-typedef signed __int32 int32_t;
-typedef signed __int64 int64_t;
-typedef unsigned __int8 uint8_t;
-typedef unsigned __int16 uint16_t;
-typedef unsigned __int32 uint32_t;
-typedef unsigned __int64 uint64_t;
-
-// 7.18.1.2 Minimum-width integer types
-typedef int8_t int_least8_t;
-typedef int16_t int_least16_t;
-typedef int32_t int_least32_t;
-typedef int64_t int_least64_t;
-typedef uint8_t uint_least8_t;
-typedef uint16_t uint_least16_t;
-typedef uint32_t uint_least32_t;
-typedef uint64_t uint_least64_t;
-
-// 7.18.1.3 Fastest minimum-width integer types
-typedef int8_t int_fast8_t;
-typedef int16_t int_fast16_t;
-typedef int32_t int_fast32_t;
-typedef int64_t int_fast64_t;
-typedef uint8_t uint_fast8_t;
-typedef uint16_t uint_fast16_t;
-typedef uint32_t uint_fast32_t;
-typedef uint64_t uint_fast64_t;
-
-// 7.18.1.4 Integer types capable of holding object pointers
-typedef INT_PTR intptr_t;
-typedef UINT_PTR uintptr_t;
-
-// 7.18.1.5 Greatest-width integer types
-typedef int64_t intmax_t;
-typedef uint64_t uintmax_t;
-
-
-// 7.18.2 Limits of specified-width integer types
-
-#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See foo=
tnote 220 at page 257 and footnote 221 at page 259
-
-// 7.18.2.1 Limits of exact-width integer types
-#define INT8_MIN _I8_MIN
-#define INT8_MAX _I8_MAX
-#define INT16_MIN _I16_MIN
-#define INT16_MAX _I16_MAX
-#define INT32_MIN _I32_MIN
-#define INT32_MAX _I32_MAX
-#define INT64_MIN _I64_MIN
-#define INT64_MAX _I64_MAX
-#define UINT8_MAX _UI8_MAX
-#define UINT16_MAX _UI16_MAX
-#define UINT32_MAX _UI32_MAX
-#define UINT64_MAX _UI64_MAX
-
-// 7.18.2.2 Limits of minimum-width integer types
-#define INT_LEAST8_MIN INT8_MIN
-#define INT_LEAST8_MAX INT8_MAX
-#define INT_LEAST16_MIN INT16_MIN
-#define INT_LEAST16_MAX INT16_MAX
-#define INT_LEAST32_MIN INT32_MIN
-#define INT_LEAST32_MAX INT32_MAX
-#define INT_LEAST64_MIN INT64_MIN
-#define INT_LEAST64_MAX INT64_MAX
-#define UINT_LEAST8_MAX UINT8_MAX
-#define UINT_LEAST16_MAX UINT16_MAX
-#define UINT_LEAST32_MAX UINT32_MAX
-#define UINT_LEAST64_MAX UINT64_MAX
-
-// 7.18.2.3 Limits of fastest minimum-width integer types
-#define INT_FAST8_MIN INT8_MIN
-#define INT_FAST8_MAX INT8_MAX
-#define INT_FAST16_MIN INT16_MIN
-#define INT_FAST16_MAX INT16_MAX
-#define INT_FAST32_MIN INT32_MIN
-#define INT_FAST32_MAX INT32_MAX
-#define INT_FAST64_MIN INT64_MIN
-#define INT_FAST64_MAX INT64_MAX
-#define UINT_FAST8_MAX UINT8_MAX
-#define UINT_FAST16_MAX UINT16_MAX
-#define UINT_FAST32_MAX UINT32_MAX
-#define UINT_FAST64_MAX UINT64_MAX
-
-// 7.18.2.4 Limits of integer types capable of holding object pointers
-#ifdef _WIN64 // [
-# define INTPTR_MIN INT64_MIN
-# define INTPTR_MAX INT64_MAX
-# define UINTPTR_MAX UINT64_MAX
-#else // _WIN64 ][
-# define INTPTR_MIN INT32_MIN
-# define INTPTR_MAX INT32_MAX
-# define UINTPTR_MAX UINT32_MAX
-#endif // _WIN64 ]
-
-// 7.18.2.5 Limits of greatest-width integer types
-#define INTMAX_MIN INT64_MIN
-#define INTMAX_MAX INT64_MAX
-#define UINTMAX_MAX UINT64_MAX
-
-// 7.18.3 Limits of other integer types
-
-#ifdef _WIN64 // [
-# define PTRDIFF_MIN _I64_MIN
-# define PTRDIFF_MAX _I64_MAX
-#else // _WIN64 ][
-# define PTRDIFF_MIN _I32_MIN
-# define PTRDIFF_MAX _I32_MAX
-#endif // _WIN64 ]
-
-#define SIG_ATOMIC_MIN INT_MIN
-#define SIG_ATOMIC_MAX INT_MAX
-
-#ifndef SIZE_MAX // [
-# ifdef _WIN64 // [
-# define SIZE_MAX _UI64_MAX
-# else // _WIN64 ][
-# define SIZE_MAX _UI32_MAX
-# endif // _WIN64 ]
-#endif // SIZE_MAX ]
-
-// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
-#ifndef WCHAR_MIN // [
-# define WCHAR_MIN 0
-#endif // WCHAR_MIN ]
-#ifndef WCHAR_MAX // [
-# define WCHAR_MAX _UI16_MAX
-#endif // WCHAR_MAX ]
-
-#define WINT_MIN 0
-#define WINT_MAX _UI16_MAX
-
-#endif // __STDC_LIMIT_MACROS ]
-
-
-// 7.18.4 Limits of other integer types
-
-#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See =
footnote 224 at page 260
-
-// 7.18.4.1 Macros for minimum-width integer constants
-
-#define INT8_C(val) val
-#define INT16_C(val) val
-#define INT32_C(val) val##L
-#define INT64_C(val) val##i64
-
-#define UINT8_C(val) val
-#define UINT16_C(val) val
-#define UINT32_C(val) val##UL
-#define UINT64_C(val) val##Ui64
-
-// 7.18.4.2 Macros for greatest-width integer constants
-#define INTMAX_C INT64_C
-#define UINTMAX_C UINT64_C
-
-#endif // __STDC_CONSTANT_MACROS ]
-
-
-#endif // _MSC_STDINT_H_ ]
+// ISO C9x compliant stdint.h for Miscrosoft Visual Studio
+// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124=20
+//=20
+// Copyright (c) 2006 Alexander Chemeris
+//=20
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions ar=
e met:
+//=20
+// 1. Redistributions of source code must retain the above copyright n=
otice,
+// this list of conditions and the following disclaimer.
+//=20
+// 2. Redistributions in binary form must reproduce the above copyrigh=
t
+// notice, this list of conditions and the following disclaimer in =
the
+// documentation and/or other materials provided with the distribut=
ion.
+//=20
+// 3. The name of the author may be used to endorse or promote product=
s
+// derived from this software without specific prior written permis=
sion.
+//=20
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR =
IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. =
IN NO
+// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL=
,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMI=
TED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PR=
OFITS;
+// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILI=
TY,=20
+// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE =
OR
+// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN I=
F
+// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//=20
+////////////////////////////////////////////////////////////////////////=
///////
+
+#ifndef _MSC_VER // [
+#error "Use this header only with Microsoft Visual C++ compilers!"
+#endif // _MSC_VER ]
+
+#ifndef _MSC_STDINT_H_ // [
+#define _MSC_STDINT_H_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif
+
+#include <BaseTsd.h>
+#include <limits.h>
+#include <wchar.h>
+
+// 7.18.1 Integer types
+
+// 7.18.1.1 Exact-width integer types
+typedef signed __int8 int8_t;
+typedef signed __int16 int16_t;
+typedef signed __int32 int32_t;
+typedef signed __int64 int64_t;
+typedef unsigned __int8 uint8_t;
+typedef unsigned __int16 uint16_t;
+typedef unsigned __int32 uint32_t;
+typedef unsigned __int64 uint64_t;
+
+// 7.18.1.2 Minimum-width integer types
+typedef int8_t int_least8_t;
+typedef int16_t int_least16_t;
+typedef int32_t int_least32_t;
+typedef int64_t int_least64_t;
+typedef uint8_t uint_least8_t;
+typedef uint16_t uint_least16_t;
+typedef uint32_t uint_least32_t;
+typedef uint64_t uint_least64_t;
+
+// 7.18.1.3 Fastest minimum-width integer types
+typedef int8_t int_fast8_t;
+typedef int16_t int_fast16_t;
+typedef int32_t int_fast32_t;
+typedef int64_t int_fast64_t;
+typedef uint8_t uint_fast8_t;
+typedef uint16_t uint_fast16_t;
+typedef uint32_t uint_fast32_t;
+typedef uint64_t uint_fast64_t;
+
+// 7.18.1.4 Integer types capable of holding object pointers
+typedef INT_PTR intptr_t;
+typedef UINT_PTR uintptr_t;
+
+// 7.18.1.5 Greatest-width integer types
+typedef int64_t intmax_t;
+typedef uint64_t uintmax_t;
+
+
+// 7.18.2 Limits of specified-width integer types
+
+#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See foo=
tnote 220 at page 257 and footnote 221 at page 259
+
+// 7.18.2.1 Limits of exact-width integer types
+#define INT8_MIN _I8_MIN
+#define INT8_MAX _I8_MAX
+#define INT16_MIN _I16_MIN
+#define INT16_MAX _I16_MAX
+#define INT32_MIN _I32_MIN
+#define INT32_MAX _I32_MAX
+#define INT64_MIN _I64_MIN
+#define INT64_MAX _I64_MAX
+#define UINT8_MAX _UI8_MAX
+#define UINT16_MAX _UI16_MAX
+#define UINT32_MAX _UI32_MAX
+#define UINT64_MAX _UI64_MAX
+
+// 7.18.2.2 Limits of minimum-width integer types
+#define INT_LEAST8_MIN INT8_MIN
+#define INT_LEAST8_MAX INT8_MAX
+#define INT_LEAST16_MIN INT16_MIN
+#define INT_LEAST16_MAX INT16_MAX
+#define INT_LEAST32_MIN INT32_MIN
+#define INT_LEAST32_MAX INT32_MAX
+#define INT_LEAST64_MIN INT64_MIN
+#define INT_LEAST64_MAX INT64_MAX
+#define UINT_LEAST8_MAX UINT8_MAX
+#define UINT_LEAST16_MAX UINT16_MAX
+#define UINT_LEAST32_MAX UINT32_MAX
+#define UINT_LEAST64_MAX UINT64_MAX
+
+// 7.18.2.3 Limits of fastest minimum-width integer types
+#define INT_FAST8_MIN INT8_MIN
+#define INT_FAST8_MAX INT8_MAX
+#define INT_FAST16_MIN INT16_MIN
+#define INT_FAST16_MAX INT16_MAX
+#define INT_FAST32_MIN INT32_MIN
+#define INT_FAST32_MAX INT32_MAX
+#define INT_FAST64_MIN INT64_MIN
+#define INT_FAST64_MAX INT64_MAX
+#define UINT_FAST8_MAX UINT8_MAX
+#define UINT_FAST16_MAX UINT16_MAX
+#define UINT_FAST32_MAX UINT32_MAX
+#define UINT_FAST64_MAX UINT64_MAX
+
+// 7.18.2.4 Limits of integer types capable of holding object pointers
+#ifdef _WIN64 // [
+# define INTPTR_MIN INT64_MIN
+# define INTPTR_MAX INT64_MAX
+# define UINTPTR_MAX UINT64_MAX
+#else // _WIN64 ][
+# define INTPTR_MIN INT32_MIN
+# define INTPTR_MAX INT32_MAX
+# define UINTPTR_MAX UINT32_MAX
+#endif // _WIN64 ]
+
+// 7.18.2.5 Limits of greatest-width integer types
+#define INTMAX_MIN INT64_MIN
+#define INTMAX_MAX INT64_MAX
+#define UINTMAX_MAX UINT64_MAX
+
+// 7.18.3 Limits of other integer types
+
+#ifdef _WIN64 // [
+# define PTRDIFF_MIN _I64_MIN
+# define PTRDIFF_MAX _I64_MAX
+#else // _WIN64 ][
+# define PTRDIFF_MIN _I32_MIN
+# define PTRDIFF_MAX _I32_MAX
+#endif // _WIN64 ]
+
+#define SIG_ATOMIC_MIN INT_MIN
+#define SIG_ATOMIC_MAX INT_MAX
+
+#ifndef SIZE_MAX // [
+# ifdef _WIN64 // [
+# define SIZE_MAX _UI64_MAX
+# else // _WIN64 ][
+# define SIZE_MAX _UI32_MAX
+# endif // _WIN64 ]
+#endif // SIZE_MAX ]
+
+// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
+#ifndef WCHAR_MIN // [
+# define WCHAR_MIN 0
+#endif // WCHAR_MIN ]
+#ifndef WCHAR_MAX // [
+# define WCHAR_MAX _UI16_MAX
+#endif // WCHAR_MAX ]
+
+#define WINT_MIN 0
+#define WINT_MAX _UI16_MAX
+
+#endif // __STDC_LIMIT_MACROS ]
+
+
+// 7.18.4 Limits of other integer types
+
+#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See =
footnote 224 at page 260
+
+// 7.18.4.1 Macros for minimum-width integer constants
+
+#define INT8_C(val) val
+#define INT16_C(val) val
+#define INT32_C(val) val##L
+#define INT64_C(val) val##i64
+
+#define UINT8_C(val) val
+#define UINT16_C(val) val
+#define UINT32_C(val) val##UL
+#define UINT64_C(val) val##Ui64
+
+// 7.18.4.2 Macros for greatest-width integer constants
+#define INTMAX_C INT64_C
+#define UINTMAX_C UINT64_C
+
+#endif // __STDC_CONSTANT_MACROS ]
+
+
+#endif // _MSC_STDINT_H_ ]
Property changes on: trunk/DvdMenuXtractor/libdvdread/win32/stdint.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/libdvdread/win32/win32.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/libdvdread/win32/win32.proj 2007-02-17 10:34:40=
UTC (rev 1276)
+++ trunk/DvdMenuXtractor/libdvdread/win32/win32.proj 2007-02-17 10:55:54=
UTC (rev 1277)
@@ -1,17 +1,17 @@
-#include "*/*.proj"
-
-GROUP posixmsvc
-{
- SOURCE dirent.c
- DEFINE _CRT_NON_CONFORMING_SWPRINTFS
-
- HEADER dirent.h
- HEADER gtchar.h
- HEADER posix.h
-}
-
-GROUP c99msvc
-{
- HEADER inttypes.h
- HEADER stdint.h
-}
+#include "*/*.proj"
+
+GROUP posixmsvc
+{
+ SOURCE dirent.c
+ DEFINE _CRT_NON_CONFORMING_SWPRINTFS
+
+ HEADER dirent.h
+ HEADER gtchar.h
+ HEADER posix.h
+}
+
+GROUP c99msvc
+{
+ HEADER inttypes.h
+ HEADER stdint.h
+}
Property changes on: trunk/DvdMenuXtractor/libdvdread/win32/win32.proj
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/logtextedit.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/logtextedit.h 2007-02-17 10:34:40 UTC (rev 1276=
)
+++ trunk/DvdMenuXtractor/logtextedit.h 2007-02-17 10:55:54 UTC (rev 1277=
)
@@ -1,25 +1,25 @@
-#ifndef LOGTEXTEDIT_H
-#define LOGTEXTEDIT_H
-
-#include <QTextEdit>
-
-// forward declaration
-class OutputReader;
-
-class LogTextEdit : public QTextEdit
-{
- Q_OBJECT
-
-public:
- LogTextEdit(QWidget *parent);
- ~LogTextEdit();
-
-private slots:
- void standardErrorReady();
- void standardOutputReady();
-
-private:
- OutputReader& notifier_;
-};
-
-#endif // LOGTEXTEDIT_H
+#ifndef LOGTEXTEDIT_H
+#define LOGTEXTEDIT_H
+
+#include <QTextEdit>
+
+// forward declaration
+class OutputReader;
+
+class LogTextEdit : public QTextEdit
+{
+ Q_OBJECT
+
+public:
+ LogTextEdit(QWidget *parent);
+ ~LogTextEdit();
+
+private slots:
+ void standardErrorReady();
+ void standardOutputReady();
+
+private:
+ OutputReader& notifier_;
+};
+
+#endif // LOGTEXTEDIT_H
Property changes on: trunk/DvdMenuXtractor/logtextedit.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/mpegparser/CircBuffer.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/mpegparser/M2VParser.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/mpegparser/MPEGVideoBuffer.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/mpegparser/Types.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/mpegparser/mpegparser.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/mpegparser/mpegparser.proj 2007-02-17 10:34:40 =
UTC (rev 1276)
+++ trunk/DvdMenuXtractor/mpegparser/mpegparser.proj 2007-02-17 10:55:54 =
UTC (rev 1277)
@@ -1,11 +1,11 @@
-GROUP mpegparser
-{
- SOURCE CircBuffer.cpp
- SOURCE M2VParser.cpp
- SOURCE MPEGVideoBuffer.cpp
-
- HEADER CircBuffer.h
- HEADER M2VParser.h
- HEADER MPEGVideoBuffer.h
- HEADER Types.h
-}
+GROUP mpegparser
+{
+ SOURCE CircBuffer.cpp
+ SOURCE M2VParser.cpp
+ SOURCE MPEGVideoBuffer.cpp
+
+ HEADER CircBuffer.h
+ HEADER M2VParser.h
+ HEADER MPEGVideoBuffer.h
+ HEADER Types.h
+}
Property changes on: trunk/DvdMenuXtractor/mpegparser/mpegparser.proj
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/outputreader.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/selectiontreeitem.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/selectiontreeitem.h 2007-02-17 10:34:40 UTC (re=
v 1276)
+++ trunk/DvdMenuXtractor/selectiontreeitem.h 2007-02-17 10:55:54 UTC (re=
v 1277)
@@ -1,25 +1,25 @@
-#ifndef SELECTIONTREEITEM_H
-#define SELECTIONTREEITEM_H
-
-#include <stdint.h>
-
-// forward declaration
-class QTreeWidgetItem;
-
-class SelectionTreeItem : public QTreeWidgetItem
-{
-public:
-
- SelectionTreeItem(QTreeWidget *parent, int16_t title, bool isMenuItem)=
;
- SelectionTreeItem(const SelectionTreeItem &other);
- ~SelectionTreeItem();
-
- int16_t title() const;
- bool isMenuItem() const;
-
-private:
- int16_t title_;
- bool isMenuItem_;
-};
-
-#endif // SELECTIONTREEITEM_H
+#ifndef SELECTIONTREEITEM_H
+#define SELECTIONTREEITEM_H
+
+#include <stdint.h>
+
+// forward declaration
+class QTreeWidgetItem;
+
+class SelectionTreeItem : public QTreeWidgetItem
+{
+public:
+
+ SelectionTreeItem(QTreeWidget *parent, int16_t title, bool isMenuItem)=
;
+ SelectionTreeItem(const SelectionTreeItem &other);
+ ~SelectionTreeItem();
+
+ int16_t title() const;
+ bool isMenuItem() const;
+
+private:
+ int16_t title_;
+ bool isMenuItem_;
+};
+
+#endif // SELECTIONTREEITEM_H
Property changes on: trunk/DvdMenuXtractor/selectiontreeitem.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/selectiontreesubitem.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/selectiontreesubitem.h 2007-02-17 10:34:40 UTC =
(rev 1276)
+++ trunk/DvdMenuXtractor/selectiontreesubitem.h 2007-02-17 10:55:54 UTC =
(rev 1277)
@@ -1,26 +1,26 @@
-#ifndef SELECTION_TREE_SUB_ITEM_H
-#define SELECTION_TREE_SUB_ITEM_H
-
-// forward declaration
-class QTreeWidgetItem;
-class SelectionTreeItem;
-
-class SelectionTreeSubItem : public QTreeWidgetItem
-{
-public:
- enum SubItemType { AUDIO_TRACK, SUBTITLE_TRACK };
- SelectionTreeSubItem(QTreeWidgetItem *parent, const SelectionTreeItem& =
titleItem, size_t index, SubItemType type);
- SelectionTreeSubItem(const SelectionTreeSubItem& other);
- ~SelectionTreeSubItem();
-
- size_t index() const;
- SubItemType type() const;
- const SelectionTreeItem& titleItem() const;
-
-private:
- size_t index_;
- SubItemType type_;
- const SelectionTreeItem &titleItem_;
-};
-
+#ifndef SELECTION_TREE_SUB_ITEM_H
+#define SELECTION_TREE_SUB_ITEM_H
+
+// forward declaration
+class QTreeWidgetItem;
+class SelectionTreeItem;
+
+class SelectionTreeSubItem : public QTreeWidgetItem
+{
+public:
+ enum SubItemType { AUDIO_TRACK, SUBTITLE_TRACK };
+ SelectionTreeSubItem(QTreeWidgetItem *parent, const SelectionTreeItem& =
titleItem, size_t index, SubItemType type);
+ SelectionTreeSubItem(const SelectionTreeSubItem& other);
+ ~SelectionTreeSubItem();
+
+ size_t index() const;
+ SubItemType type() const;
+ const SelectionTreeItem& titleItem() const;
+
+private:
+ size_t index_;
+ SubItemType type_;
+ const SelectionTreeItem &titleItem_;
+};
+
#endif // SELECTION_TREE_SUB_ITEM_H
\ No newline at end of file
Property changes on: trunk/DvdMenuXtractor/selectiontreesubitem.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/utilities.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/utilities.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/DvdMenuXtractor/utilities.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,17 +1,17 @@
-#ifndef UTILITIES_H
-#define UTILITIES_H
-
-#include <QString>
-#include <stdint.h>
-
-namespace Utilities
-{
- static const QString APPLICATION_NAME ("DVDMenuXtractor: DMX - a fai=
r-use tool");
- static const QString APPLICATION_VERSION ("0.9.x");
-
- QString CreateUID();
- QString FormatTime(uint64_t a_time);
- QString EncodeHex(const unsigned char *buffer, unsigned size);
-}
-
+#ifndef UTILITIES_H
+#define UTILITIES_H
+
+#include <QString>
+#include <stdint.h>
+
+namespace Utilities
+{
+ static const QString APPLICATION_NAME ("DVDMenuXtractor: DMX - a fai=
r-use tool");
+ static const QString APPLICATION_VERSION ("0.9.x");
+
+ QString CreateUID();
+ QString FormatTime(uint64_t a_time);
+ QString EncodeHex(const unsigned char *buffer, unsigned size);
+}
+
#endif // UTILITIES_H
\ No newline at end of file
Property changes on: trunk/DvdMenuXtractor/utilities.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/vobparser/IFOContent.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/vobparser/IFOContent.h 2007-02-17 10:34:40 UTC =
(rev 1276)
+++ trunk/DvdMenuXtractor/vobparser/IFOContent.h 2007-02-17 10:55:54 UTC =
(rev 1277)
@@ -1,71 +1,71 @@
-// ---------------------------------------------------------------------=
-------
-#ifndef _IFO_CONTENT_H_
-#define _IFO_CONTENT_H_
-// ---------------------------------------------------------------------=
-------
-#include <QHash>
-#include <vector>
-
-#include "VobParser.h"
-#include "dvdread/ifo_read.h"
-// ---------------------------------------------------------------------=
-------
-typedef std::vector<uint8_t> IdArray;
-
-typedef QHash<int, CellListElem *> CellsHashType;
-typedef std::vector<const audio_attr_t*> AudioTrackList;
-typedef std::vector<const subp_attr_t*> SubtitleTrackList;
-
-#define MAKE_CELLS_KEY(vob_id,cell_id) ((vob_id << 8) | cell_id)
-// ---------------------------------------------------------------------=
-------
-class IFOException { };
-class IFOFileIOException : public IFOException { };
-class IFOInvalidFileFormatException : public IFOException { };
-// ---------------------------------------------------------------------=
-------
-typedef QList<CellListElem*> CellsListBaseType;
-class CellsListType : public CellsListBaseType
-{
-public:
- void arrange();
- CellListElem* at(uint16_t vob_id, uint8_t cell_id) const;
- const CellListElem* at(const cell_position_t & position) const;
-
- // comperator for qSort()
- static int cellListElemCompare(const CellListElem *arg1, const CellList=
Elem *arg2);
-};
-// ---------------------------------------------------------------------=
-------
-class IFOContent=20
-{
-public:
- IFOContent(dvd_reader_t *dvdr, int16_t title);
-
- ~IFOContent()
- {
- ifoClose(m_handle);
- m_CellsList.clear();
- m_langCellsList.clear();
- }
-
- ifo_handle_t& Handle()
- {
- assert(m_handle !=3D NULL);
- return *m_handle;
- }
-
- IdArray FindSubStream(uint8_t streamID, bool menu) const;
- uint8_t FindAudioStream(uint8_t streamID, bool menu) const;
-=09
- void GetPGCCells(const pgcit_t & pgcit, const c_adt_t & adt, CellsHashT=
ype * CellsHash);
-
- int16_t m_title;
- AudioTrackList m_langAudio;
- AudioTrackList m_Audio;
- SubtitleTrackList m_langSubs;
- SubtitleTrackList m_Subs;
- CellsListType m_CellsList;
- CellsListType m_langCellsList;
-
-protected:
- ifo_handle_t *m_handle;
-};
-// ---------------------------------------------------------------------=
-------
-#endif
+// ---------------------------------------------------------------------=
-------
+#ifndef _IFO_CONTENT_H_
+#define _IFO_CONTENT_H_
+// ---------------------------------------------------------------------=
-------
+#include <QHash>
+#include <vector>
+
+#include "VobParser.h"
+#include "dvdread/ifo_read.h"
+// ---------------------------------------------------------------------=
-------
+typedef std::vector<uint8_t> IdArray;
+
+typedef QHash<int, CellListElem *> CellsHashType;
+typedef std::vector<const audio_attr_t*> AudioTrackList;
+typedef std::vector<const subp_attr_t*> SubtitleTrackList;
+
+#define MAKE_CELLS_KEY(vob_id,cell_id) ((vob_id << 8) | cell_id)
+// ---------------------------------------------------------------------=
-------
+class IFOException { };
+class IFOFileIOException : public IFOException { };
+class IFOInvalidFileFormatException : public IFOException { };
+// ---------------------------------------------------------------------=
-------
+typedef QList<CellListElem*> CellsListBaseType;
+class CellsListType : public CellsListBaseType
+{
+public:
+ void arrange();
+ CellListElem* at(uint16_t vob_id, uint8_t cell_id) const;
+ const CellListElem* at(const cell_position_t & position) const;
+
+ // comperator for qSort()
+ static int cellListElemCompare(const CellListElem *arg1, const CellList=
Elem *arg2);
+};
+// ---------------------------------------------------------------------=
-------
+class IFOContent=20
+{
+public:
+ IFOContent(dvd_reader_t *dvdr, int16_t title);
+
+ ~IFOContent()
+ {
+ ifoClose(m_handle);
+ m_CellsList.clear();
+ m_langCellsList.clear();
+ }
+
+ ifo_handle_t& Handle()
+ {
+ assert(m_handle !=3D NULL);
+ return *m_handle;
+ }
+
+ IdArray FindSubStream(uint8_t streamID, bool menu) const;
+ uint8_t FindAudioStream(uint8_t streamID, bool menu) const;
+=09
+ void GetPGCCells(const pgcit_t & pgcit, const c_adt_t & adt, CellsHashT=
ype * CellsHash);
+
+ int16_t m_title;
+ AudioTrackList m_langAudio;
+ AudioTrackList m_Audio;
+ SubtitleTrackList m_langSubs;
+ SubtitleTrackList m_Subs;
+ CellsListType m_CellsList;
+ CellsListType m_langCellsList;
+
+protected:
+ ifo_handle_t *m_handle;
+};
+// ---------------------------------------------------------------------=
-------
+#endif
// ---------------------------------------------------------------------=
-------
\ No newline at end of file
Property changes on: trunk/DvdMenuXtractor/vobparser/IFOContent.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/vobparser/IFOFile.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/vobparser/VobParser.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/vobparser/VobParser.h 2007-02-17 10:34:40 UTC (=
rev 1276)
+++ trunk/DvdMenuXtractor/vobparser/VobParser.h 2007-02-17 10:55:54 UTC (=
rev 1277)
@@ -1,631 +1,631 @@
-// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
-// VOBParser class
-// Copyright =A9 2002 : Christophe PARIS ([email protected])
-// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
-#ifndef _VOB_PARSER_H_
-#define _VOB_PARSER_H_
-// ---------------------------------------------------------------------=
-------
-#include <stdio.h>
-#include <string.h>
-#include <stdarg.h>
-#include <stdint.h>
-
-#define HAVE_INTTYPES_H
-#include "dvdread/ifo_read.h"
-#include "mpegparser/M2VParser.h"
-
-#include <QList>
-#include <QString>
-// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
-
-#define VIDEO_STREAM_TYPE 0x01
-#define AUDIO_STREAM_TYPE 0x02
-#define SUB_STREAM_TYPE 0x04
-
-#define AC3_STREAM_TYPE (AUDIO_STREAM_TYPE | 0x08)
-#define DTS_STREAM_TYPE (AUDIO_STREAM_TYPE | 0x10)
-#define PCM_STREAM_TYPE (AUDIO_STREAM_TYPE | 0x20)
-
-
-#define AUDIO_STREAM 0xC0
-#define VIDEO_STREAM 0xE0
-
-#define SUBSTREAM_PCI 0x00
-#define SUBSTREAM_DSI 0x01
-
-#define SUBSTREAM_SUB_LOW 0x20
-#define SUBSTREAM_SUB_HIGH (SUBSTREAM_SUB_LOW + 32)
-
-#define SUBSTREAM_AC3_LOW 0x80
-#define SUBSTREAM_AC3_HIGH (SUBSTREAM_AC3_LOW + 8)
-
-#define SUBSTREAM_DTS_LOW 0x88
-#define SUBSTREAM_DTS_HIGH (SUBSTREAM_DTS_LOW + 8)
-
-#define SUBSTREAM_PCM_LOW 0xA0
-#define SUBSTREAM_PCM_HIGH (SUBSTREAM_PCM_LOW + 8)
-
-// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
-// Type
-// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
-
-typedef struct=20
-{
- unsigned int vobid;
- unsigned int cellid;
- unsigned int start_frame;
- unsigned int end_frame;
- unsigned int nb_frames;
- uint32_t start_sector;
- uint32_t last_sector;
- double frame_dur;
- uint64_t start_time;
- uint64_t duration;
- bool isStill;
- bool selected;
- bool found;
- //ButtonsListType btt_list;
-} CellListElem;
-
-typedef struct {
- uint16_t start_x; // Starting X position
- uint16_t start_y; // Starting Y position
- uint16_t end_x; // Ending X position
- uint16_t end_y; // Ending Y position
- uint8_t btn_coln; // Button color table number, 0=3Dnone
- uint8_t auto_action_flag; // Auto Action flag 0=3Dno, 1=3Dyes
- uint8_t up; // Button number to select if "Up" is pressed
- uint8_t down; // Button number to select if "Down" is pressed
- uint8_t left; // Button number to select if "Left" is pressed
- uint8_t right; // Button number to select if "Right" is pressed
- uint8_t vm_cmd[8]; // One vm command to be executed on "action" of t=
his button
-} btni;
-
-typedef struct {
- uint32_t nv_pck_lbn : 32; // Logical Block Number (sector) of this blo=
ck
- uint16_t vobu_cat : 16; // Flags, including APS (Analog Protection Sys=
tem)
- uint16_t reserved1 : 16; // Reserved
- uint32_t vobu_uop_ctl : 32; // bitmask for prohibited user operations
- uint32_t vobu_s_ptm : 32; // Vobu Start Presentation Time (90KHz clk)
- uint32_t vobu_e_ptm : 32; // Vobu End Presentation Time (PTM)
- uint32_t vobu_se_e_ptm : 32; // End PTM of VOBU if Sequence_End_Code
- uint32_t c_eltm : 32; // Cell elapsed time (BCD)
- uint8_t vobu_isrc[32]; // International Standard Recording Code (roy=
alty management)
- uint32_t nsml_agli_dsta[9]; // Non-seamless angle 1 relative offset to=
VOBU for CURRENT ILVU=20
- uint16_t hli_ss; // Highlight status (lower 2 bits only)
- uint32_t hli_s_ptm; // Highlight start time
- uint32_t hli_e_ptm; // Highlight end time
- uint32_t btn_sl_e_ptm; // Button selection end time (ignore user afte=
r this)
- uint16_t btn_md; // 4 nibbles which describe the grouping of the but=
tons
- uint8_t btn_sn; // Starting button number
- uint8_t btn_ns; // Number of buttons
- uint8_t nsl_btn_ns; // Number of numerically selected buttons
- uint8_t reserved2; // Reserved
- uint8_t fosl_btnn; // Force select button number
- uint8_t foac_btnn; // Force action button number
- uint32_t btn_coli[3][2]; // Selection and action color and contrast va=
lues
- btni btnit[36];
-} nav_pci_gi;
-
-typedef struct {
- uint32_t nv_pck_scr : 32; // System clock reference
- uint32_t nv_pck_lbn : 32; // Logical Block Number (sector) of this blo=
ck
- uint32_t vobu_ea : 32; // VOBU end address - relative offset to last s=
ector of VOBU
- uint32_t vobu_1stref_ea : 32; // First reference frame end block, relat=
ive - used for fast playing
- uint32_t vobu_2ndref_ea : 32; // Second reference frame end block, rela=
tive - used for fast playing
- uint32_t vobu_3rdref_ea : 32; // Third reference frame end block, relat=
ive - used for fast playing
- uint16_t vobu_vob_idn : 16; // VOB number
- uint8_t reserved : 8; // Reserved
- uint8_t vobu_c_idn : 8; // CELL number within VOB
- uint32_t c_eltm : 32; // Cell elapsed time (BCD)
-} nav_dsi_gi;
-
-typedef struct {
- uint8_t PES_scrambling_control : 2;
- uint8_t PES_priority : 1;
- uint8_t data_alignment_indicator : 1;
- uint8_t copyright : 1;
- uint8_t original_or_copy : 1;
- uint8_t PTS_flag : 1;
- uint8_t DTS_flag : 1;
- uint8_t ESCR_flag : 1;
- uint8_t ES_rate_flag : 1;
- uint8_t DSM_trick_mode_flag : 1;
- uint8_t additionnal_copy_info_flag : 1;
- uint8_t PES_CRC_flag : 1;
- uint8_t PES_extension_flag : 1;
- uint8_t PES_header_data_len;
-} PES_header_data_content;
-
-typedef struct {
- uint32_t identifier;
- uint64_t scr;
- uint16_t scr_ext;
- uint32_t program_mux_rate;
- int64_t pts;
- int64_t dts;
-} packet_info;
-
-// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
-// Exception
-// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
-
-class Exception
-{
-public:
- Exception() {}
- Exception(const char* message)
- {
- strcpy(m_message, message);
- }
-
- char m_message[512];
-};
-
-class VobParserException : public Exception
-{
-public:
- VobParserException() : Exception() {}
- VobParserException(const char* message) : Exception(message) {}
-};
-
-class VobParserFileNotFoundException : public VobParserException
-{
-public:
- VobParserFileNotFoundException(const char* filename)
- {
- sprintf(m_message,"File not found exception : %s", filename);
- }
-};
-
-class VobParserInvalidPacketException : public VobParserException
-{
-public:
- VobParserInvalidPacketException(int offset)
- {
- sprintf(m_message,"Invalid packet exception @LBA %d", offset);
- }
-};
-
-// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
-// Demuxer class
-// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
-
-class Demuxer
-{
-public:
- virtual ~Demuxer() {}
- virtual void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start=
_time, uint32_t end_time, const QString & debug) =3D 0;
- virtual void SetBoundary(uint32_t start_timecode, uint32_t duration, co=
nst CellListElem *cell) =3D 0;
-};
-
-// ---------------------------------------------------------------------=
-------
-
-class Writer : public Demuxer
-{
-public:
- Writer(const TCHAR* filenamePrefix, const TCHAR* extension, double fps)
- :m_file(NULL)
- ,m_TimecodeFile(NULL)
- ,m_fps(fps)
- {
-#ifdef UNICODE
- m_Filename =3D QString::fromUtf16(reinterpret_cast<const ushort*>(file=
namePrefix));
- m_fileExtension =3D QString::fromUtf16(reinterpret_cast<const ushort*>=
(extension));
-#else
- m_Filename =3D filenamePrefix;
- m_fileExtension =3D extension;
-#endif
- }
-
- virtual ~Writer()
- {
- if(m_file)
- {
- fclose(m_file);
- }
- if (m_TimecodeFile)
- fclose(m_TimecodeFile);
- }
-
- virtual void Write(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug)
- {
- m_file =3D OpenOuputFile();
- WriteTimecodeInfo(start_time, end_time, ftell(m_file), debug);
- fwrite(buff, 1, size, m_file);
- }
-
- bool FileExists() const {
- return m_file !=3D NULL;
- }
-
-protected:
- inline FILE* GetTimecodeFile()
- {
- if (!m_TimecodeFile)
- {
- QString m_filename =3D QString("%1_%2.tmc").arg(m_Filename).arg(m_fil=
eExtension);
-#ifdef UNICODE
- const wchar_t *name =3D reinterpret_cast<const wchar_t*>(m_filename.u=
tf16());
- m_TimecodeFile =3D _tfopen(name, _T("w"));
-#else
- m_TimecodeFile =3D fopen(qPrintable(m_filename),"w");
-#endif
- fwrite("# timecode format v3\n", 1, 21, m_TimecodeFile);
- fprintf(m_TimecodeFile, "assume %lf\n", m_fps);
- }
- return m_TimecodeFile;
- }
-
- inline FILE* OpenOuputFile()
- {
- if(!m_file)
- {
- QString m_filename =3D QString("%1.%2").arg(m_Filename).arg(m_fileExt=
ension);
-#ifdef UNICODE
- const wchar_t *name =3D reinterpret_cast<const wchar_t*>(m_filename.u=
tf16());
- m_file =3D _tfopen(name, _T("wb"));
-#else
- m_file =3D fopen(qPrintable(m_filename),"wb");
-#endif
- }
- return m_file;
- }
-
- QString m_Filename;
- QString m_fileExtension;
- FILE* m_file;
- FILE* m_TimecodeFile;
- double m_fps;
-
- virtual void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, =
uint64_t filepos, const QString& debug) =3D 0;
-};
-
-// ---------------------------------------------------------------------=
-------
-
-class VideoDemuxWriter : public Writer
-{
-public:
- VideoDemuxWriter(const TCHAR* filenamePrefix, double fps)
- :Writer(filenamePrefix, _T("m2v"), fps)=20
- ,m_end_timecode(0)
- ,m_last_start_timecode(0)
- ,m_last_end_timecode(0)
- ,m_is_still(false)
- ,m_parser(NULL)
- {}
- void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug);
- void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
- ~VideoDemuxWriter();
-protected:
- void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, uint64_t=
filepos, const QString& debug);
- uint32_t m_start_timecode;
- uint32_t m_end_timecode;
- uint32_t m_last_start_timecode;
- uint32_t m_last_end_timecode;
- bool m_is_still;
-
- M2VParser * m_parser;
-};
-
-// ---------------------------------------------------------------------=
-------
-
-class AC3DemuxWriter : public Writer
-{
-public:
- AC3DemuxWriter(const TCHAR* filenamePrefix, const uint8_t streamID)
- :Writer(filenamePrefix, _T("ac3"), 0.0)
- ,m_streamID(streamID)
- ,m_end_timecode(0)
- ,m_last_start_timecode(0)
- ,m_last_end_timecode(0)
- {}
- ~AC3DemuxWriter();
- void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug)
- {
- Write(buff,size, start_time, end_time, debug);
- }
- void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
-private:
- uint8_t m_streamID;
-protected:
- void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, uint64_t=
filepos, const QString& debug);
- uint32_t m_start_timecode;
- uint32_t m_end_timecode;
- uint32_t m_last_start_timecode;
- uint32_t m_last_end_timecode;
-};
-
-// ---------------------------------------------------------------------=
-------
-
-class DTSDemuxWriter : public Writer
-{
-public:
- DTSDemuxWriter(const TCHAR* filenamePrefix, const uint8_t streamID)
- :Writer(filenamePrefix, _T("dts"),0.0)
- ,m_streamID(streamID)
- ,m_end_timecode(0)
- ,m_last_start_timecode(0)
- ,m_last_end_timecode(0)
- {}
- ~DTSDemuxWriter();
- void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug)
- {
- Write(buff,size, start_time, end_time, debug);
- }
- void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
-private:
- uint8_t m_streamID;
-protected:
- void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, uint64_t=
filepos, const QString& debug);
- uint32_t m_start_timecode;
- uint32_t m_end_timecode;
- uint32_t m_last_start_timecode;
- uint32_t m_last_end_timecode;
-};
-
-// ---------------------------------------------------------------------=
-------
-
-class WavWriter : public Writer
-{
- public:
- WavWriter(const TCHAR* filenamePrefix, double fps, uint32_t sample_rat=
e, uint8_t bit_depth, uint8_t channel_nb)
- :Writer(filenamePrefix, _T("wav"), fps)
- ,m_sample_rate(sample_rate)
- ,m_bit_depth(bit_depth)
- ,m_channel_nb(channel_nb)
- {}
- ~WavWriter();
- void Write(uint8_t* buff, uint32_t size, uint32_t start_time, uint32_t=
end_time, const QString& debug);
- protected:
- uint32_t m_sample_rate;
- uint8_t m_bit_depth, m_channel_nb;
- size_t m_size_position1,m_size_position2, m_size;
-};
-
-class LPCMDemuxWriter : public WavWriter
-{
-public:
- LPCMDemuxWriter(const TCHAR* filenamePrefix, const uint8_t streamID, ui=
nt32_t sample_rate, uint8_t bit_depth, uint8_t channel_nb)
- :WavWriter(filenamePrefix,0.0, sample_rate, bit_depth, channel_nb)
- ,m_streamID(streamID)
- ,m_end_timecode(0)
- ,m_last_start_timecode(0)
- ,m_last_end_timecode(0)
- {}
- ~LPCMDemuxWriter();
- void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug)
- {
- Write(buff,size, start_time, end_time, debug);
- }
- void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
-private:
- uint8_t m_streamID;
-protected:
- void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, uint64_t=
filepos, const QString& debug);
- uint32_t m_start_timecode;
- uint32_t m_end_timecode;
- uint32_t m_last_start_timecode;
- uint32_t m_last_end_timecode;
-};
-
-// ---------------------------------------------------------------------=
-------
-
-class MPADemuxWriter : public Writer
-{
-public:
- MPADemuxWriter(const TCHAR* filenamePrefix, const uint8_t streamID) :
- Writer(filenamePrefix, _T("mpa"),0.0), m_streamID(streamID) {}
- void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug)
- {
- Write(buff,size, start_time, end_time, debug);
- }
- void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
-private:
- uint8_t m_streamID;
-protected:
- void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, uint64_t=
filepos, const QString& debug);
-};
-
-// ---------------------------------------------------------------------=
-------
-
-class SubDemuxWriter : public Writer
-{
-public:
- SubDemuxWriter(const TCHAR* filenamePrefix, const uint8_t streamID, uin=
t16_t width, uint16_t height, const uint32_t * palette, uint16_t language=
, bool forced)
- :Writer(filenamePrefix, _T("sub"),0.0)
- ,m_width(width)
- ,m_height(height)
- ,m_forced(forced)
- ,m_palette(palette)
- ,m_language(language)
- ,m_start_timecode(0)
- ,m_end_timecode(0)
- {}
- void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug)
- {
- Write(buff,size, start_time, end_time, debug);
- }
- void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
-protected:
- void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, uint64_t=
filepos, const QString& debug);
-private:
- uint16_t m_width;
- uint16_t m_height;
- bool m_forced;
- const uint32_t * m_palette;
- uint16_t m_language;
- uint32_t m_start_timecode;
- uint32_t m_end_timecode;
-};
-
-// ---------------------------------------------------------------------=
-------
-
-class BtnDemuxWriter : public Writer
-{
-public:
- BtnDemuxWriter(const TCHAR* filenamePrefix, uint16_t width, uint16_t he=
ight)
- :Writer(filenamePrefix, _T("btn"),0.0)
- ,m_width(width)
- ,m_height(height)
- ,m_end_timecode(0)
- ,m_last_start_timecode(0)
- ,m_last_end_timecode(0)
- {}
- void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug)
- {
- if (!m_file) {
- m_file =3D OpenOuputFile();
- fwrite("butonDVD", 8, 1, m_file);
- uint8_t _tmp[4];
- // width & height
- _tmp[0] =3D m_width >> 8;
- _tmp[1] =3D m_width & 0xFF;
- _tmp[2] =3D m_height >> 8;
- _tmp[3] =3D m_height & 0xFF;
- fwrite(_tmp, 4, 1, m_file);
- // pad to 16 bytes
- _tmp[0] =3D 0;
- _tmp[1] =3D 0;
- _tmp[2] =3D 0;
- _tmp[3] =3D 0;
- fwrite(_tmp, 4, 1, m_file);
- }
- Write(buff,size, start_time, end_time, debug);
- }
- void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
- ~BtnDemuxWriter();
-protected:
- void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, uint64_t=
filepos, const QString& debug);
- uint16_t m_width, m_height;
- uint32_t m_start_timecode;
- uint32_t m_end_timecode;
- uint32_t m_last_start_timecode;
- uint32_t m_last_end_timecode;
-};
-
-// ---------------------------------------------------------------------=
-------
-
-class CompositeDemuxWriter
-{
-public:
- CompositeDemuxWriter();
- ~CompositeDemuxWriter();
- bool AddDemuxer(uint8_t streamID, Writer * demuxer, QString& CommandLin=
e);
- void ProcessStream(int streamID, uint8_t* buff, uint32_t size, int32_t =
start_time, int32_t end_time, const QString& debug);
- void Reset();
- void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
-
- bool FileExists(uint8_t streamID) const {
- return (m_muxers[streamID] !=3D NULL && m_muxers[streamID]->FileExists=
());
- }
-
- const QString& GetString(uint8_t streamID) const {
- return m_strings[streamID];
- }
-
-protected:
- Writer * m_muxers[256];
- QString m_strings[256];
-};
-
-// ---------------------------------------------------------------------=
-------
-
-struct stream_info_node
-{
- uint8_t id;
- uint32_t type;
- stream_info_node* next;
-};
-
-
-// ---------------------------------------------------------------------=
-------
-
-typedef struct=20
-{
- int x1;
- int y1;
- int x2;
- int y2;
-} ButtonListElem;
-
-typedef QList<ButtonListElem *> ButtonListType;
-
-
-// ---------------------------------------------------------------------=
-------
-
-// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
-// Main class
-// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
-
-class IFOFile;
-class CellsListType;
-
-class VobParser
-{
-public:
- VobParser(const char* dirname, int16_t title, bool menu);
- void Reset();
- bool ParseNextPacket(const CellsListType & Cells);
- uint32_t GetPacketCount() const;
- uint32_t GetPacketIndex() const;
- char* GetCurrentPacketData() const;
- inline uint8_t GetVobID() const;
- inline uint8_t GetCellID() const;
- bool IsNewCell();
- virtual ~VobParser();
- inline CompositeDemuxWriter & GetDemuxer()
- {
- return m_demuxer;
- }
- uint32_t GetCellSCR() const;
-
- nav_dsi_gi m_dsi;
- nav_pci_gi m_pci;
- packet_info pktinfo;
- PES_header_data_content pes_header_data_content;
-protected:
- void ParseNavPacket();
- void ParseAudioPacket(int StreamID);
- void ParseVideoPacket();
- void ParsePrivateStream1();
-
- void ParseSCR();
- void ParsePCI();
- void ParseDSI();
- void ParsePESHeaderDataContentFlag();
- void ParsePESHeaderData();
- uint64_t ParsePTS_DTS();
-
- // Buffer management
- bool AvailablePacketData() const;
- bool GetNextPacket();
- uint32_t GetNext32Bits();
- uint16_t GetNext16Bits();
- uint8_t GetNext8Bits();
- void SkipNBytes(int n);
-
-private:
- int16_t m_title;
- dvd_reader_t *m_dvdhandle;
- dvd_file_t *m_stream;
- bool m_language;
- uint8_t m_buff[DVD_VIDEO_LB_LEN];
- uint32_t m_index;
- uint32_t m_pktindex;
- uint32_t m_pktcount;
- bool m_bFirstPacket;
- int64_t m_startpts;
- int64_t m_startdts;
- uint16_t m_pci_position;
- uint16_t m_pci_size;
- uint32_t m_pci_vob_timecode_offset;
-=09
- CompositeDemuxWriter m_demuxer;
-
- int previous_vobid, previous_cellid;
-};
-
-// ---------------------------------------------------------------------=
-------
-#endif
-// ---------------------------------------------------------------------=
-------
+// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
+// VOBParser class
+// Copyright =A9 2002 : Christophe PARIS ([email protected])
+// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
+#ifndef _VOB_PARSER_H_
+#define _VOB_PARSER_H_
+// ---------------------------------------------------------------------=
-------
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include <stdint.h>
+
+#define HAVE_INTTYPES_H
+#include "dvdread/ifo_read.h"
+#include "mpegparser/M2VParser.h"
+
+#include <QList>
+#include <QString>
+// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
+
+#define VIDEO_STREAM_TYPE 0x01
+#define AUDIO_STREAM_TYPE 0x02
+#define SUB_STREAM_TYPE 0x04
+
+#define AC3_STREAM_TYPE (AUDIO_STREAM_TYPE | 0x08)
+#define DTS_STREAM_TYPE (AUDIO_STREAM_TYPE | 0x10)
+#define PCM_STREAM_TYPE (AUDIO_STREAM_TYPE | 0x20)
+
+
+#define AUDIO_STREAM 0xC0
+#define VIDEO_STREAM 0xE0
+
+#define SUBSTREAM_PCI 0x00
+#define SUBSTREAM_DSI 0x01
+
+#define SUBSTREAM_SUB_LOW 0x20
+#define SUBSTREAM_SUB_HIGH (SUBSTREAM_SUB_LOW + 32)
+
+#define SUBSTREAM_AC3_LOW 0x80
+#define SUBSTREAM_AC3_HIGH (SUBSTREAM_AC3_LOW + 8)
+
+#define SUBSTREAM_DTS_LOW 0x88
+#define SUBSTREAM_DTS_HIGH (SUBSTREAM_DTS_LOW + 8)
+
+#define SUBSTREAM_PCM_LOW 0xA0
+#define SUBSTREAM_PCM_HIGH (SUBSTREAM_PCM_LOW + 8)
+
+// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
+// Type
+// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
+
+typedef struct=20
+{
+ unsigned int vobid;
+ unsigned int cellid;
+ unsigned int start_frame;
+ unsigned int end_frame;
+ unsigned int nb_frames;
+ uint32_t start_sector;
+ uint32_t last_sector;
+ double frame_dur;
+ uint64_t start_time;
+ uint64_t duration;
+ bool isStill;
+ bool selected;
+ bool found;
+ //ButtonsListType btt_list;
+} CellListElem;
+
+typedef struct {
+ uint16_t start_x; // Starting X position
+ uint16_t start_y; // Starting Y position
+ uint16_t end_x; // Ending X position
+ uint16_t end_y; // Ending Y position
+ uint8_t btn_coln; // Button color table number, 0=3Dnone
+ uint8_t auto_action_flag; // Auto Action flag 0=3Dno, 1=3Dyes
+ uint8_t up; // Button number to select if "Up" is pressed
+ uint8_t down; // Button number to select if "Down" is pressed
+ uint8_t left; // Button number to select if "Left" is pressed
+ uint8_t right; // Button number to select if "Right" is pressed
+ uint8_t vm_cmd[8]; // One vm command to be executed on "action" of t=
his button
+} btni;
+
+typedef struct {
+ uint32_t nv_pck_lbn : 32; // Logical Block Number (sector) of this blo=
ck
+ uint16_t vobu_cat : 16; // Flags, including APS (Analog Protection Sys=
tem)
+ uint16_t reserved1 : 16; // Reserved
+ uint32_t vobu_uop_ctl : 32; // bitmask for prohibited user operations
+ uint32_t vobu_s_ptm : 32; // Vobu Start Presentation Time (90KHz clk)
+ uint32_t vobu_e_ptm : 32; // Vobu End Presentation Time (PTM)
+ uint32_t vobu_se_e_ptm : 32; // End PTM of VOBU if Sequence_End_Code
+ uint32_t c_eltm : 32; // Cell elapsed time (BCD)
+ uint8_t vobu_isrc[32]; // International Standard Recording Code (roy=
alty management)
+ uint32_t nsml_agli_dsta[9]; // Non-seamless angle 1 relative offset to=
VOBU for CURRENT ILVU=20
+ uint16_t hli_ss; // Highlight status (lower 2 bits only)
+ uint32_t hli_s_ptm; // Highlight start time
+ uint32_t hli_e_ptm; // Highlight end time
+ uint32_t btn_sl_e_ptm; // Button selection end time (ignore user afte=
r this)
+ uint16_t btn_md; // 4 nibbles which describe the grouping of the but=
tons
+ uint8_t btn_sn; // Starting button number
+ uint8_t btn_ns; // Number of buttons
+ uint8_t nsl_btn_ns; // Number of numerically selected buttons
+ uint8_t reserved2; // Reserved
+ uint8_t fosl_btnn; // Force select button number
+ uint8_t foac_btnn; // Force action button number
+ uint32_t btn_coli[3][2]; // Selection and action color and contrast va=
lues
+ btni btnit[36];
+} nav_pci_gi;
+
+typedef struct {
+ uint32_t nv_pck_scr : 32; // System clock reference
+ uint32_t nv_pck_lbn : 32; // Logical Block Number (sector) of this blo=
ck
+ uint32_t vobu_ea : 32; // VOBU end address - relative offset to last s=
ector of VOBU
+ uint32_t vobu_1stref_ea : 32; // First reference frame end block, relat=
ive - used for fast playing
+ uint32_t vobu_2ndref_ea : 32; // Second reference frame end block, rela=
tive - used for fast playing
+ uint32_t vobu_3rdref_ea : 32; // Third reference frame end block, relat=
ive - used for fast playing
+ uint16_t vobu_vob_idn : 16; // VOB number
+ uint8_t reserved : 8; // Reserved
+ uint8_t vobu_c_idn : 8; // CELL number within VOB
+ uint32_t c_eltm : 32; // Cell elapsed time (BCD)
+} nav_dsi_gi;
+
+typedef struct {
+ uint8_t PES_scrambling_control : 2;
+ uint8_t PES_priority : 1;
+ uint8_t data_alignment_indicator : 1;
+ uint8_t copyright : 1;
+ uint8_t original_or_copy : 1;
+ uint8_t PTS_flag : 1;
+ uint8_t DTS_flag : 1;
+ uint8_t ESCR_flag : 1;
+ uint8_t ES_rate_flag : 1;
+ uint8_t DSM_trick_mode_flag : 1;
+ uint8_t additionnal_copy_info_flag : 1;
+ uint8_t PES_CRC_flag : 1;
+ uint8_t PES_extension_flag : 1;
+ uint8_t PES_header_data_len;
+} PES_header_data_content;
+
+typedef struct {
+ uint32_t identifier;
+ uint64_t scr;
+ uint16_t scr_ext;
+ uint32_t program_mux_rate;
+ int64_t pts;
+ int64_t dts;
+} packet_info;
+
+// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
+// Exception
+// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
+
+class Exception
+{
+public:
+ Exception() {}
+ Exception(const char* message)
+ {
+ strcpy(m_message, message);
+ }
+
+ char m_message[512];
+};
+
+class VobParserException : public Exception
+{
+public:
+ VobParserException() : Exception() {}
+ VobParserException(const char* message) : Exception(message) {}
+};
+
+class VobParserFileNotFoundException : public VobParserException
+{
+public:
+ VobParserFileNotFoundException(const char* filename)
+ {
+ sprintf(m_message,"File not found exception : %s", filename);
+ }
+};
+
+class VobParserInvalidPacketException : public VobParserException
+{
+public:
+ VobParserInvalidPacketException(int offset)
+ {
+ sprintf(m_message,"Invalid packet exception @LBA %d", offset);
+ }
+};
+
+// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
+// Demuxer class
+// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
+
+class Demuxer
+{
+public:
+ virtual ~Demuxer() {}
+ virtual void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start=
_time, uint32_t end_time, const QString & debug) =3D 0;
+ virtual void SetBoundary(uint32_t start_timecode, uint32_t duration, co=
nst CellListElem *cell) =3D 0;
+};
+
+// ---------------------------------------------------------------------=
-------
+
+class Writer : public Demuxer
+{
+public:
+ Writer(const TCHAR* filenamePrefix, const TCHAR* extension, double fps)
+ :m_file(NULL)
+ ,m_TimecodeFile(NULL)
+ ,m_fps(fps)
+ {
+#ifdef UNICODE
+ m_Filename =3D QString::fromUtf16(reinterpret_cast<const ushort*>(file=
namePrefix));
+ m_fileExtension =3D QString::fromUtf16(reinterpret_cast<const ushort*>=
(extension));
+#else
+ m_Filename =3D filenamePrefix;
+ m_fileExtension =3D extension;
+#endif
+ }
+
+ virtual ~Writer()
+ {
+ if(m_file)
+ {
+ fclose(m_file);
+ }
+ if (m_TimecodeFile)
+ fclose(m_TimecodeFile);
+ }
+
+ virtual void Write(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug)
+ {
+ m_file =3D OpenOuputFile();
+ WriteTimecodeInfo(start_time, end_time, ftell(m_file), debug);
+ fwrite(buff, 1, size, m_file);
+ }
+
+ bool FileExists() const {
+ return m_file !=3D NULL;
+ }
+
+protected:
+ inline FILE* GetTimecodeFile()
+ {
+ if (!m_TimecodeFile)
+ {
+ QString m_filename =3D QString("%1_%2.tmc").arg(m_Filename).arg(m_fil=
eExtension);
+#ifdef UNICODE
+ const wchar_t *name =3D reinterpret_cast<const wchar_t*>(m_filename.u=
tf16());
+ m_TimecodeFile =3D _tfopen(name, _T("w"));
+#else
+ m_TimecodeFile =3D fopen(qPrintable(m_filename),"w");
+#endif
+ fwrite("# timecode format v3\n", 1, 21, m_TimecodeFile);
+ fprintf(m_TimecodeFile, "assume %lf\n", m_fps);
+ }
+ return m_TimecodeFile;
+ }
+
+ inline FILE* OpenOuputFile()
+ {
+ if(!m_file)
+ {
+ QString m_filename =3D QString("%1.%2").arg(m_Filename).arg(m_fileExt=
ension);
+#ifdef UNICODE
+ const wchar_t *name =3D reinterpret_cast<const wchar_t*>(m_filename.u=
tf16());
+ m_file =3D _tfopen(name, _T("wb"));
+#else
+ m_file =3D fopen(qPrintable(m_filename),"wb");
+#endif
+ }
+ return m_file;
+ }
+
+ QString m_Filename;
+ QString m_fileExtension;
+ FILE* m_file;
+ FILE* m_TimecodeFile;
+ double m_fps;
+
+ virtual void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, =
uint64_t filepos, const QString& debug) =3D 0;
+};
+
+// ---------------------------------------------------------------------=
-------
+
+class VideoDemuxWriter : public Writer
+{
+public:
+ VideoDemuxWriter(const TCHAR* filenamePrefix, double fps)
+ :Writer(filenamePrefix, _T("m2v"), fps)=20
+ ,m_end_timecode(0)
+ ,m_last_start_timecode(0)
+ ,m_last_end_timecode(0)
+ ,m_is_still(false)
+ ,m_parser(NULL)
+ {}
+ void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug);
+ void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
+ ~VideoDemuxWriter();
+protected:
+ void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, uint64_t=
filepos, const QString& debug);
+ uint32_t m_start_timecode;
+ uint32_t m_end_timecode;
+ uint32_t m_last_start_timecode;
+ uint32_t m_last_end_timecode;
+ bool m_is_still;
+
+ M2VParser * m_parser;
+};
+
+// ---------------------------------------------------------------------=
-------
+
+class AC3DemuxWriter : public Writer
+{
+public:
+ AC3DemuxWriter(const TCHAR* filenamePrefix, const uint8_t streamID)
+ :Writer(filenamePrefix, _T("ac3"), 0.0)
+ ,m_streamID(streamID)
+ ,m_end_timecode(0)
+ ,m_last_start_timecode(0)
+ ,m_last_end_timecode(0)
+ {}
+ ~AC3DemuxWriter();
+ void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug)
+ {
+ Write(buff,size, start_time, end_time, debug);
+ }
+ void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
+private:
+ uint8_t m_streamID;
+protected:
+ void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, uint64_t=
filepos, const QString& debug);
+ uint32_t m_start_timecode;
+ uint32_t m_end_timecode;
+ uint32_t m_last_start_timecode;
+ uint32_t m_last_end_timecode;
+};
+
+// ---------------------------------------------------------------------=
-------
+
+class DTSDemuxWriter : public Writer
+{
+public:
+ DTSDemuxWriter(const TCHAR* filenamePrefix, const uint8_t streamID)
+ :Writer(filenamePrefix, _T("dts"),0.0)
+ ,m_streamID(streamID)
+ ,m_end_timecode(0)
+ ,m_last_start_timecode(0)
+ ,m_last_end_timecode(0)
+ {}
+ ~DTSDemuxWriter();
+ void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug)
+ {
+ Write(buff,size, start_time, end_time, debug);
+ }
+ void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
+private:
+ uint8_t m_streamID;
+protected:
+ void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, uint64_t=
filepos, const QString& debug);
+ uint32_t m_start_timecode;
+ uint32_t m_end_timecode;
+ uint32_t m_last_start_timecode;
+ uint32_t m_last_end_timecode;
+};
+
+// ---------------------------------------------------------------------=
-------
+
+class WavWriter : public Writer
+{
+ public:
+ WavWriter(const TCHAR* filenamePrefix, double fps, uint32_t sample_rat=
e, uint8_t bit_depth, uint8_t channel_nb)
+ :Writer(filenamePrefix, _T("wav"), fps)
+ ,m_sample_rate(sample_rate)
+ ,m_bit_depth(bit_depth)
+ ,m_channel_nb(channel_nb)
+ {}
+ ~WavWriter();
+ void Write(uint8_t* buff, uint32_t size, uint32_t start_time, uint32_t=
end_time, const QString& debug);
+ protected:
+ uint32_t m_sample_rate;
+ uint8_t m_bit_depth, m_channel_nb;
+ size_t m_size_position1,m_size_position2, m_size;
+};
+
+class LPCMDemuxWriter : public WavWriter
+{
+public:
+ LPCMDemuxWriter(const TCHAR* filenamePrefix, const uint8_t streamID, ui=
nt32_t sample_rate, uint8_t bit_depth, uint8_t channel_nb)
+ :WavWriter(filenamePrefix,0.0, sample_rate, bit_depth, channel_nb)
+ ,m_streamID(streamID)
+ ,m_end_timecode(0)
+ ,m_last_start_timecode(0)
+ ,m_last_end_timecode(0)
+ {}
+ ~LPCMDemuxWriter();
+ void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug)
+ {
+ Write(buff,size, start_time, end_time, debug);
+ }
+ void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
+private:
+ uint8_t m_streamID;
+protected:
+ void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, uint64_t=
filepos, const QString& debug);
+ uint32_t m_start_timecode;
+ uint32_t m_end_timecode;
+ uint32_t m_last_start_timecode;
+ uint32_t m_last_end_timecode;
+};
+
+// ---------------------------------------------------------------------=
-------
+
+class MPADemuxWriter : public Writer
+{
+public:
+ MPADemuxWriter(const TCHAR* filenamePrefix, const uint8_t streamID) :
+ Writer(filenamePrefix, _T("mpa"),0.0), m_streamID(streamID) {}
+ void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug)
+ {
+ Write(buff,size, start_time, end_time, debug);
+ }
+ void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
+private:
+ uint8_t m_streamID;
+protected:
+ void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, uint64_t=
filepos, const QString& debug);
+};
+
+// ---------------------------------------------------------------------=
-------
+
+class SubDemuxWriter : public Writer
+{
+public:
+ SubDemuxWriter(const TCHAR* filenamePrefix, const uint8_t streamID, uin=
t16_t width, uint16_t height, const uint32_t * palette, uint16_t language=
, bool forced)
+ :Writer(filenamePrefix, _T("sub"),0.0)
+ ,m_width(width)
+ ,m_height(height)
+ ,m_forced(forced)
+ ,m_palette(palette)
+ ,m_language(language)
+ ,m_start_timecode(0)
+ ,m_end_timecode(0)
+ {}
+ void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug)
+ {
+ Write(buff,size, start_time, end_time, debug);
+ }
+ void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
+protected:
+ void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, uint64_t=
filepos, const QString& debug);
+private:
+ uint16_t m_width;
+ uint16_t m_height;
+ bool m_forced;
+ const uint32_t * m_palette;
+ uint16_t m_language;
+ uint32_t m_start_timecode;
+ uint32_t m_end_timecode;
+};
+
+// ---------------------------------------------------------------------=
-------
+
+class BtnDemuxWriter : public Writer
+{
+public:
+ BtnDemuxWriter(const TCHAR* filenamePrefix, uint16_t width, uint16_t he=
ight)
+ :Writer(filenamePrefix, _T("btn"),0.0)
+ ,m_width(width)
+ ,m_height(height)
+ ,m_end_timecode(0)
+ ,m_last_start_timecode(0)
+ ,m_last_end_timecode(0)
+ {}
+ void ProcessStream(uint8_t* buff, uint32_t size, uint32_t start_time, u=
int32_t end_time, const QString& debug)
+ {
+ if (!m_file) {
+ m_file =3D OpenOuputFile();
+ fwrite("butonDVD", 8, 1, m_file);
+ uint8_t _tmp[4];
+ // width & height
+ _tmp[0] =3D m_width >> 8;
+ _tmp[1] =3D m_width & 0xFF;
+ _tmp[2] =3D m_height >> 8;
+ _tmp[3] =3D m_height & 0xFF;
+ fwrite(_tmp, 4, 1, m_file);
+ // pad to 16 bytes
+ _tmp[0] =3D 0;
+ _tmp[1] =3D 0;
+ _tmp[2] =3D 0;
+ _tmp[3] =3D 0;
+ fwrite(_tmp, 4, 1, m_file);
+ }
+ Write(buff,size, start_time, end_time, debug);
+ }
+ void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
+ ~BtnDemuxWriter();
+protected:
+ void WriteTimecodeInfo(uint32_t start_time, uint32_t end_time, uint64_t=
filepos, const QString& debug);
+ uint16_t m_width, m_height;
+ uint32_t m_start_timecode;
+ uint32_t m_end_timecode;
+ uint32_t m_last_start_timecode;
+ uint32_t m_last_end_timecode;
+};
+
+// ---------------------------------------------------------------------=
-------
+
+class CompositeDemuxWriter
+{
+public:
+ CompositeDemuxWriter();
+ ~CompositeDemuxWriter();
+ bool AddDemuxer(uint8_t streamID, Writer * demuxer, QString& CommandLin=
e);
+ void ProcessStream(int streamID, uint8_t* buff, uint32_t size, int32_t =
start_time, int32_t end_time, const QString& debug);
+ void Reset();
+ void SetBoundary(uint32_t start_timecode, uint32_t duration, const Cell=
ListElem *cell);
+
+ bool FileExists(uint8_t streamID) const {
+ return (m_muxers[streamID] !=3D NULL && m_muxers[streamID]->FileExists=
());
+ }
+
+ const QString& GetString(uint8_t streamID) const {
+ return m_strings[streamID];
+ }
+
+protected:
+ Writer * m_muxers[256];
+ QString m_strings[256];
+};
+
+// ---------------------------------------------------------------------=
-------
+
+struct stream_info_node
+{
+ uint8_t id;
+ uint32_t type;
+ stream_info_node* next;
+};
+
+
+// ---------------------------------------------------------------------=
-------
+
+typedef struct=20
+{
+ int x1;
+ int y1;
+ int x2;
+ int y2;
+} ButtonListElem;
+
+typedef QList<ButtonListElem *> ButtonListType;
+
+
+// ---------------------------------------------------------------------=
-------
+
+// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
+// Main class
+// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
+
+class IFOFile;
+class CellsListType;
+
+class VobParser
+{
+public:
+ VobParser(const char* dirname, int16_t title, bool menu);
+ void Reset();
+ bool ParseNextPacket(const CellsListType & Cells);
+ uint32_t GetPacketCount() const;
+ uint32_t GetPacketIndex() const;
+ char* GetCurrentPacketData() const;
+ inline uint8_t GetVobID() const;
+ inline uint8_t GetCellID() const;
+ bool IsNewCell();
+ virtual ~VobParser();
+ inline CompositeDemuxWriter & GetDemuxer()
+ {
+ return m_demuxer;
+ }
+ uint32_t GetCellSCR() const;
+
+ nav_dsi_gi m_dsi;
+ nav_pci_gi m_pci;
+ packet_info pktinfo;
+ PES_header_data_content pes_header_data_content;
+protected:
+ void ParseNavPacket();
+ void ParseAudioPacket(int StreamID);
+ void ParseVideoPacket();
+ void ParsePrivateStream1();
+
+ void ParseSCR();
+ void ParsePCI();
+ void ParseDSI();
+ void ParsePESHeaderDataContentFlag();
+ void ParsePESHeaderData();
+ uint64_t ParsePTS_DTS();
+
+ // Buffer management
+ bool AvailablePacketData() const;
+ bool GetNextPacket();
+ uint32_t GetNext32Bits();
+ uint16_t GetNext16Bits();
+ uint8_t GetNext8Bits();
+ void SkipNBytes(int n);
+
+private:
+ int16_t m_title;
+ dvd_reader_t *m_dvdhandle;
+ dvd_file_t *m_stream;
+ bool m_language;
+ uint8_t m_buff[DVD_VIDEO_LB_LEN];
+ uint32_t m_index;
+ uint32_t m_pktindex;
+ uint32_t m_pktcount;
+ bool m_bFirstPacket;
+ int64_t m_startpts;
+ int64_t m_startdts;
+ uint16_t m_pci_position;
+ uint16_t m_pci_size;
+ uint32_t m_pci_vob_timecode_offset;
+=09
+ CompositeDemuxWriter m_demuxer;
+
+ int previous_vobid, previous_cellid;
+};
+
+// ---------------------------------------------------------------------=
-------
+#endif
+// ---------------------------------------------------------------------=
-------
Property changes on: trunk/DvdMenuXtractor/vobparser/VobParser.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/DvdMenuXtractor/vobparser/iso/iso_lang.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/DvdMenuXtractor/vobparser/vobparser.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/DvdMenuXtractor/vobparser/vobparser.proj 2007-02-17 10:34:40 UT=
C (rev 1276)
+++ trunk/DvdMenuXtractor/vobparser/vobparser.proj 2007-02-17 10:55:54 UT=
C (rev 1277)
@@ -1,14 +1,14 @@
-GROUP vobparser
-{
- SOURCE IFOContent.cpp
- SOURCE IFOFile.cpp
- SOURCE VobParser.cpp
- SOURCE iso/iso_lang.c
-
- HEADER IFOContent.h
- HEADER IFOFile.h
- HEADER VobParser.h
- HEADER iso/iso_lang.h
- =20
- INCLUDE ..
-}
+GROUP vobparser
+{
+ SOURCE IFOContent.cpp
+ SOURCE IFOFile.cpp
+ SOURCE VobParser.cpp
+ SOURCE iso/iso_lang.c
+
+ HEADER IFOContent.h
+ HEADER IFOFile.h
+ HEADER VobParser.h
+ HEADER iso/iso_lang.h
+ =20
+ INCLUDE ..
+}
Property changes on: trunk/DvdMenuXtractor/vobparser/vobparser.proj
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/ac3_input/ac3file.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/ac3_input/ac3frame.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/ac3_input/ac3iframe.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/ac3_input/c_types.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/avi_input/avilib.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/matroska_writer/matroska_writer.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/matroska_writer/matroska_writer_gui.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/mpa_input/c_types.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/mpa_input/mpafile.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/mpa_input/mpaframe.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/mpa_input/mpiframe.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/tinyXML/tinystr.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/tinyXML/tinyxml.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/wav_input/Config.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/wav_input/Endian.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/wav_input/FourCC.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/wav_input/Types.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/wav_input/c_types.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/wav_input/chunk.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/wav_input/fact.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/wav_input/fio.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/wav_input/format.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/wav_input/riff.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/wav_input/wav.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/LemAPI/wav_input/wav2mka.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/AviTagReader.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/AviTagReader.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/AviTagReader.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,71 +1,71 @@
-/*
- * Part of The TCMP Matroska CDL, and Matroska Shell Extension
- *
- * AviTagReader.h
- *
- * Copyright (C) Jory Stone - 2003
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file AviTagReader.h
- \version \$Id: AviTagReader.h,v 1.2 2003/10/05 23:58:05 jcsston Exp $
- \brief A AVI Tag Importer
- \author Jory Stone <jcsston @ toughguy.net>
-
-*/
-
-#ifndef _AVI_TAG_READER_H_
-#define _AVI_TAG_READER_H_
-
-#include "TagReader.h"
-#include <time.h>
-#include "MatroskaUtilsReader.h"
-
-using namespace MatroskaUtilsNamespace;
-
-struct iDivxTag {
- char Movie[32];
- char Author[28];
- char Year[4];
- char Comment[48];
- char Genre[3];
- char Rating;
- char Header[12];
-};
-
-struct AviTag {
- std::string id;
- std::string value;
-};
-
-class AviTagReader : public TagReader {
-public:
- AviTagReader(const JString &filename);
-
- void ReadFile(const JString &filename);
- bool HasTags();
- void ImportTags(MatroskaTagInfo *target);
-
-protected:
- int64 GetDate(const std::string &dateStr);
- JString m_AviFilename;
- std::vector<AviTag> m_Tags;
- iDivxTag m_DivxTag;
-};
-
-#endif // _AVI_TAG_READER_H_
+/*
+ * Part of The TCMP Matroska CDL, and Matroska Shell Extension
+ *
+ * AviTagReader.h
+ *
+ * Copyright (C) Jory Stone - 2003
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file AviTagReader.h
+ \version \$Id: AviTagReader.h,v 1.2 2003/10/05 23:58:05 jcsston Exp $
+ \brief A AVI Tag Importer
+ \author Jory Stone <jcsston @ toughguy.net>
+
+*/
+
+#ifndef _AVI_TAG_READER_H_
+#define _AVI_TAG_READER_H_
+
+#include "TagReader.h"
+#include <time.h>
+#include "MatroskaUtilsReader.h"
+
+using namespace MatroskaUtilsNamespace;
+
+struct iDivxTag {
+ char Movie[32];
+ char Author[28];
+ char Year[4];
+ char Comment[48];
+ char Genre[3];
+ char Rating;
+ char Header[12];
+};
+
+struct AviTag {
+ std::string id;
+ std::string value;
+};
+
+class AviTagReader : public TagReader {
+public:
+ AviTagReader(const JString &filename);
+
+ void ReadFile(const JString &filename);
+ bool HasTags();
+ void ImportTags(MatroskaTagInfo *target);
+
+protected:
+ int64 GetDate(const std::string &dateStr);
+ JString m_AviFilename;
+ std::vector<AviTag> m_Tags;
+ iDivxTag m_DivxTag;
+};
+
+#endif // _AVI_TAG_READER_H_
Property changes on: trunk/MatroskaUtils/AviTagReader.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/CFireRoutine.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/CFireRoutine.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/CFireRoutine.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,47 +1,47 @@
-// CFireRoutine.h: interface for the CFireRoutine class.
-//
-//////////////////////////////////////////////////////////////////////
-
-#if !defined(AFX_CFIREROUTINE_H__413FF819_B711_4B5A_8EC1_580A70862BE4__I=
NCLUDED_)
-#define AFX_CFIREROUTINE_H__413FF819_B711_4B5A_8EC1_580A70862BE4__INCLUD=
ED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-#include <Windows.h>
-
-class CFireRoutine =20
-{
-public:
- CFireRoutine();
- virtual ~CFireRoutine();
-
- // Functs (public)
-
- void InitFire();
- void ClrHotSpots();
- void InitPallette();
- void SetHotSpots();
- void Render(DWORD* pVideoMemory, int iwidth, int iheight);
- void MakeLines();
- unsigned char Average(int x, int y);
-
- // props
- int m_iFlameHeight;
- int m_iWidth;
- int m_iHeight;
- int m_iFireSource;//The y position for the lit spots
- int m_iFireChance;
- int m_iAvgFlameWidth;
- int m_iAlpha;
-
- COLORREF m_FireColors[4];
-
- BYTE* m_pFireBits;
- DWORD m_pPalletteBuffer[256];
- long* m_pYIndexes;
-
-
-};
-
-#endif // !defined(AFX_CFIREROUTINE_H__413FF819_B711_4B5A_8EC1_580A70862=
BE4__INCLUDED_)
+// CFireRoutine.h: interface for the CFireRoutine class.
+//
+//////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_CFIREROUTINE_H__413FF819_B711_4B5A_8EC1_580A70862BE4__I=
NCLUDED_)
+#define AFX_CFIREROUTINE_H__413FF819_B711_4B5A_8EC1_580A70862BE4__INCLUD=
ED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include <Windows.h>
+
+class CFireRoutine =20
+{
+public:
+ CFireRoutine();
+ virtual ~CFireRoutine();
+
+ // Functs (public)
+
+ void InitFire();
+ void ClrHotSpots();
+ void InitPallette();
+ void SetHotSpots();
+ void Render(DWORD* pVideoMemory, int iwidth, int iheight);
+ void MakeLines();
+ unsigned char Average(int x, int y);
+
+ // props
+ int m_iFlameHeight;
+ int m_iWidth;
+ int m_iHeight;
+ int m_iFireSource;//The y position for the lit spots
+ int m_iFireChance;
+ int m_iAvgFlameWidth;
+ int m_iAlpha;
+
+ COLORREF m_FireColors[4];
+
+ BYTE* m_pFireBits;
+ DWORD m_pPalletteBuffer[256];
+ long* m_pYIndexes;
+
+
+};
+
+#endif // !defined(AFX_CFIREROUTINE_H__413FF819_B711_4B5A_8EC1_580A70862=
BE4__INCLUDED_)
Property changes on: trunk/MatroskaUtils/CFireRoutine.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/DbgOut.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/DbgOut.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/DbgOut.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,89 +1,89 @@
-/**
- * Part of MusicBar, a plugin to control foobar2000/TCMP from the title=
bar
- *
- * Copyright (C) Jory Stone - 2003
- *
- *
- * MusicBar 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, or (at your option)
- * any later version.
- *
- * MusicBar 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; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
-*/
-
-#ifndef _DBG_OUT_H_
-#define _DBG_OUT_H_
-
-#include <windows.h>
-
-#ifdef _DEBUG
-#define DEBUG_OUT_PUT
-#endif
-
-#ifdef DEBUG_OUT_PUT
-void WINAPI DbgStringOut(const TCHAR *pFormat,...);
-#ifdef UNICODE
-void WINAPI DbgStringOut(const CHAR *pFormat,...);
-#endif
-#define NOTE(x) DbgStringOut(x)
-#define NOTE1(x, y1) DbgStringOut(x, y1)
-#define NOTE2(x, y1, y2) DbgStringOut(x, y1, y2)
-#define NOTE3(x, y1, y2, y3) DbgStringOut(x, y1, y2, y3)
-#define NOTE4(x, y1, y2, y3, y4) DbgStringOut(x, y1, y2, y3, y4)
-#define NOTE5(x, y1, y2, y3, y4, y5) DbgStringOut(x, y1, y2, y3, y4, y5)
-#define NOTE6(x, y1, y2, y3, y4, y5, y6) DbgStringOut(x, y1, y2, y3, y4,=
y5, y6)
-#define NOTE10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10) DbgStringOut(=
x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
-#define ODS(x) DbgStringOut(x)
-#define ODS1(x, y1) DbgStringOut(x, y1)
-#define ODS2(x, y1, y2) DbgStringOut(x, y1, y2)
-#define ODS3(x, y1, y2, y3) DbgStringOut(x, y1, y2, y3)
-#define ODS4(x, y1, y2, y3, y4) DbgStringOut(x, y1, y2, y3, y4)
-#define ODS5(x, y1, y2, y3, y4, y5) DbgStringOut(x, y1, y2, y3, y4, y5)
-#define ODS6(x, y1, y2, y3, y4, y5, y6) DbgStringOut(x, y1, y2, y3, y4, =
y5, y6)
-#define ODS10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10) DbgStringOut(x=
, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
-#define TRACE(x) DbgStringOut(x)
-#define TRACE1(x, y1) DbgStringOut(x, y1)
-#define TRACE2(x, y1, y2) DbgStringOut(x, y1, y2)
-#define TRACE3(x, y1, y2, y3) DbgStringOut(x, y1, y2, y3)
-#define TRACE4(x, y1, y2, y3, y4) DbgStringOut(x, y1, y2, y3, y4)
-#define TRACE5(x, y1, y2, y3, y4, y5) DbgStringOut(x, y1, y2, y3, y4, y5=
)
-#define TRACE6(x, y1, y2, y3, y4, y5, y6) DbgStringOut(x, y1, y2, y3, y4=
, y5, y6)
-#define TRACE10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10) DbgStringOut=
(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
-#else
-#define NOTE(x)
-#define NOTE1(x, y1)
-#define NOTE2(x, y1, y2)
-#define NOTE3(x, y1, y2, y3)
-#define NOTE4(x, y1, y2, y3)
-#define NOTE5(x, y1, y2, y3, y4, y5)
-#define NOTE6(x, y1, y2, y3, y4, y5, y6)
-#define NOTE10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
-#define ODS(x)
-#define ODS1(x, y1)
-#define ODS2(x, y1, y2)
-#define ODS3(x, y1, y2, y3)
-#define ODS4(x, y1, y2, y3, y4)
-#define ODS5(x, y1, y2, y3, y4, y5)
-#define ODS6(x, y1, y2, y3, y4, y5, y6)
-#define ODS10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
-#define TRACE(x)
-#define TRACE1(x, y1)
-#define TRACE2(x, y1, y2)
-#define TRACE3(x, y1, y2, y3)
-#define TRACE4(x, y1, y2, y3, y4)
-#define TRACE5(x, y1, y2, y3, y4, y5)
-#define TRACE6(x, y1, y2, y3, y4, y5, y6)
-#define TRACE10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
-#endif
-
-
-#endif // _DBG_OUT_H_
+/**
+ * Part of MusicBar, a plugin to control foobar2000/TCMP from the title=
bar
+ *
+ * Copyright (C) Jory Stone - 2003
+ *
+ *
+ * MusicBar 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, or (at your option)
+ * any later version.
+ *
+ * MusicBar 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; see the file COPYING. If not, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+*/
+
+#ifndef _DBG_OUT_H_
+#define _DBG_OUT_H_
+
+#include <windows.h>
+
+#ifdef _DEBUG
+#define DEBUG_OUT_PUT
+#endif
+
+#ifdef DEBUG_OUT_PUT
+void WINAPI DbgStringOut(const TCHAR *pFormat,...);
+#ifdef UNICODE
+void WINAPI DbgStringOut(const CHAR *pFormat,...);
+#endif
+#define NOTE(x) DbgStringOut(x)
+#define NOTE1(x, y1) DbgStringOut(x, y1)
+#define NOTE2(x, y1, y2) DbgStringOut(x, y1, y2)
+#define NOTE3(x, y1, y2, y3) DbgStringOut(x, y1, y2, y3)
+#define NOTE4(x, y1, y2, y3, y4) DbgStringOut(x, y1, y2, y3, y4)
+#define NOTE5(x, y1, y2, y3, y4, y5) DbgStringOut(x, y1, y2, y3, y4, y5)
+#define NOTE6(x, y1, y2, y3, y4, y5, y6) DbgStringOut(x, y1, y2, y3, y4,=
y5, y6)
+#define NOTE10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10) DbgStringOut(=
x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
+#define ODS(x) DbgStringOut(x)
+#define ODS1(x, y1) DbgStringOut(x, y1)
+#define ODS2(x, y1, y2) DbgStringOut(x, y1, y2)
+#define ODS3(x, y1, y2, y3) DbgStringOut(x, y1, y2, y3)
+#define ODS4(x, y1, y2, y3, y4) DbgStringOut(x, y1, y2, y3, y4)
+#define ODS5(x, y1, y2, y3, y4, y5) DbgStringOut(x, y1, y2, y3, y4, y5)
+#define ODS6(x, y1, y2, y3, y4, y5, y6) DbgStringOut(x, y1, y2, y3, y4, =
y5, y6)
+#define ODS10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10) DbgStringOut(x=
, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
+#define TRACE(x) DbgStringOut(x)
+#define TRACE1(x, y1) DbgStringOut(x, y1)
+#define TRACE2(x, y1, y2) DbgStringOut(x, y1, y2)
+#define TRACE3(x, y1, y2, y3) DbgStringOut(x, y1, y2, y3)
+#define TRACE4(x, y1, y2, y3, y4) DbgStringOut(x, y1, y2, y3, y4)
+#define TRACE5(x, y1, y2, y3, y4, y5) DbgStringOut(x, y1, y2, y3, y4, y5=
)
+#define TRACE6(x, y1, y2, y3, y4, y5, y6) DbgStringOut(x, y1, y2, y3, y4=
, y5, y6)
+#define TRACE10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10) DbgStringOut=
(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
+#else
+#define NOTE(x)
+#define NOTE1(x, y1)
+#define NOTE2(x, y1, y2)
+#define NOTE3(x, y1, y2, y3)
+#define NOTE4(x, y1, y2, y3)
+#define NOTE5(x, y1, y2, y3, y4, y5)
+#define NOTE6(x, y1, y2, y3, y4, y5, y6)
+#define NOTE10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
+#define ODS(x)
+#define ODS1(x, y1)
+#define ODS2(x, y1, y2)
+#define ODS3(x, y1, y2, y3)
+#define ODS4(x, y1, y2, y3, y4)
+#define ODS5(x, y1, y2, y3, y4, y5)
+#define ODS6(x, y1, y2, y3, y4, y5, y6)
+#define ODS10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
+#define TRACE(x)
+#define TRACE1(x, y1)
+#define TRACE2(x, y1, y2)
+#define TRACE3(x, y1, y2, y3)
+#define TRACE4(x, y1, y2, y3, y4)
+#define TRACE5(x, y1, y2, y3, y4, y5)
+#define TRACE6(x, y1, y2, y3, y4, y5, y6)
+#define TRACE10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
+#endif
+
+
+#endif // _DBG_OUT_H_
Property changes on: trunk/MatroskaUtils/DbgOut.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/GDC/GDCMatroska/GDCMatroska_h.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/GDC/GDCMatroska/GDCMatroska_h.h 2007-02-17 10:34:=
40 UTC (rev 1276)
+++ trunk/MatroskaUtils/GDC/GDCMatroska/GDCMatroska_h.h 2007-02-17 10:55:=
54 UTC (rev 1277)
@@ -1,246 +1,246 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interface=
s */
-
-
- /* File created by MIDL compiler version 6.00.0361 */
-/* at Fri Mar 25 17:58:08 2005
- */
-/* Compiler settings for .\GDCMatroska.idl:
- Oicf, W1, Zp8, env=3DWin32 (32b run)
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data=20
- VC __declspec() decoration level:=20
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-//@@MIDL_FILE_HEADING( )
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this fil=
e*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __GDCMatroska_h_h__
-#define __GDCMatroska_h_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >=3D 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */=20
-
-#ifndef __IIndexMatroska_FWD_DEFINED__
-#define __IIndexMatroska_FWD_DEFINED__
-typedef interface IIndexMatroska IIndexMatroska;
-#endif /* __IIndexMatroska_FWD_DEFINED__ */
-
-
-#ifndef __IndexMatroska_FWD_DEFINED__
-#define __IndexMatroska_FWD_DEFINED__
-
-#ifdef __cplusplus
-typedef class IndexMatroska IndexMatroska;
-#else
-typedef struct IndexMatroska IndexMatroska;
-#endif /* __cplusplus */
-
-#endif /* __IndexMatroska_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "oaidl.h"
-#include "ocidl.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif=20
-
-void * __RPC_USER MIDL_user_allocate(size_t);
-void __RPC_USER MIDL_user_free( void * );=20
-
-#ifndef __IIndexMatroska_INTERFACE_DEFINED__
-#define __IIndexMatroska_INTERFACE_DEFINED__
-
-/* interface IIndexMatroska */
-/* [unique][helpstring][nonextensible][dual][uuid][object] */=20
-
-
-EXTERN_C const IID IID_IIndexMatroska;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
- =20
- MIDL_INTERFACE("3219E2BC-E7AB-456d-AA17-600E3BDC418D")
- IIndexMatroska : public IDispatch
- {
- public:
- virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE HandleF=
ile(=20
- BSTR full_path_to_file,
- IDispatch *event_factory) =3D 0;
- =20
- };
- =20
-#else /* C style interface */
-
- typedef struct IIndexMatroskaVtbl
- {
- BEGIN_INTERFACE
- =20
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(=20
- IIndexMatroska * This,
- /* [in] */ REFIID riid,
- /* [iid_is][out] */ void **ppvObject);
- =20
- ULONG ( STDMETHODCALLTYPE *AddRef )(=20
- IIndexMatroska * This);
- =20
- ULONG ( STDMETHODCALLTYPE *Release )(=20
- IIndexMatroska * This);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(=20
- IIndexMatroska * This,
- /* [out] */ UINT *pctinfo);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(=20
- IIndexMatroska * This,
- /* [in] */ UINT iTInfo,
- /* [in] */ LCID lcid,
- /* [out] */ ITypeInfo **ppTInfo);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(=20
- IIndexMatroska * This,
- /* [in] */ REFIID riid,
- /* [size_is][in] */ LPOLESTR *rgszNames,
- /* [in] */ UINT cNames,
- /* [in] */ LCID lcid,
- /* [size_is][out] */ DISPID *rgDispId);
- =20
- /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(=20
- IIndexMatroska * This,
- /* [in] */ DISPID dispIdMember,
- /* [in] */ REFIID riid,
- /* [in] */ LCID lcid,
- /* [in] */ WORD wFlags,
- /* [out][in] */ DISPPARAMS *pDispParams,
- /* [out] */ VARIANT *pVarResult,
- /* [out] */ EXCEPINFO *pExcepInfo,
- /* [out] */ UINT *puArgErr);
- =20
- /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *HandleFile )=
(=20
- IIndexMatroska * This,
- BSTR full_path_to_file,
- IDispatch *event_factory);
- =20
- END_INTERFACE
- } IIndexMatroskaVtbl;
-
- interface IIndexMatroska
- {
- CONST_VTBL struct IIndexMatroskaVtbl *lpVtbl;
- };
-
- =20
-
-#ifdef COBJMACROS
-
-
-#define IIndexMatroska_QueryInterface(This,riid,ppvObject) \
- (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
-
-#define IIndexMatroska_AddRef(This) \
- (This)->lpVtbl -> AddRef(This)
-
-#define IIndexMatroska_Release(This) \
- (This)->lpVtbl -> Release(This)
-
-
-#define IIndexMatroska_GetTypeInfoCount(This,pctinfo) \
- (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
-
-#define IIndexMatroska_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
- (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-
-#define IIndexMatroska_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgD=
ispId) \
- (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDi=
spId)
-
-#define IIndexMatroska_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispPa=
rams,pVarResult,pExcepInfo,puArgErr) \
- (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispPar=
ams,pVarResult,pExcepInfo,puArgErr)
-
-
-#define IIndexMatroska_HandleFile(This,full_path_to_file,event_factory) =
\
- (This)->lpVtbl -> HandleFile(This,full_path_to_file,event_factory)
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IIndexMatroska_HandleFi=
le_Proxy(=20
- IIndexMatroska * This,
- BSTR full_path_to_file,
- IDispatch *event_factory);
-
-
-void __RPC_STUB IIndexMatroska_HandleFile_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-
-#endif /* __IIndexMatroska_INTERFACE_DEFINED__ */
-
-
-
-#ifndef __GDCMatroskaLib_LIBRARY_DEFINED__
-#define __GDCMatroskaLib_LIBRARY_DEFINED__
-
-/* library GDCMatroskaLib */
-/* [helpstring][version][uuid] */=20
-
-
-EXTERN_C const IID LIBID_GDCMatroskaLib;
-
-EXTERN_C const CLSID CLSID_IndexMatroska;
-
-#ifdef __cplusplus
-
-class DECLSPEC_UUID("364F941C-6DB0-437d-BBB9-22FCBA88DE30")
-IndexMatroska;
-#endif
-#endif /* __GDCMatroskaLib_LIBRARY_DEFINED__ */
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *=
, unsigned long , BSTR * );=20
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned=
char *, BSTR * );=20
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned=
char *, BSTR * );=20
-void __RPC_USER BSTR_UserFree( unsigned long *=
, BSTR * );=20
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interface=
s */
+
+
+ /* File created by MIDL compiler version 6.00.0361 */
+/* at Fri Mar 25 17:58:08 2005
+ */
+/* Compiler settings for .\GDCMatroska.idl:
+ Oicf, W1, Zp8, env=3DWin32 (32b run)
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data=20
+ VC __declspec() decoration level:=20
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+//@@MIDL_FILE_HEADING( )
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this fil=
e*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __GDCMatroska_h_h__
+#define __GDCMatroska_h_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >=3D 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */=20
+
+#ifndef __IIndexMatroska_FWD_DEFINED__
+#define __IIndexMatroska_FWD_DEFINED__
+typedef interface IIndexMatroska IIndexMatroska;
+#endif /* __IIndexMatroska_FWD_DEFINED__ */
+
+
+#ifndef __IndexMatroska_FWD_DEFINED__
+#define __IndexMatroska_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class IndexMatroska IndexMatroska;
+#else
+typedef struct IndexMatroska IndexMatroska;
+#endif /* __cplusplus */
+
+#endif /* __IndexMatroska_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "oaidl.h"
+#include "ocidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif=20
+
+void * __RPC_USER MIDL_user_allocate(size_t);
+void __RPC_USER MIDL_user_free( void * );=20
+
+#ifndef __IIndexMatroska_INTERFACE_DEFINED__
+#define __IIndexMatroska_INTERFACE_DEFINED__
+
+/* interface IIndexMatroska */
+/* [unique][helpstring][nonextensible][dual][uuid][object] */=20
+
+
+EXTERN_C const IID IID_IIndexMatroska;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+ =20
+ MIDL_INTERFACE("3219E2BC-E7AB-456d-AA17-600E3BDC418D")
+ IIndexMatroska : public IDispatch
+ {
+ public:
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE HandleF=
ile(=20
+ BSTR full_path_to_file,
+ IDispatch *event_factory) =3D 0;
+ =20
+ };
+ =20
+#else /* C style interface */
+
+ typedef struct IIndexMatroskaVtbl
+ {
+ BEGIN_INTERFACE
+ =20
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(=20
+ IIndexMatroska * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+ =20
+ ULONG ( STDMETHODCALLTYPE *AddRef )(=20
+ IIndexMatroska * This);
+ =20
+ ULONG ( STDMETHODCALLTYPE *Release )(=20
+ IIndexMatroska * This);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(=20
+ IIndexMatroska * This,
+ /* [out] */ UINT *pctinfo);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(=20
+ IIndexMatroska * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(=20
+ IIndexMatroska * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+ =20
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(=20
+ IIndexMatroska * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+ =20
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *HandleFile )=
(=20
+ IIndexMatroska * This,
+ BSTR full_path_to_file,
+ IDispatch *event_factory);
+ =20
+ END_INTERFACE
+ } IIndexMatroskaVtbl;
+
+ interface IIndexMatroska
+ {
+ CONST_VTBL struct IIndexMatroskaVtbl *lpVtbl;
+ };
+
+ =20
+
+#ifdef COBJMACROS
+
+
+#define IIndexMatroska_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define IIndexMatroska_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define IIndexMatroska_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define IIndexMatroska_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define IIndexMatroska_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define IIndexMatroska_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgD=
ispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDi=
spId)
+
+#define IIndexMatroska_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispPa=
rams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispPar=
ams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define IIndexMatroska_HandleFile(This,full_path_to_file,event_factory) =
\
+ (This)->lpVtbl -> HandleFile(This,full_path_to_file,event_factory)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IIndexMatroska_HandleFi=
le_Proxy(=20
+ IIndexMatroska * This,
+ BSTR full_path_to_file,
+ IDispatch *event_factory);
+
+
+void __RPC_STUB IIndexMatroska_HandleFile_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __IIndexMatroska_INTERFACE_DEFINED__ */
+
+
+
+#ifndef __GDCMatroskaLib_LIBRARY_DEFINED__
+#define __GDCMatroskaLib_LIBRARY_DEFINED__
+
+/* library GDCMatroskaLib */
+/* [helpstring][version][uuid] */=20
+
+
+EXTERN_C const IID LIBID_GDCMatroskaLib;
+
+EXTERN_C const CLSID CLSID_IndexMatroska;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("364F941C-6DB0-437d-BBB9-22FCBA88DE30")
+IndexMatroska;
+#endif
+#endif /* __GDCMatroskaLib_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *=
, unsigned long , BSTR * );=20
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned=
char *, BSTR * );=20
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned=
char *, BSTR * );=20
+void __RPC_USER BSTR_UserFree( unsigned long *=
, BSTR * );=20
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
Property changes on: trunk/MatroskaUtils/GDC/GDCMatroska/GDCMatroska_h.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/MatroskaUtils/GDC/GDCMatroska/IndexMatroska.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/GDC/GDCMatroska/MatroskaParser.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/GDC/GDCMatroska/MatroskaParser.h 2007-02-17 10:34=
:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/GDC/GDCMatroska/MatroskaParser.h 2007-02-17 10:55=
:54 UTC (rev 1277)
@@ -1,394 +1,394 @@
-/*
- * Copyright (c) 2004-2005 Mike Matsnev. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice immediately at the beginning of the file, without modificat=
ion,
- * this list of conditions, and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in th=
e
- * documentation and/or other materials provided with the distributio=
n.
- * 3. Absolutely no warranty of function or purpose is made by the autho=
r
- * Mike Matsnev.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRAN=
TIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIME=
D.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, =
BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF =
USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE=
OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *=20
- * $Id: MatroskaParser.h,v 1.10 2005/01/10 04:52:34 mike Exp $
- *=20
- */
-
-#ifndef MATROSKA_PARSER_H
-#define MATROSKA_PARSER_H
-
-/* Random notes:
- *
- * The parser does not process frame data in any way and does not read i=
t into
- * the queue. The app should read it via mkv_ReadData if it is intereste=
d.
- *
- * The code here is 64-bit clean and was tested on FreeBSD/sparc 64-bit =
big endian
- * system
- */
-
-#ifdef MPDLLBUILD
-#define X __declspec(dllexport)
-#else
-#ifdef MPDLL
-#define X __declspec(dllimport)
-#pragma comment(lib,"MatroskaParser")
-#else
-#define X
-#endif
-#endif
-
-//#define MATROSKA_COMPRESSION_SUPPORT
-//#define MATROSKA_INTEGER_ONLY
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* 64-bit integers */
-#ifdef _WIN32_WCE
-typedef signed __int64 longlong;
-typedef unsigned __int64 ulonglong;
-#else
-typedef signed long long longlong;
-typedef unsigned long long ulonglong;
-#endif
-
-/* MKFLOATing point */
-#ifdef MATROSKA_INTEGER_ONLY
-typedef struct {
- longlong v;
-} MKFLOAT;
-#else
-typedef double MKFLOAT;
-#endif
-
-/* generic I/O */
-struct InputStream {
- /* read bytes from stream */
- int (*read)(struct InputStream *cc,ulonglong pos,void *buffer,in=
t count);
- /* scan for a four byte signature, bytes must be nonzero */
- longlong (*scan)(struct InputStream *cc,ulonglong start,unsigned si=
gnature);
- /* get cache size, this is used to cap readahead */
- unsigned (*getsize)(struct InputStream *cc);
- /* fetch last error message */
- const char *(*geterror)(struct InputStream *cc);
- /* memory allocation */
- void *(*memalloc)(struct InputStream *cc,size_t size);
- void *(*memrealloc)(struct InputStream *cc,void *mem,size_t news=
ize);
- void (*memfree)(struct InputStream *cc,void *mem);
- // zero return causes parser to abort open
- int (*progress)(struct InputStream *cc,ulonglong cur,ulonglong m=
ax);
-};
-
-typedef struct InputStream InputStream;
-
-/* matroska file */
-struct MatroskaFile; /* opaque */
-
-typedef struct MatroskaFile MatroskaFile;
-
-#define COMP_ZLIB 0
-
-#define TT_VIDEO 1
-#define TT_AUDIO 2
-#define TT_SUB 17
-
-struct TrackInfo {
- unsigned char Number;
- unsigned char Type;
- unsigned char TrackOverlay;
- ulonglong UID;
- ulonglong MinCache;
- ulonglong MaxCache;
- ulonglong DefaultDuration;
- MKFLOAT TimecodeScale;
- void *CodecPrivate;
- unsigned CodecPrivateSize;
- unsigned CompMethod;
- struct {
- unsigned int Enabled:1;
- unsigned int Default:1;
- unsigned int Lacing:1;
- unsigned int DecodeAll:1;
- unsigned int CompEnabled:1;
- };
-
- union {
- struct {
- unsigned char StereoMode;
- unsigned char DisplayUnit;
- unsigned char AspectRatioType;
- unsigned int PixelWidth;
- unsigned int PixelHeight;
- unsigned int DisplayWidth;
- unsigned int DisplayHeight;
- unsigned int ColourSpace;
- MKFLOAT GammaValue;
- struct {
- unsigned int Interlaced:1;
- };
- } Video;
- struct {
- MKFLOAT SamplingFreq;
- MKFLOAT OutputSamplingFreq;
- unsigned char Channels;
- unsigned char BitDepth;
- } Audio;
- };
-
- /* various strings */
- char *Name;
- char *Language;
- char *CodecID;
-};
-
-typedef struct TrackInfo TrackInfo;
-
-struct SegmentInfo {
- char UID[16];
- char PrevUID[16];
- char NextUID[16];
- char *Filename;
- char *PrevFilename;
- char *NextFilename;
- char *Title;
- char *MuxingApp;
- char *WritingApp;
- ulonglong TimecodeScale;
- ulonglong Duration;
- ulonglong DateUTC;
-};
-
-typedef struct SegmentInfo SegmentInfo;
-
-struct Attachment {
- ulonglong Position;
- ulonglong Length;
- ulonglong UID;
- char *Name;
- char *Description;
- char *MimeType;
-};
-
-typedef struct Attachment Attachment;
-
-struct ChapterDisplay {
- char *String;
- char *Language;
- char *Country;
-};
-
-struct ChapterCommand {
- unsigned Time;
- unsigned CommandLength;
- char *Command;
-};
-
-struct ChapterProcess {
- unsigned CodecID;
- unsigned CodecPrivateLength;
- char *CodecPrivate;
- unsigned nCommands,nCommandsSize;
- struct ChapterCommand *Commands;
-};
-
-struct Chapter {
- ulonglong UID;
- ulonglong Start;
- ulonglong End;
-
- unsigned nTracks,nTracksSize;
- ulonglong *Tracks;
- unsigned nDisplay,nDisplaySize;
- struct ChapterDisplay *Display;
- unsigned nChildren,nChildrenSize;
- struct Chapter *Children;
- unsigned nProcess,nProcessSize;
- struct ChapterProcess *Process;
-
- struct {
- unsigned int Hidden:1;
- unsigned int Enabled:1;
-
- // Editions
- unsigned int Default:1;
- unsigned int Ordered:1;
- };
-};
-
-typedef struct Chapter Chapter;
-
-#define TARGET_TRACK 0
-#define TARGET_CHAPTER 1
-#define TARGET_ATTACHMENT 2
-#define TARGET_EDITION 3
-struct Target {
- ulonglong UID;
- unsigned Type;
-};
-
-struct SimpleTag {
- char *Name;
- char *Value;
- char *Language;
- unsigned Default:1;
-};
-
-struct Tag {
- unsigned nTargets,nTargetsSize;
- struct Target *Targets;
-
- unsigned nSimpleTags,nSimpleTagsSize;
- struct SimpleTag *SimpleTags;
-};
-
-typedef struct Tag Tag;
-
-/* Open a matroska file
- * io pointer is recorded inside MatroskaFile
- */
-X MatroskaFile *mkv_Open(/* in */ InputStream *io,
- /* out */ char *err_msg,
- /* in */ unsigned msgsize);
-
-#define MKVF_AVOID_SEEKS 1 /* use sequential reading only */
-
-X MatroskaFile *mkv_OpenEx(/* in */ InputStream *io,
- /* in */ ulonglong base,
- /* in */ unsigned flags,
- /* out */ char *err_msg,
- /* in */ unsigned msgsize);
-
-/* Close and deallocate mf
- * NULL pointer is ok and is simply ignored
- */
-X void mkv_Close(/* in */ MatroskaFile *mf);
-
-/* Fetch the error message of the last failed operation */
-X const char *mkv_GetLastError(/* in */ MatroskaFile *mf);
-
-/* Get file information */
-X SegmentInfo *mkv_GetFileInfo(/* in */ MatroskaFile *mf);
-
-/* Get track information */
-X unsigned int mkv_GetNumTracks(/* in */ MatroskaFile *mf);
-X TrackInfo *mkv_GetTrackInfo(/* in */ MatroskaFile *mf,/* in */ uns=
igned track);
-
-/* chapters, tags and attachments */
-X void mkv_GetAttachments(/* in */ MatroskaFile *mf,
- /* out */ Attachment **at,
- /* out */ unsigned *count);
-X void mkv_GetChapters(/* in */ MatroskaFile *mf,
- /* out */ Chapter **ch,
- /* out */ unsigned *count);
-X void mkv_GetTags(/* in */ MatroskaFile *mf,
- /* out */ Tag **tag,
- /* out */ unsigned *count);
-
-X ulonglong mkv_GetSegmentTop(MatroskaFile *mf);
-
-/* Seek to specified timecode,
- * if timecode is past end of file,
- * all tracks are set to return EOF
- * on next read
- */
-#define MKVF_SEEK_TO_PREV_KEYFRAME 1
-
-X void mkv_Seek(/* in */ MatroskaFile *mf,
- /* in */ ulonglong timecode /* in ns */,
- /* in */ unsigned flags);
-
-X void mkv_SkipToKeyframe(MatroskaFile *mf);
-
-X ulonglong mkv_GetLowestQTimecode(MatroskaFile *mf);
-
-X int mkv_TruncFloat(MKFLOAT f);
-
-/***********************************************************************=
**
- * reading data, pull model
- */
-
-/* frame flags */
-#define FRAME_KF 0x00000001
-#define FRAME_UNKNOWN_START 0x00000002
-#define FRAME_UNKNOWN_END 0x00000004
-#define FRAME_GAP 0x00000008
-
-/* This sets the masking flags for the parser,
- * masked tracks [with 1s in their bit positions]
- * will be ignored when reading file data.
- * This call discards all parsed and queued frames
- */
-X void mkv_SetTrackMask(/* in */ MatroskaFile *mf,/* in */ unsigne=
d int mask);
-
-/* Read one frame from the queue.
- * mask specifies what tracks to ignore.
- * Returns -1 if there are no more frames in the specified
- * set of tracks, 0 on success
- */
-X int mkv_ReadFrame(/* in */ MatroskaFile *mf,
- /* in */ unsigned int mask,
- /* out */ unsigned int *track,
- /* out */ ulonglong *StartTime /* in ns */,
- /* out */ ulonglong *EndTime /* in ns */,
- /* out */ ulonglong *FilePos /* in bytes from start of file */,
- /* out */ unsigned int *FrameSize /* in bytes */,
- /* out */ unsigned int *FrameFlags);
-
-/* Read raw frame data, invokes underlying io methods,
- * but keeps track of the file pointer for internal buffering.
- * Returns the -1 if error occurred, or 0 on success
- */
-X int mkv_ReadData(/* in */ MatroskaFile *mf,
- /* in */ ulonglong FilePos,
- /* out */ void *Buffer,
- /* in */ unsigned int Count);
-
-#ifdef MATROSKA_COMPRESSION_SUPPORT
-/* Compressed streams support */
-struct CompressedStream;
-
-typedef struct CompressedStream CompressedStream;
-
-X CompressedStream *cs_Create(/* in */ MatroskaFile *mf,
- /* in */ unsigned tracknum,
- /* out */ char *errormsg,
- /* in */ unsigned msgsize);
-X void cs_Destroy(/* in */ CompressedStream *cs);
-
-/* advance to the next frame in matroska stream, you need to pass values=
returned
- * by mkv_ReadFrame */
-X void cs_NextFrame(/* in */ CompressedStream *cs,
- /* in */ ulonglong pos,
- /* in */ unsigned size);
-
-/* read and decode more data from current frame, return number of bytes =
decoded,
- * 0 on end of frame, or -1 on error */
-X int cs_ReadData(CompressedStream *cs,char *buffer,unsigned bufsize)=
;
-
-/* return error message for the last error */
-X const char *cs_GetLastError(CompressedStream *cs);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#undef X
-
-#endif
+/*
+ * Copyright (c) 2004-2005 Mike Matsnev. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice immediately at the beginning of the file, without modificat=
ion,
+ * this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in th=
e
+ * documentation and/or other materials provided with the distributio=
n.
+ * 3. Absolutely no warranty of function or purpose is made by the autho=
r
+ * Mike Matsnev.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRAN=
TIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIME=
D.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, =
BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF =
USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE=
OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *=20
+ * $Id: MatroskaParser.h,v 1.10 2005/01/10 04:52:34 mike Exp $
+ *=20
+ */
+
+#ifndef MATROSKA_PARSER_H
+#define MATROSKA_PARSER_H
+
+/* Random notes:
+ *
+ * The parser does not process frame data in any way and does not read i=
t into
+ * the queue. The app should read it via mkv_ReadData if it is intereste=
d.
+ *
+ * The code here is 64-bit clean and was tested on FreeBSD/sparc 64-bit =
big endian
+ * system
+ */
+
+#ifdef MPDLLBUILD
+#define X __declspec(dllexport)
+#else
+#ifdef MPDLL
+#define X __declspec(dllimport)
+#pragma comment(lib,"MatroskaParser")
+#else
+#define X
+#endif
+#endif
+
+//#define MATROSKA_COMPRESSION_SUPPORT
+//#define MATROSKA_INTEGER_ONLY
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* 64-bit integers */
+#ifdef _WIN32_WCE
+typedef signed __int64 longlong;
+typedef unsigned __int64 ulonglong;
+#else
+typedef signed long long longlong;
+typedef unsigned long long ulonglong;
+#endif
+
+/* MKFLOATing point */
+#ifdef MATROSKA_INTEGER_ONLY
+typedef struct {
+ longlong v;
+} MKFLOAT;
+#else
+typedef double MKFLOAT;
+#endif
+
+/* generic I/O */
+struct InputStream {
+ /* read bytes from stream */
+ int (*read)(struct InputStream *cc,ulonglong pos,void *buffer,in=
t count);
+ /* scan for a four byte signature, bytes must be nonzero */
+ longlong (*scan)(struct InputStream *cc,ulonglong start,unsigned si=
gnature);
+ /* get cache size, this is used to cap readahead */
+ unsigned (*getsize)(struct InputStream *cc);
+ /* fetch last error message */
+ const char *(*geterror)(struct InputStream *cc);
+ /* memory allocation */
+ void *(*memalloc)(struct InputStream *cc,size_t size);
+ void *(*memrealloc)(struct InputStream *cc,void *mem,size_t news=
ize);
+ void (*memfree)(struct InputStream *cc,void *mem);
+ // zero return causes parser to abort open
+ int (*progress)(struct InputStream *cc,ulonglong cur,ulonglong m=
ax);
+};
+
+typedef struct InputStream InputStream;
+
+/* matroska file */
+struct MatroskaFile; /* opaque */
+
+typedef struct MatroskaFile MatroskaFile;
+
+#define COMP_ZLIB 0
+
+#define TT_VIDEO 1
+#define TT_AUDIO 2
+#define TT_SUB 17
+
+struct TrackInfo {
+ unsigned char Number;
+ unsigned char Type;
+ unsigned char TrackOverlay;
+ ulonglong UID;
+ ulonglong MinCache;
+ ulonglong MaxCache;
+ ulonglong DefaultDuration;
+ MKFLOAT TimecodeScale;
+ void *CodecPrivate;
+ unsigned CodecPrivateSize;
+ unsigned CompMethod;
+ struct {
+ unsigned int Enabled:1;
+ unsigned int Default:1;
+ unsigned int Lacing:1;
+ unsigned int DecodeAll:1;
+ unsigned int CompEnabled:1;
+ };
+
+ union {
+ struct {
+ unsigned char StereoMode;
+ unsigned char DisplayUnit;
+ unsigned char AspectRatioType;
+ unsigned int PixelWidth;
+ unsigned int PixelHeight;
+ unsigned int DisplayWidth;
+ unsigned int DisplayHeight;
+ unsigned int ColourSpace;
+ MKFLOAT GammaValue;
+ struct {
+ unsigned int Interlaced:1;
+ };
+ } Video;
+ struct {
+ MKFLOAT SamplingFreq;
+ MKFLOAT OutputSamplingFreq;
+ unsigned char Channels;
+ unsigned char BitDepth;
+ } Audio;
+ };
+
+ /* various strings */
+ char *Name;
+ char *Language;
+ char *CodecID;
+};
+
+typedef struct TrackInfo TrackInfo;
+
+struct SegmentInfo {
+ char UID[16];
+ char PrevUID[16];
+ char NextUID[16];
+ char *Filename;
+ char *PrevFilename;
+ char *NextFilename;
+ char *Title;
+ char *MuxingApp;
+ char *WritingApp;
+ ulonglong TimecodeScale;
+ ulonglong Duration;
+ ulonglong DateUTC;
+};
+
+typedef struct SegmentInfo SegmentInfo;
+
+struct Attachment {
+ ulonglong Position;
+ ulonglong Length;
+ ulonglong UID;
+ char *Name;
+ char *Description;
+ char *MimeType;
+};
+
+typedef struct Attachment Attachment;
+
+struct ChapterDisplay {
+ char *String;
+ char *Language;
+ char *Country;
+};
+
+struct ChapterCommand {
+ unsigned Time;
+ unsigned CommandLength;
+ char *Command;
+};
+
+struct ChapterProcess {
+ unsigned CodecID;
+ unsigned CodecPrivateLength;
+ char *CodecPrivate;
+ unsigned nCommands,nCommandsSize;
+ struct ChapterCommand *Commands;
+};
+
+struct Chapter {
+ ulonglong UID;
+ ulonglong Start;
+ ulonglong End;
+
+ unsigned nTracks,nTracksSize;
+ ulonglong *Tracks;
+ unsigned nDisplay,nDisplaySize;
+ struct ChapterDisplay *Display;
+ unsigned nChildren,nChildrenSize;
+ struct Chapter *Children;
+ unsigned nProcess,nProcessSize;
+ struct ChapterProcess *Process;
+
+ struct {
+ unsigned int Hidden:1;
+ unsigned int Enabled:1;
+
+ // Editions
+ unsigned int Default:1;
+ unsigned int Ordered:1;
+ };
+};
+
+typedef struct Chapter Chapter;
+
+#define TARGET_TRACK 0
+#define TARGET_CHAPTER 1
+#define TARGET_ATTACHMENT 2
+#define TARGET_EDITION 3
+struct Target {
+ ulonglong UID;
+ unsigned Type;
+};
+
+struct SimpleTag {
+ char *Name;
+ char *Value;
+ char *Language;
+ unsigned Default:1;
+};
+
+struct Tag {
+ unsigned nTargets,nTargetsSize;
+ struct Target *Targets;
+
+ unsigned nSimpleTags,nSimpleTagsSize;
+ struct SimpleTag *SimpleTags;
+};
+
+typedef struct Tag Tag;
+
+/* Open a matroska file
+ * io pointer is recorded inside MatroskaFile
+ */
+X MatroskaFile *mkv_Open(/* in */ InputStream *io,
+ /* out */ char *err_msg,
+ /* in */ unsigned msgsize);
+
+#define MKVF_AVOID_SEEKS 1 /* use sequential reading only */
+
+X MatroskaFile *mkv_OpenEx(/* in */ InputStream *io,
+ /* in */ ulonglong base,
+ /* in */ unsigned flags,
+ /* out */ char *err_msg,
+ /* in */ unsigned msgsize);
+
+/* Close and deallocate mf
+ * NULL pointer is ok and is simply ignored
+ */
+X void mkv_Close(/* in */ MatroskaFile *mf);
+
+/* Fetch the error message of the last failed operation */
+X const char *mkv_GetLastError(/* in */ MatroskaFile *mf);
+
+/* Get file information */
+X SegmentInfo *mkv_GetFileInfo(/* in */ MatroskaFile *mf);
+
+/* Get track information */
+X unsigned int mkv_GetNumTracks(/* in */ MatroskaFile *mf);
+X TrackInfo *mkv_GetTrackInfo(/* in */ MatroskaFile *mf,/* in */ uns=
igned track);
+
+/* chapters, tags and attachments */
+X void mkv_GetAttachments(/* in */ MatroskaFile *mf,
+ /* out */ Attachment **at,
+ /* out */ unsigned *count);
+X void mkv_GetChapters(/* in */ MatroskaFile *mf,
+ /* out */ Chapter **ch,
+ /* out */ unsigned *count);
+X void mkv_GetTags(/* in */ MatroskaFile *mf,
+ /* out */ Tag **tag,
+ /* out */ unsigned *count);
+
+X ulonglong mkv_GetSegmentTop(MatroskaFile *mf);
+
+/* Seek to specified timecode,
+ * if timecode is past end of file,
+ * all tracks are set to return EOF
+ * on next read
+ */
+#define MKVF_SEEK_TO_PREV_KEYFRAME 1
+
+X void mkv_Seek(/* in */ MatroskaFile *mf,
+ /* in */ ulonglong timecode /* in ns */,
+ /* in */ unsigned flags);
+
+X void mkv_SkipToKeyframe(MatroskaFile *mf);
+
+X ulonglong mkv_GetLowestQTimecode(MatroskaFile *mf);
+
+X int mkv_TruncFloat(MKFLOAT f);
+
+/***********************************************************************=
**
+ * reading data, pull model
+ */
+
+/* frame flags */
+#define FRAME_KF 0x00000001
+#define FRAME_UNKNOWN_START 0x00000002
+#define FRAME_UNKNOWN_END 0x00000004
+#define FRAME_GAP 0x00000008
+
+/* This sets the masking flags for the parser,
+ * masked tracks [with 1s in their bit positions]
+ * will be ignored when reading file data.
+ * This call discards all parsed and queued frames
+ */
+X void mkv_SetTrackMask(/* in */ MatroskaFile *mf,/* in */ unsigne=
d int mask);
+
+/* Read one frame from the queue.
+ * mask specifies what tracks to ignore.
+ * Returns -1 if there are no more frames in the specified
+ * set of tracks, 0 on success
+ */
+X int mkv_ReadFrame(/* in */ MatroskaFile *mf,
+ /* in */ unsigned int mask,
+ /* out */ unsigned int *track,
+ /* out */ ulonglong *StartTime /* in ns */,
+ /* out */ ulonglong *EndTime /* in ns */,
+ /* out */ ulonglong *FilePos /* in bytes from start of file */,
+ /* out */ unsigned int *FrameSize /* in bytes */,
+ /* out */ unsigned int *FrameFlags);
+
+/* Read raw frame data, invokes underlying io methods,
+ * but keeps track of the file pointer for internal buffering.
+ * Returns the -1 if error occurred, or 0 on success
+ */
+X int mkv_ReadData(/* in */ MatroskaFile *mf,
+ /* in */ ulonglong FilePos,
+ /* out */ void *Buffer,
+ /* in */ unsigned int Count);
+
+#ifdef MATROSKA_COMPRESSION_SUPPORT
+/* Compressed streams support */
+struct CompressedStream;
+
+typedef struct CompressedStream CompressedStream;
+
+X CompressedStream *cs_Create(/* in */ MatroskaFile *mf,
+ /* in */ unsigned tracknum,
+ /* out */ char *errormsg,
+ /* in */ unsigned msgsize);
+X void cs_Destroy(/* in */ CompressedStream *cs);
+
+/* advance to the next frame in matroska stream, you need to pass values=
returned
+ * by mkv_ReadFrame */
+X void cs_NextFrame(/* in */ CompressedStream *cs,
+ /* in */ ulonglong pos,
+ /* in */ unsigned size);
+
+/* read and decode more data from current frame, return number of bytes =
decoded,
+ * 0 on end of frame, or -1 on error */
+X int cs_ReadData(CompressedStream *cs,char *buffer,unsigned bufsize)=
;
+
+/* return error message for the last error */
+X const char *cs_GetLastError(CompressedStream *cs);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#undef X
+
+#endif
Property changes on: trunk/MatroskaUtils/GDC/GDCMatroska/MatroskaParser.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/GDC/GDCMatroska/Win32Stream.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/GDC/GDCMatroska/Win32Stream.h 2007-02-17 10:34:40=
UTC (rev 1276)
+++ trunk/MatroskaUtils/GDC/GDCMatroska/Win32Stream.h 2007-02-17 10:55:54=
UTC (rev 1277)
@@ -1,29 +1,29 @@
-#ifndef _WIN32_STREAM_H_
-#define _WIN32_STREAM_H_
-
-#include <windows.h>
-#include "MatroskaParser.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct Win32Stream {
- struct InputStream base;
- HANDLE fp;
- int error;
-};
-typedef struct Win32Stream Win32Stream;
-
-// Helper methods
-void Win32Stream_Init(Win32Stream *st);
-int Win32Stream_Open(Win32Stream *st, const char *filename);
-int Win32Stream_OpenA(Win32Stream *st, const char *filename);
-int Win32Stream_OpenW(Win32Stream *st, const wchar_t *filename);
-void Win32Stream_Close(Win32Stream *st);
-
-#ifdef __cplusplus
-}
-#endif
-
+#ifndef _WIN32_STREAM_H_
+#define _WIN32_STREAM_H_
+
+#include <windows.h>
+#include "MatroskaParser.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct Win32Stream {
+ struct InputStream base;
+ HANDLE fp;
+ int error;
+};
+typedef struct Win32Stream Win32Stream;
+
+// Helper methods
+void Win32Stream_Init(Win32Stream *st);
+int Win32Stream_Open(Win32Stream *st, const char *filename);
+int Win32Stream_OpenA(Win32Stream *st, const char *filename);
+int Win32Stream_OpenW(Win32Stream *st, const wchar_t *filename);
+void Win32Stream_Close(Win32Stream *st);
+
+#ifdef __cplusplus
+}
+#endif
+
#endif // _WIN32_STREAM_H_
\ No newline at end of file
Property changes on: trunk/MatroskaUtils/GDC/GDCMatroska/Win32Stream.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/MatroskaUtils/GDC/GDCMatroska/resource.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/GDC/GDCMatroska/stdafx.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/GDC/GDCMatroska/stdafx.h 2007-02-17 10:34:40 UTC =
(rev 1276)
+++ trunk/MatroskaUtils/GDC/GDCMatroska/stdafx.h 2007-02-17 10:55:54 UTC =
(rev 1277)
@@ -1,43 +1,43 @@
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
-#pragma once
-
-
-// Modify the following defines if you have to target a platform prior t=
o the ones specified below.
-// Refer to MSDN for the latest info on corresponding values for differe=
nt platforms.
-#ifndef WINVER // Allow use of features specific to Windows 95 and Wi=
ndows NT 4 or later.
-#define WINVER 0x0400 // Change this to the appropriate value to target=
Windows 98 and Windows 2000 or later.
-#endif
-
-#ifndef _WIN32_WINNT // Allow use of features specific to Windows NT 4 =
or later.
-#define _WIN32_WINNT 0x0400 // Change this to the appropriate value to t=
arget Windows 2000 or later.
-#endif =09
-
-#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 =
or later.
-#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to=
target Windows Me or later.
-#endif
-
-#ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later=
.
-#define _WIN32_IE 0x0400 // Change this to the appropriate value to targ=
et IE 5.0 or later.
-#endif
-
-#define _ATL_APARTMENT_THREADED
-#define _ATL_NO_AUTOMATIC_NAMESPACE
-
-//#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructor=
s will be explicit
-
-// turns off ATL's hiding of some common and often safely ignored warnin=
g messages
-#define _ATL_ALL_WARNINGS
-
-
-#include "resource.h"
-#include <atlbase.h>
-#include <atlcom.h>
-
-#include "../common/GoogleDesktopSearchAPI.h"
-#include "../common/GoogleDesktopComponentRegistration.h"
-
-using namespace ATL;
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#pragma once
+
+
+// Modify the following defines if you have to target a platform prior t=
o the ones specified below.
+// Refer to MSDN for the latest info on corresponding values for differe=
nt platforms.
+#ifndef WINVER // Allow use of features specific to Windows 95 and Wi=
ndows NT 4 or later.
+#define WINVER 0x0400 // Change this to the appropriate value to target=
Windows 98 and Windows 2000 or later.
+#endif
+
+#ifndef _WIN32_WINNT // Allow use of features specific to Windows NT 4 =
or later.
+#define _WIN32_WINNT 0x0400 // Change this to the appropriate value to t=
arget Windows 2000 or later.
+#endif =09
+
+#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 =
or later.
+#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to=
target Windows Me or later.
+#endif
+
+#ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later=
.
+#define _WIN32_IE 0x0400 // Change this to the appropriate value to targ=
et IE 5.0 or later.
+#endif
+
+#define _ATL_APARTMENT_THREADED
+#define _ATL_NO_AUTOMATIC_NAMESPACE
+
+//#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructor=
s will be explicit
+
+// turns off ATL's hiding of some common and often safely ignored warnin=
g messages
+#define _ATL_ALL_WARNINGS
+
+
+#include "resource.h"
+#include <atlbase.h>
+#include <atlcom.h>
+
+#include "../common/GoogleDesktopSearchAPI.h"
+#include "../common/GoogleDesktopComponentRegistration.h"
+
+using namespace ATL;
Property changes on: trunk/MatroskaUtils/GDC/GDCMatroska/stdafx.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/MatroskaUtils/GDC/common/GoogleDesktopComponen=
tRegistration.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/GDC/common/GoogleDesktopSearchAPI.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/GDC/common/GoogleDesktopSearchAPI.h 2007-02-17 10=
:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/GDC/common/GoogleDesktopSearchAPI.h 2007-02-17 10=
:55:54 UTC (rev 1277)
@@ -1,891 +1,891 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interface=
s */
-
-
- /* File created by MIDL compiler version 6.00.0361 */
-/* at Fri Mar 25 17:57:54 2005
- */
-/* Compiler settings for .\GoogleDesktopSearchAPI.idl:
- Oicf, W1, Zp8, env=3DWin32 (32b run)
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data=20
- VC __declspec() decoration level:=20
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-//@@MIDL_FILE_HEADING( )
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this fil=
e*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __GoogleDesktopSearchAPI_h__
-#define __GoogleDesktopSearchAPI_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >=3D 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */=20
-
-#ifndef __IGoogleDesktopSearchComponentRegistration_FWD_DEFINED__
-#define __IGoogleDesktopSearchComponentRegistration_FWD_DEFINED__
-typedef interface IGoogleDesktopSearchComponentRegistration IGoogleDeskt=
opSearchComponentRegistration;
-#endif /* __IGoogleDesktopSearchComponentRegistration_FWD_DEFINED__ */
-
-
-#ifndef __IGoogleDesktopSearchComponentRegister_FWD_DEFINED__
-#define __IGoogleDesktopSearchComponentRegister_FWD_DEFINED__
-typedef interface IGoogleDesktopSearchComponentRegister IGoogleDesktopSe=
archComponentRegister;
-#endif /* __IGoogleDesktopSearchComponentRegister_FWD_DEFINED__ */
-
-
-#ifndef __IGoogleDesktopSearchEvent_FWD_DEFINED__
-#define __IGoogleDesktopSearchEvent_FWD_DEFINED__
-typedef interface IGoogleDesktopSearchEvent IGoogleDesktopSearchEvent;
-#endif /* __IGoogleDesktopSearchEvent_FWD_DEFINED__ */
-
-
-#ifndef __IGoogleDesktopSearchEventFactory_FWD_DEFINED__
-#define __IGoogleDesktopSearchEventFactory_FWD_DEFINED__
-typedef interface IGoogleDesktopSearchEventFactory IGoogleDesktopSearchE=
ventFactory;
-#endif /* __IGoogleDesktopSearchEventFactory_FWD_DEFINED__ */
-
-
-#ifndef __DGoogleDesktopSearchFileNotify_FWD_DEFINED__
-#define __DGoogleDesktopSearchFileNotify_FWD_DEFINED__
-typedef interface DGoogleDesktopSearchFileNotify DGoogleDesktopSearchFil=
eNotify;
-#endif /* __DGoogleDesktopSearchFileNotify_FWD_DEFINED__ */
-
-
-#ifndef __DGoogleDesktopSearchFileNotify_FWD_DEFINED__
-#define __DGoogleDesktopSearchFileNotify_FWD_DEFINED__
-typedef interface DGoogleDesktopSearchFileNotify DGoogleDesktopSearchFil=
eNotify;
-#endif /* __DGoogleDesktopSearchFileNotify_FWD_DEFINED__ */
-
-
-#ifndef __IGoogleDesktopSearchEvent_FWD_DEFINED__
-#define __IGoogleDesktopSearchEvent_FWD_DEFINED__
-typedef interface IGoogleDesktopSearchEvent IGoogleDesktopSearchEvent;
-#endif /* __IGoogleDesktopSearchEvent_FWD_DEFINED__ */
-
-
-#ifndef __GoogleDesktopSearch_FWD_DEFINED__
-#define __GoogleDesktopSearch_FWD_DEFINED__
-
-#ifdef __cplusplus
-typedef class GoogleDesktopSearch GoogleDesktopSearch;
-#else
-typedef struct GoogleDesktopSearch GoogleDesktopSearch;
-#endif /* __cplusplus */
-
-#endif /* __GoogleDesktopSearch_FWD_DEFINED__ */
-
-
-#ifndef __GoogleDesktopSearchRegister_FWD_DEFINED__
-#define __GoogleDesktopSearchRegister_FWD_DEFINED__
-
-#ifdef __cplusplus
-typedef class GoogleDesktopSearchRegister GoogleDesktopSearchRegister;
-#else
-typedef struct GoogleDesktopSearchRegister GoogleDesktopSearchRegister;
-#endif /* __cplusplus */
-
-#endif /* __GoogleDesktopSearchRegister_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "oaidl.h"
-#include "ocidl.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif=20
-
-void * __RPC_USER MIDL_user_allocate(size_t);
-void __RPC_USER MIDL_user_free( void * );=20
-
-/* interface __MIDL_itf_GoogleDesktopSearchAPI_0000 */
-/* [local] */=20
-
-#include <winerror.h>
-#define E_EXTENSION_REGISTERED MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0001)
-#define E_COMPONENT_NOT_REGISTERED MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0002)
-#define E_NO_SUCH_SCHEMA MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0003)
-#define E_NO_SUCH_PROPERTY MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0004)
-#define E_COMPONENT_DISABLED MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0005)
-#define E_COMPONENT_ALREADY_REGISTERED MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0006)
-#define S_INDEXING_PAUSED MAKE_HRESULT(SEVERITY_SUCCESS, =
FACILITY_ITF, 0x0007)
-#define E_EVENT_TOO_LARGE MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0008)
-#define E_SERVICE_NOT_RUNNING MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0009)
-#define E_INVALID_EVENT_FLAGS MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x000A)
-
-
-extern RPC_IF_HANDLE __MIDL_itf_GoogleDesktopSearchAPI_0000_v0_0_c_ifspe=
c;
-extern RPC_IF_HANDLE __MIDL_itf_GoogleDesktopSearchAPI_0000_v0_0_s_ifspe=
c;
-
-#ifndef __IGoogleDesktopSearchComponentRegistration_INTERFACE_DEFINED__
-#define __IGoogleDesktopSearchComponentRegistration_INTERFACE_DEFINED__
-
-/* interface IGoogleDesktopSearchComponentRegistration */
-/* [unique][oleautomation][dual][uuid][object] */=20
-
-
-EXTERN_C const IID IID_IGoogleDesktopSearchComponentRegistration;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
- =20
- MIDL_INTERFACE("151857B2-26E0-4f4d-ACED-4F7E4B2065EF")
- IGoogleDesktopSearchComponentRegistration : public IDispatch
- {
- public:
- virtual /* [id] */ HRESULT STDMETHODCALLTYPE RegisterExtension(=20
- /* [in] */ BSTR extension_handled) =3D 0;
- =20
- };
- =20
-#else /* C style interface */
-
- typedef struct IGoogleDesktopSearchComponentRegistrationVtbl
- {
- BEGIN_INTERFACE
- =20
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(=20
- IGoogleDesktopSearchComponentRegistration * This,
- /* [in] */ REFIID riid,
- /* [iid_is][out] */ void **ppvObject);
- =20
- ULONG ( STDMETHODCALLTYPE *AddRef )(=20
- IGoogleDesktopSearchComponentRegistration * This);
- =20
- ULONG ( STDMETHODCALLTYPE *Release )(=20
- IGoogleDesktopSearchComponentRegistration * This);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(=20
- IGoogleDesktopSearchComponentRegistration * This,
- /* [out] */ UINT *pctinfo);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(=20
- IGoogleDesktopSearchComponentRegistration * This,
- /* [in] */ UINT iTInfo,
- /* [in] */ LCID lcid,
- /* [out] */ ITypeInfo **ppTInfo);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(=20
- IGoogleDesktopSearchComponentRegistration * This,
- /* [in] */ REFIID riid,
- /* [size_is][in] */ LPOLESTR *rgszNames,
- /* [in] */ UINT cNames,
- /* [in] */ LCID lcid,
- /* [size_is][out] */ DISPID *rgDispId);
- =20
- /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(=20
- IGoogleDesktopSearchComponentRegistration * This,
- /* [in] */ DISPID dispIdMember,
- /* [in] */ REFIID riid,
- /* [in] */ LCID lcid,
- /* [in] */ WORD wFlags,
- /* [out][in] */ DISPPARAMS *pDispParams,
- /* [out] */ VARIANT *pVarResult,
- /* [out] */ EXCEPINFO *pExcepInfo,
- /* [out] */ UINT *puArgErr);
- =20
- /* [id] */ HRESULT ( STDMETHODCALLTYPE *RegisterExtension )(=20
- IGoogleDesktopSearchComponentRegistration * This,
- /* [in] */ BSTR extension_handled);
- =20
- END_INTERFACE
- } IGoogleDesktopSearchComponentRegistrationVtbl;
-
- interface IGoogleDesktopSearchComponentRegistration
- {
- CONST_VTBL struct IGoogleDesktopSearchComponentRegistrationVtbl =
*lpVtbl;
- };
-
- =20
-
-#ifdef COBJMACROS
-
-
-#define IGoogleDesktopSearchComponentRegistration_QueryInterface(This,ri=
id,ppvObject) \
- (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
-
-#define IGoogleDesktopSearchComponentRegistration_AddRef(This) \
- (This)->lpVtbl -> AddRef(This)
-
-#define IGoogleDesktopSearchComponentRegistration_Release(This) \
- (This)->lpVtbl -> Release(This)
-
-
-#define IGoogleDesktopSearchComponentRegistration_GetTypeInfoCount(This,=
pctinfo) \
- (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
-
-#define IGoogleDesktopSearchComponentRegistration_GetTypeInfo(This,iTInf=
o,lcid,ppTInfo) \
- (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-
-#define IGoogleDesktopSearchComponentRegistration_GetIDsOfNames(This,rii=
d,rgszNames,cNames,lcid,rgDispId) \
- (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDi=
spId)
-
-#define IGoogleDesktopSearchComponentRegistration_Invoke(This,dispIdMemb=
er,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
- (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispPar=
ams,pVarResult,pExcepInfo,puArgErr)
-
-
-#define IGoogleDesktopSearchComponentRegistration_RegisterExtension(This=
,extension_handled) \
- (This)->lpVtbl -> RegisterExtension(This,extension_handled)
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-/* [id] */ HRESULT STDMETHODCALLTYPE IGoogleDesktopSearchComponentRegist=
ration_RegisterExtension_Proxy(=20
- IGoogleDesktopSearchComponentRegistration * This,
- /* [in] */ BSTR extension_handled);
-
-
-void __RPC_STUB IGoogleDesktopSearchComponentRegistration_RegisterExtens=
ion_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-
-#endif /* __IGoogleDesktopSearchComponentRegistration_INTERFACE_DEFINED=
__ */
-
-
-#ifndef __IGoogleDesktopSearchComponentRegister_INTERFACE_DEFINED__
-#define __IGoogleDesktopSearchComponentRegister_INTERFACE_DEFINED__
-
-/* interface IGoogleDesktopSearchComponentRegister */
-/* [unique][oleautomation][dual][uuid][object] */=20
-
-
-EXTERN_C const IID IID_IGoogleDesktopSearchComponentRegister;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
- =20
- MIDL_INTERFACE("9B311E80-BC95-4518-A58C-446EC9A082B5")
- IGoogleDesktopSearchComponentRegister : public IDispatch
- {
- public:
- virtual /* [id] */ HRESULT STDMETHODCALLTYPE RegisterComponent(=20
- /* [in] */ BSTR component_guid_or_progid,
- /* [in] */ VARIANT component_description,
- /* [retval][out] */ IGoogleDesktopSearchComponentRegistratio=
n **registration) =3D 0;
- =20
- virtual /* [id] */ HRESULT STDMETHODCALLTYPE UnregisterComponent=
(=20
- /* [in] */ BSTR component_guid_or_progid) =3D 0;
- =20
- };
- =20
-#else /* C style interface */
-
- typedef struct IGoogleDesktopSearchComponentRegisterVtbl
- {
- BEGIN_INTERFACE
- =20
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(=20
- IGoogleDesktopSearchComponentRegister * This,
- /* [in] */ REFIID riid,
- /* [iid_is][out] */ void **ppvObject);
- =20
- ULONG ( STDMETHODCALLTYPE *AddRef )(=20
- IGoogleDesktopSearchComponentRegister * This);
- =20
- ULONG ( STDMETHODCALLTYPE *Release )(=20
- IGoogleDesktopSearchComponentRegister * This);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(=20
- IGoogleDesktopSearchComponentRegister * This,
- /* [out] */ UINT *pctinfo);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(=20
- IGoogleDesktopSearchComponentRegister * This,
- /* [in] */ UINT iTInfo,
- /* [in] */ LCID lcid,
- /* [out] */ ITypeInfo **ppTInfo);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(=20
- IGoogleDesktopSearchComponentRegister * This,
- /* [in] */ REFIID riid,
- /* [size_is][in] */ LPOLESTR *rgszNames,
- /* [in] */ UINT cNames,
- /* [in] */ LCID lcid,
- /* [size_is][out] */ DISPID *rgDispId);
- =20
- /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(=20
- IGoogleDesktopSearchComponentRegister * This,
- /* [in] */ DISPID dispIdMember,
- /* [in] */ REFIID riid,
- /* [in] */ LCID lcid,
- /* [in] */ WORD wFlags,
- /* [out][in] */ DISPPARAMS *pDispParams,
- /* [out] */ VARIANT *pVarResult,
- /* [out] */ EXCEPINFO *pExcepInfo,
- /* [out] */ UINT *puArgErr);
- =20
- /* [id] */ HRESULT ( STDMETHODCALLTYPE *RegisterComponent )(=20
- IGoogleDesktopSearchComponentRegister * This,
- /* [in] */ BSTR component_guid_or_progid,
- /* [in] */ VARIANT component_description,
- /* [retval][out] */ IGoogleDesktopSearchComponentRegistratio=
n **registration);
- =20
- /* [id] */ HRESULT ( STDMETHODCALLTYPE *UnregisterComponent )(=20
- IGoogleDesktopSearchComponentRegister * This,
- /* [in] */ BSTR component_guid_or_progid);
- =20
- END_INTERFACE
- } IGoogleDesktopSearchComponentRegisterVtbl;
-
- interface IGoogleDesktopSearchComponentRegister
- {
- CONST_VTBL struct IGoogleDesktopSearchComponentRegisterVtbl *lpV=
tbl;
- };
-
- =20
-
-#ifdef COBJMACROS
-
-
-#define IGoogleDesktopSearchComponentRegister_QueryInterface(This,riid,p=
pvObject) \
- (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
-
-#define IGoogleDesktopSearchComponentRegister_AddRef(This) \
- (This)->lpVtbl -> AddRef(This)
-
-#define IGoogleDesktopSearchComponentRegister_Release(This) \
- (This)->lpVtbl -> Release(This)
-
-
-#define IGoogleDesktopSearchComponentRegister_GetTypeInfoCount(This,pcti=
nfo) \
- (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
-
-#define IGoogleDesktopSearchComponentRegister_GetTypeInfo(This,iTInfo,lc=
id,ppTInfo) \
- (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-
-#define IGoogleDesktopSearchComponentRegister_GetIDsOfNames(This,riid,rg=
szNames,cNames,lcid,rgDispId) \
- (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDi=
spId)
-
-#define IGoogleDesktopSearchComponentRegister_Invoke(This,dispIdMember,r=
iid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
- (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispPar=
ams,pVarResult,pExcepInfo,puArgErr)
-
-
-#define IGoogleDesktopSearchComponentRegister_RegisterComponent(This,com=
ponent_guid_or_progid,component_description,registration) \
- (This)->lpVtbl -> RegisterComponent(This,component_guid_or_progid,co=
mponent_description,registration)
-
-#define IGoogleDesktopSearchComponentRegister_UnregisterComponent(This,c=
omponent_guid_or_progid) \
- (This)->lpVtbl -> UnregisterComponent(This,component_guid_or_progid)
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-/* [id] */ HRESULT STDMETHODCALLTYPE IGoogleDesktopSearchComponentRegist=
er_RegisterComponent_Proxy(=20
- IGoogleDesktopSearchComponentRegister * This,
- /* [in] */ BSTR component_guid_or_progid,
- /* [in] */ VARIANT component_description,
- /* [retval][out] */ IGoogleDesktopSearchComponentRegistration **regi=
stration);
-
-
-void __RPC_STUB IGoogleDesktopSearchComponentRegister_RegisterComponent_=
Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [id] */ HRESULT STDMETHODCALLTYPE IGoogleDesktopSearchComponentRegist=
er_UnregisterComponent_Proxy(=20
- IGoogleDesktopSearchComponentRegister * This,
- /* [in] */ BSTR component_guid_or_progid);
-
-
-void __RPC_STUB IGoogleDesktopSearchComponentRegister_UnregisterComponen=
t_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-
-#endif /* __IGoogleDesktopSearchComponentRegister_INTERFACE_DEFINED__ *=
/
-
-
-#ifndef __IGoogleDesktopSearchEvent_INTERFACE_DEFINED__
-#define __IGoogleDesktopSearchEvent_INTERFACE_DEFINED__
-
-/* interface IGoogleDesktopSearchEvent */
-/* [unique][oleautomation][dual][uuid][object] */=20
-
-
-enum EventFlags
- { EventFlagIndexable =3D 0x1,
- EventFlagHistorical =3D 0x10
- } ;
-
-EXTERN_C const IID IID_IGoogleDesktopSearchEvent;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
- =20
- MIDL_INTERFACE("BDAC0047-4759-43a1-BA04-B148E1679E87")
- IGoogleDesktopSearchEvent : public IDispatch
- {
- public:
- virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddProperty(=20
- BSTR property_name,
- VARIANT property_value) =3D 0;
- =20
- virtual /* [id] */ HRESULT STDMETHODCALLTYPE Send(=20
- long event_flags) =3D 0;
- =20
- };
- =20
-#else /* C style interface */
-
- typedef struct IGoogleDesktopSearchEventVtbl
- {
- BEGIN_INTERFACE
- =20
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(=20
- IGoogleDesktopSearchEvent * This,
- /* [in] */ REFIID riid,
- /* [iid_is][out] */ void **ppvObject);
- =20
- ULONG ( STDMETHODCALLTYPE *AddRef )(=20
- IGoogleDesktopSearchEvent * This);
- =20
- ULONG ( STDMETHODCALLTYPE *Release )(=20
- IGoogleDesktopSearchEvent * This);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(=20
- IGoogleDesktopSearchEvent * This,
- /* [out] */ UINT *pctinfo);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(=20
- IGoogleDesktopSearchEvent * This,
- /* [in] */ UINT iTInfo,
- /* [in] */ LCID lcid,
- /* [out] */ ITypeInfo **ppTInfo);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(=20
- IGoogleDesktopSearchEvent * This,
- /* [in] */ REFIID riid,
- /* [size_is][in] */ LPOLESTR *rgszNames,
- /* [in] */ UINT cNames,
- /* [in] */ LCID lcid,
- /* [size_is][out] */ DISPID *rgDispId);
- =20
- /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(=20
- IGoogleDesktopSearchEvent * This,
- /* [in] */ DISPID dispIdMember,
- /* [in] */ REFIID riid,
- /* [in] */ LCID lcid,
- /* [in] */ WORD wFlags,
- /* [out][in] */ DISPPARAMS *pDispParams,
- /* [out] */ VARIANT *pVarResult,
- /* [out] */ EXCEPINFO *pExcepInfo,
- /* [out] */ UINT *puArgErr);
- =20
- /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddProperty )(=20
- IGoogleDesktopSearchEvent * This,
- BSTR property_name,
- VARIANT property_value);
- =20
- /* [id] */ HRESULT ( STDMETHODCALLTYPE *Send )(=20
- IGoogleDesktopSearchEvent * This,
- long event_flags);
- =20
- END_INTERFACE
- } IGoogleDesktopSearchEventVtbl;
-
- interface IGoogleDesktopSearchEvent
- {
- CONST_VTBL struct IGoogleDesktopSearchEventVtbl *lpVtbl;
- };
-
- =20
-
-#ifdef COBJMACROS
-
-
-#define IGoogleDesktopSearchEvent_QueryInterface(This,riid,ppvObject) \
- (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
-
-#define IGoogleDesktopSearchEvent_AddRef(This) \
- (This)->lpVtbl -> AddRef(This)
-
-#define IGoogleDesktopSearchEvent_Release(This) \
- (This)->lpVtbl -> Release(This)
-
-
-#define IGoogleDesktopSearchEvent_GetTypeInfoCount(This,pctinfo) \
- (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
-
-#define IGoogleDesktopSearchEvent_GetTypeInfo(This,iTInfo,lcid,ppTInfo) =
\
- (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-
-#define IGoogleDesktopSearchEvent_GetIDsOfNames(This,riid,rgszNames,cNam=
es,lcid,rgDispId) \
- (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDi=
spId)
-
-#define IGoogleDesktopSearchEvent_Invoke(This,dispIdMember,riid,lcid,wFl=
ags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
- (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispPar=
ams,pVarResult,pExcepInfo,puArgErr)
-
-
-#define IGoogleDesktopSearchEvent_AddProperty(This,property_name,propert=
y_value) \
- (This)->lpVtbl -> AddProperty(This,property_name,property_value)
-
-#define IGoogleDesktopSearchEvent_Send(This,event_flags) \
- (This)->lpVtbl -> Send(This,event_flags)
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-/* [id] */ HRESULT STDMETHODCALLTYPE IGoogleDesktopSearchEvent_AddProper=
ty_Proxy(=20
- IGoogleDesktopSearchEvent * This,
- BSTR property_name,
- VARIANT property_value);
-
-
-void __RPC_STUB IGoogleDesktopSearchEvent_AddProperty_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [id] */ HRESULT STDMETHODCALLTYPE IGoogleDesktopSearchEvent_Send_Prox=
y(=20
- IGoogleDesktopSearchEvent * This,
- long event_flags);
-
-
-void __RPC_STUB IGoogleDesktopSearchEvent_Send_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-
-#endif /* __IGoogleDesktopSearchEvent_INTERFACE_DEFINED__ */
-
-
-#ifndef __IGoogleDesktopSearchEventFactory_INTERFACE_DEFINED__
-#define __IGoogleDesktopSearchEventFactory_INTERFACE_DEFINED__
-
-/* interface IGoogleDesktopSearchEventFactory */
-/* [unique][oleautomation][dual][uuid][object] */=20
-
-
-EXTERN_C const IID IID_IGoogleDesktopSearchEventFactory;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
- =20
- MIDL_INTERFACE("A79E51C6-DB2D-4a44-848E-A8EBB22E5337")
- IGoogleDesktopSearchEventFactory : public IDispatch
- {
- public:
- virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateEvent(=20
- /* [in] */ BSTR component_guid_or_progid,
- /* [in] */ BSTR schema_name,
- /* [retval][out] */ IDispatch **event) =3D 0;
- =20
- };
- =20
-#else /* C style interface */
-
- typedef struct IGoogleDesktopSearchEventFactoryVtbl
- {
- BEGIN_INTERFACE
- =20
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(=20
- IGoogleDesktopSearchEventFactory * This,
- /* [in] */ REFIID riid,
- /* [iid_is][out] */ void **ppvObject);
- =20
- ULONG ( STDMETHODCALLTYPE *AddRef )(=20
- IGoogleDesktopSearchEventFactory * This);
- =20
- ULONG ( STDMETHODCALLTYPE *Release )(=20
- IGoogleDesktopSearchEventFactory * This);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(=20
- IGoogleDesktopSearchEventFactory * This,
- /* [out] */ UINT *pctinfo);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(=20
- IGoogleDesktopSearchEventFactory * This,
- /* [in] */ UINT iTInfo,
- /* [in] */ LCID lcid,
- /* [out] */ ITypeInfo **ppTInfo);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(=20
- IGoogleDesktopSearchEventFactory * This,
- /* [in] */ REFIID riid,
- /* [size_is][in] */ LPOLESTR *rgszNames,
- /* [in] */ UINT cNames,
- /* [in] */ LCID lcid,
- /* [size_is][out] */ DISPID *rgDispId);
- =20
- /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(=20
- IGoogleDesktopSearchEventFactory * This,
- /* [in] */ DISPID dispIdMember,
- /* [in] */ REFIID riid,
- /* [in] */ LCID lcid,
- /* [in] */ WORD wFlags,
- /* [out][in] */ DISPPARAMS *pDispParams,
- /* [out] */ VARIANT *pVarResult,
- /* [out] */ EXCEPINFO *pExcepInfo,
- /* [out] */ UINT *puArgErr);
- =20
- /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateEvent )(=20
- IGoogleDesktopSearchEventFactory * This,
- /* [in] */ BSTR component_guid_or_progid,
- /* [in] */ BSTR schema_name,
- /* [retval][out] */ IDispatch **event);
- =20
- END_INTERFACE
- } IGoogleDesktopSearchEventFactoryVtbl;
-
- interface IGoogleDesktopSearchEventFactory
- {
- CONST_VTBL struct IGoogleDesktopSearchEventFactoryVtbl *lpVtbl;
- };
-
- =20
-
-#ifdef COBJMACROS
-
-
-#define IGoogleDesktopSearchEventFactory_QueryInterface(This,riid,ppvObj=
ect) \
- (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
-
-#define IGoogleDesktopSearchEventFactory_AddRef(This) \
- (This)->lpVtbl -> AddRef(This)
-
-#define IGoogleDesktopSearchEventFactory_Release(This) \
- (This)->lpVtbl -> Release(This)
-
-
-#define IGoogleDesktopSearchEventFactory_GetTypeInfoCount(This,pctinfo) =
\
- (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
-
-#define IGoogleDesktopSearchEventFactory_GetTypeInfo(This,iTInfo,lcid,pp=
TInfo) \
- (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-
-#define IGoogleDesktopSearchEventFactory_GetIDsOfNames(This,riid,rgszNam=
es,cNames,lcid,rgDispId) \
- (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDi=
spId)
-
-#define IGoogleDesktopSearchEventFactory_Invoke(This,dispIdMember,riid,l=
cid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
- (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispPar=
ams,pVarResult,pExcepInfo,puArgErr)
-
-
-#define IGoogleDesktopSearchEventFactory_CreateEvent(This,component_guid=
_or_progid,schema_name,event) \
- (This)->lpVtbl -> CreateEvent(This,component_guid_or_progid,schema_n=
ame,event)
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-/* [id] */ HRESULT STDMETHODCALLTYPE IGoogleDesktopSearchEventFactory_Cr=
eateEvent_Proxy(=20
- IGoogleDesktopSearchEventFactory * This,
- /* [in] */ BSTR component_guid_or_progid,
- /* [in] */ BSTR schema_name,
- /* [retval][out] */ IDispatch **event);
-
-
-void __RPC_STUB IGoogleDesktopSearchEventFactory_CreateEvent_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-
-#endif /* __IGoogleDesktopSearchEventFactory_INTERFACE_DEFINED__ */
-
-
-
-#ifndef __GoogleDesktopSearchAPILib_LIBRARY_DEFINED__
-#define __GoogleDesktopSearchAPILib_LIBRARY_DEFINED__
-
-/* library GoogleDesktopSearchAPILib */
-/* [helpstring][version][uuid] */=20
-
-
-
-
-EXTERN_C const IID LIBID_GoogleDesktopSearchAPILib;
-
-#ifndef __DGoogleDesktopSearchFileNotify_DISPINTERFACE_DEFINED__
-#define __DGoogleDesktopSearchFileNotify_DISPINTERFACE_DEFINED__
-
-/* dispinterface DGoogleDesktopSearchFileNotify */
-/* [uuid] */=20
-
-
-EXTERN_C const IID DIID_DGoogleDesktopSearchFileNotify;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("A1DE6DB8-B20F-445c-BFDE-16C8D53A2FA1")
- DGoogleDesktopSearchFileNotify : public IDispatch
- {
- };
- =20
-#else /* C style interface */
-
- typedef struct DGoogleDesktopSearchFileNotifyVtbl
- {
- BEGIN_INTERFACE
- =20
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(=20
- DGoogleDesktopSearchFileNotify * This,
- /* [in] */ REFIID riid,
- /* [iid_is][out] */ void **ppvObject);
- =20
- ULONG ( STDMETHODCALLTYPE *AddRef )(=20
- DGoogleDesktopSearchFileNotify * This);
- =20
- ULONG ( STDMETHODCALLTYPE *Release )(=20
- DGoogleDesktopSearchFileNotify * This);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(=20
- DGoogleDesktopSearchFileNotify * This,
- /* [out] */ UINT *pctinfo);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(=20
- DGoogleDesktopSearchFileNotify * This,
- /* [in] */ UINT iTInfo,
- /* [in] */ LCID lcid,
- /* [out] */ ITypeInfo **ppTInfo);
- =20
- HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(=20
- DGoogleDesktopSearchFileNotify * This,
- /* [in] */ REFIID riid,
- /* [size_is][in] */ LPOLESTR *rgszNames,
- /* [in] */ UINT cNames,
- /* [in] */ LCID lcid,
- /* [size_is][out] */ DISPID *rgDispId);
- =20
- /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(=20
- DGoogleDesktopSearchFileNotify * This,
- /* [in] */ DISPID dispIdMember,
- /* [in] */ REFIID riid,
- /* [in] */ LCID lcid,
- /* [in] */ WORD wFlags,
- /* [out][in] */ DISPPARAMS *pDispParams,
- /* [out] */ VARIANT *pVarResult,
- /* [out] */ EXCEPINFO *pExcepInfo,
- /* [out] */ UINT *puArgErr);
- =20
- END_INTERFACE
- } DGoogleDesktopSearchFileNotifyVtbl;
-
- interface DGoogleDesktopSearchFileNotify
- {
- CONST_VTBL struct DGoogleDesktopSearchFileNotifyVtbl *lpVtbl;
- };
-
- =20
-
-#ifdef COBJMACROS
-
-
-#define DGoogleDesktopSearchFileNotify_QueryInterface(This,riid,ppvObjec=
t) \
- (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
-
-#define DGoogleDesktopSearchFileNotify_AddRef(This) \
- (This)->lpVtbl -> AddRef(This)
-
-#define DGoogleDesktopSearchFileNotify_Release(This) \
- (This)->lpVtbl -> Release(This)
-
-
-#define DGoogleDesktopSearchFileNotify_GetTypeInfoCount(This,pctinfo) \
- (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
-
-#define DGoogleDesktopSearchFileNotify_GetTypeInfo(This,iTInfo,lcid,ppTI=
nfo) \
- (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-
-#define DGoogleDesktopSearchFileNotify_GetIDsOfNames(This,riid,rgszNames=
,cNames,lcid,rgDispId) \
- (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDi=
spId)
-
-#define DGoogleDesktopSearchFileNotify_Invoke(This,dispIdMember,riid,lci=
d,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
- (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispPar=
ams,pVarResult,pExcepInfo,puArgErr)
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-#endif /* __DGoogleDesktopSearchFileNotify_DISPINTERFACE_DEFINED__ */
-
-
-EXTERN_C const CLSID CLSID_GoogleDesktopSearch;
-
-#ifdef __cplusplus
-
-class DECLSPEC_UUID("579822B3-44CD-4786-83E0-AE32BCB9E6B1")
-GoogleDesktopSearch;
-#endif
-
-EXTERN_C const CLSID CLSID_GoogleDesktopSearchRegister;
-
-#ifdef __cplusplus
-
-class DECLSPEC_UUID("BB8B07A0-B8D1-44e0-A262-C9B7212AEC68")
-GoogleDesktopSearchRegister;
-#endif
-#endif /* __GoogleDesktopSearchAPILib_LIBRARY_DEFINED__ */
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *=
, unsigned long , BSTR * );=20
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned=
char *, BSTR * );=20
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned=
char *, BSTR * );=20
-void __RPC_USER BSTR_UserFree( unsigned long *=
, BSTR * );=20
-
-unsigned long __RPC_USER VARIANT_UserSize( unsigned lon=
g *, unsigned long , VARIANT * );=20
-unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsig=
ned char *, VARIANT * );=20
-unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsig=
ned char *, VARIANT * );=20
-void __RPC_USER VARIANT_UserFree( unsigned lon=
g *, VARIANT * );=20
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interface=
s */
+
+
+ /* File created by MIDL compiler version 6.00.0361 */
+/* at Fri Mar 25 17:57:54 2005
+ */
+/* Compiler settings for .\GoogleDesktopSearchAPI.idl:
+ Oicf, W1, Zp8, env=3DWin32 (32b run)
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data=20
+ VC __declspec() decoration level:=20
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+//@@MIDL_FILE_HEADING( )
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this fil=
e*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __GoogleDesktopSearchAPI_h__
+#define __GoogleDesktopSearchAPI_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >=3D 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */=20
+
+#ifndef __IGoogleDesktopSearchComponentRegistration_FWD_DEFINED__
+#define __IGoogleDesktopSearchComponentRegistration_FWD_DEFINED__
+typedef interface IGoogleDesktopSearchComponentRegistration IGoogleDeskt=
opSearchComponentRegistration;
+#endif /* __IGoogleDesktopSearchComponentRegistration_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleDesktopSearchComponentRegister_FWD_DEFINED__
+#define __IGoogleDesktopSearchComponentRegister_FWD_DEFINED__
+typedef interface IGoogleDesktopSearchComponentRegister IGoogleDesktopSe=
archComponentRegister;
+#endif /* __IGoogleDesktopSearchComponentRegister_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleDesktopSearchEvent_FWD_DEFINED__
+#define __IGoogleDesktopSearchEvent_FWD_DEFINED__
+typedef interface IGoogleDesktopSearchEvent IGoogleDesktopSearchEvent;
+#endif /* __IGoogleDesktopSearchEvent_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleDesktopSearchEventFactory_FWD_DEFINED__
+#define __IGoogleDesktopSearchEventFactory_FWD_DEFINED__
+typedef interface IGoogleDesktopSearchEventFactory IGoogleDesktopSearchE=
ventFactory;
+#endif /* __IGoogleDesktopSearchEventFactory_FWD_DEFINED__ */
+
+
+#ifndef __DGoogleDesktopSearchFileNotify_FWD_DEFINED__
+#define __DGoogleDesktopSearchFileNotify_FWD_DEFINED__
+typedef interface DGoogleDesktopSearchFileNotify DGoogleDesktopSearchFil=
eNotify;
+#endif /* __DGoogleDesktopSearchFileNotify_FWD_DEFINED__ */
+
+
+#ifndef __DGoogleDesktopSearchFileNotify_FWD_DEFINED__
+#define __DGoogleDesktopSearchFileNotify_FWD_DEFINED__
+typedef interface DGoogleDesktopSearchFileNotify DGoogleDesktopSearchFil=
eNotify;
+#endif /* __DGoogleDesktopSearchFileNotify_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleDesktopSearchEvent_FWD_DEFINED__
+#define __IGoogleDesktopSearchEvent_FWD_DEFINED__
+typedef interface IGoogleDesktopSearchEvent IGoogleDesktopSearchEvent;
+#endif /* __IGoogleDesktopSearchEvent_FWD_DEFINED__ */
+
+
+#ifndef __GoogleDesktopSearch_FWD_DEFINED__
+#define __GoogleDesktopSearch_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleDesktopSearch GoogleDesktopSearch;
+#else
+typedef struct GoogleDesktopSearch GoogleDesktopSearch;
+#endif /* __cplusplus */
+
+#endif /* __GoogleDesktopSearch_FWD_DEFINED__ */
+
+
+#ifndef __GoogleDesktopSearchRegister_FWD_DEFINED__
+#define __GoogleDesktopSearchRegister_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleDesktopSearchRegister GoogleDesktopSearchRegister;
+#else
+typedef struct GoogleDesktopSearchRegister GoogleDesktopSearchRegister;
+#endif /* __cplusplus */
+
+#endif /* __GoogleDesktopSearchRegister_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "oaidl.h"
+#include "ocidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif=20
+
+void * __RPC_USER MIDL_user_allocate(size_t);
+void __RPC_USER MIDL_user_free( void * );=20
+
+/* interface __MIDL_itf_GoogleDesktopSearchAPI_0000 */
+/* [local] */=20
+
+#include <winerror.h>
+#define E_EXTENSION_REGISTERED MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0001)
+#define E_COMPONENT_NOT_REGISTERED MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0002)
+#define E_NO_SUCH_SCHEMA MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0003)
+#define E_NO_SUCH_PROPERTY MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0004)
+#define E_COMPONENT_DISABLED MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0005)
+#define E_COMPONENT_ALREADY_REGISTERED MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0006)
+#define S_INDEXING_PAUSED MAKE_HRESULT(SEVERITY_SUCCESS, =
FACILITY_ITF, 0x0007)
+#define E_EVENT_TOO_LARGE MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0008)
+#define E_SERVICE_NOT_RUNNING MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x0009)
+#define E_INVALID_EVENT_FLAGS MAKE_HRESULT(SEVERITY_ERROR, FA=
CILITY_ITF, 0x000A)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_GoogleDesktopSearchAPI_0000_v0_0_c_ifspe=
c;
+extern RPC_IF_HANDLE __MIDL_itf_GoogleDesktopSearchAPI_0000_v0_0_s_ifspe=
c;
+
+#ifndef __IGoogleDesktopSearchComponentRegistration_INTERFACE_DEFINED__
+#define __IGoogleDesktopSearchComponentRegistration_INTERFACE_DEFINED__
+
+/* interface IGoogleDesktopSearchComponentRegistration */
+/* [unique][oleautomation][dual][uuid][object] */=20
+
+
+EXTERN_C const IID IID_IGoogleDesktopSearchComponentRegistration;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+ =20
+ MIDL_INTERFACE("151857B2-26E0-4f4d-ACED-4F7E4B2065EF")
+ IGoogleDesktopSearchComponentRegistration : public IDispatch
+ {
+ public:
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE RegisterExtension(=20
+ /* [in] */ BSTR extension_handled) =3D 0;
+ =20
+ };
+ =20
+#else /* C style interface */
+
+ typedef struct IGoogleDesktopSearchComponentRegistrationVtbl
+ {
+ BEGIN_INTERFACE
+ =20
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(=20
+ IGoogleDesktopSearchComponentRegistration * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+ =20
+ ULONG ( STDMETHODCALLTYPE *AddRef )(=20
+ IGoogleDesktopSearchComponentRegistration * This);
+ =20
+ ULONG ( STDMETHODCALLTYPE *Release )(=20
+ IGoogleDesktopSearchComponentRegistration * This);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(=20
+ IGoogleDesktopSearchComponentRegistration * This,
+ /* [out] */ UINT *pctinfo);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(=20
+ IGoogleDesktopSearchComponentRegistration * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(=20
+ IGoogleDesktopSearchComponentRegistration * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+ =20
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(=20
+ IGoogleDesktopSearchComponentRegistration * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+ =20
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *RegisterExtension )(=20
+ IGoogleDesktopSearchComponentRegistration * This,
+ /* [in] */ BSTR extension_handled);
+ =20
+ END_INTERFACE
+ } IGoogleDesktopSearchComponentRegistrationVtbl;
+
+ interface IGoogleDesktopSearchComponentRegistration
+ {
+ CONST_VTBL struct IGoogleDesktopSearchComponentRegistrationVtbl =
*lpVtbl;
+ };
+
+ =20
+
+#ifdef COBJMACROS
+
+
+#define IGoogleDesktopSearchComponentRegistration_QueryInterface(This,ri=
id,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define IGoogleDesktopSearchComponentRegistration_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define IGoogleDesktopSearchComponentRegistration_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define IGoogleDesktopSearchComponentRegistration_GetTypeInfoCount(This,=
pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define IGoogleDesktopSearchComponentRegistration_GetTypeInfo(This,iTInf=
o,lcid,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define IGoogleDesktopSearchComponentRegistration_GetIDsOfNames(This,rii=
d,rgszNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDi=
spId)
+
+#define IGoogleDesktopSearchComponentRegistration_Invoke(This,dispIdMemb=
er,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispPar=
ams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define IGoogleDesktopSearchComponentRegistration_RegisterExtension(This=
,extension_handled) \
+ (This)->lpVtbl -> RegisterExtension(This,extension_handled)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id] */ HRESULT STDMETHODCALLTYPE IGoogleDesktopSearchComponentRegist=
ration_RegisterExtension_Proxy(=20
+ IGoogleDesktopSearchComponentRegistration * This,
+ /* [in] */ BSTR extension_handled);
+
+
+void __RPC_STUB IGoogleDesktopSearchComponentRegistration_RegisterExtens=
ion_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __IGoogleDesktopSearchComponentRegistration_INTERFACE_DEFINED=
__ */
+
+
+#ifndef __IGoogleDesktopSearchComponentRegister_INTERFACE_DEFINED__
+#define __IGoogleDesktopSearchComponentRegister_INTERFACE_DEFINED__
+
+/* interface IGoogleDesktopSearchComponentRegister */
+/* [unique][oleautomation][dual][uuid][object] */=20
+
+
+EXTERN_C const IID IID_IGoogleDesktopSearchComponentRegister;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+ =20
+ MIDL_INTERFACE("9B311E80-BC95-4518-A58C-446EC9A082B5")
+ IGoogleDesktopSearchComponentRegister : public IDispatch
+ {
+ public:
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE RegisterComponent(=20
+ /* [in] */ BSTR component_guid_or_progid,
+ /* [in] */ VARIANT component_description,
+ /* [retval][out] */ IGoogleDesktopSearchComponentRegistratio=
n **registration) =3D 0;
+ =20
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE UnregisterComponent=
(=20
+ /* [in] */ BSTR component_guid_or_progid) =3D 0;
+ =20
+ };
+ =20
+#else /* C style interface */
+
+ typedef struct IGoogleDesktopSearchComponentRegisterVtbl
+ {
+ BEGIN_INTERFACE
+ =20
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(=20
+ IGoogleDesktopSearchComponentRegister * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+ =20
+ ULONG ( STDMETHODCALLTYPE *AddRef )(=20
+ IGoogleDesktopSearchComponentRegister * This);
+ =20
+ ULONG ( STDMETHODCALLTYPE *Release )(=20
+ IGoogleDesktopSearchComponentRegister * This);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(=20
+ IGoogleDesktopSearchComponentRegister * This,
+ /* [out] */ UINT *pctinfo);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(=20
+ IGoogleDesktopSearchComponentRegister * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(=20
+ IGoogleDesktopSearchComponentRegister * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+ =20
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(=20
+ IGoogleDesktopSearchComponentRegister * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+ =20
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *RegisterComponent )(=20
+ IGoogleDesktopSearchComponentRegister * This,
+ /* [in] */ BSTR component_guid_or_progid,
+ /* [in] */ VARIANT component_description,
+ /* [retval][out] */ IGoogleDesktopSearchComponentRegistratio=
n **registration);
+ =20
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *UnregisterComponent )(=20
+ IGoogleDesktopSearchComponentRegister * This,
+ /* [in] */ BSTR component_guid_or_progid);
+ =20
+ END_INTERFACE
+ } IGoogleDesktopSearchComponentRegisterVtbl;
+
+ interface IGoogleDesktopSearchComponentRegister
+ {
+ CONST_VTBL struct IGoogleDesktopSearchComponentRegisterVtbl *lpV=
tbl;
+ };
+
+ =20
+
+#ifdef COBJMACROS
+
+
+#define IGoogleDesktopSearchComponentRegister_QueryInterface(This,riid,p=
pvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define IGoogleDesktopSearchComponentRegister_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define IGoogleDesktopSearchComponentRegister_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define IGoogleDesktopSearchComponentRegister_GetTypeInfoCount(This,pcti=
nfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define IGoogleDesktopSearchComponentRegister_GetTypeInfo(This,iTInfo,lc=
id,ppTInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define IGoogleDesktopSearchComponentRegister_GetIDsOfNames(This,riid,rg=
szNames,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDi=
spId)
+
+#define IGoogleDesktopSearchComponentRegister_Invoke(This,dispIdMember,r=
iid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispPar=
ams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define IGoogleDesktopSearchComponentRegister_RegisterComponent(This,com=
ponent_guid_or_progid,component_description,registration) \
+ (This)->lpVtbl -> RegisterComponent(This,component_guid_or_progid,co=
mponent_description,registration)
+
+#define IGoogleDesktopSearchComponentRegister_UnregisterComponent(This,c=
omponent_guid_or_progid) \
+ (This)->lpVtbl -> UnregisterComponent(This,component_guid_or_progid)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id] */ HRESULT STDMETHODCALLTYPE IGoogleDesktopSearchComponentRegist=
er_RegisterComponent_Proxy(=20
+ IGoogleDesktopSearchComponentRegister * This,
+ /* [in] */ BSTR component_guid_or_progid,
+ /* [in] */ VARIANT component_description,
+ /* [retval][out] */ IGoogleDesktopSearchComponentRegistration **regi=
stration);
+
+
+void __RPC_STUB IGoogleDesktopSearchComponentRegister_RegisterComponent_=
Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id] */ HRESULT STDMETHODCALLTYPE IGoogleDesktopSearchComponentRegist=
er_UnregisterComponent_Proxy(=20
+ IGoogleDesktopSearchComponentRegister * This,
+ /* [in] */ BSTR component_guid_or_progid);
+
+
+void __RPC_STUB IGoogleDesktopSearchComponentRegister_UnregisterComponen=
t_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __IGoogleDesktopSearchComponentRegister_INTERFACE_DEFINED__ *=
/
+
+
+#ifndef __IGoogleDesktopSearchEvent_INTERFACE_DEFINED__
+#define __IGoogleDesktopSearchEvent_INTERFACE_DEFINED__
+
+/* interface IGoogleDesktopSearchEvent */
+/* [unique][oleautomation][dual][uuid][object] */=20
+
+
+enum EventFlags
+ { EventFlagIndexable =3D 0x1,
+ EventFlagHistorical =3D 0x10
+ } ;
+
+EXTERN_C const IID IID_IGoogleDesktopSearchEvent;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+ =20
+ MIDL_INTERFACE("BDAC0047-4759-43a1-BA04-B148E1679E87")
+ IGoogleDesktopSearchEvent : public IDispatch
+ {
+ public:
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddProperty(=20
+ BSTR property_name,
+ VARIANT property_value) =3D 0;
+ =20
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE Send(=20
+ long event_flags) =3D 0;
+ =20
+ };
+ =20
+#else /* C style interface */
+
+ typedef struct IGoogleDesktopSearchEventVtbl
+ {
+ BEGIN_INTERFACE
+ =20
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(=20
+ IGoogleDesktopSearchEvent * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+ =20
+ ULONG ( STDMETHODCALLTYPE *AddRef )(=20
+ IGoogleDesktopSearchEvent * This);
+ =20
+ ULONG ( STDMETHODCALLTYPE *Release )(=20
+ IGoogleDesktopSearchEvent * This);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(=20
+ IGoogleDesktopSearchEvent * This,
+ /* [out] */ UINT *pctinfo);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(=20
+ IGoogleDesktopSearchEvent * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(=20
+ IGoogleDesktopSearchEvent * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+ =20
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(=20
+ IGoogleDesktopSearchEvent * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+ =20
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddProperty )(=20
+ IGoogleDesktopSearchEvent * This,
+ BSTR property_name,
+ VARIANT property_value);
+ =20
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Send )(=20
+ IGoogleDesktopSearchEvent * This,
+ long event_flags);
+ =20
+ END_INTERFACE
+ } IGoogleDesktopSearchEventVtbl;
+
+ interface IGoogleDesktopSearchEvent
+ {
+ CONST_VTBL struct IGoogleDesktopSearchEventVtbl *lpVtbl;
+ };
+
+ =20
+
+#ifdef COBJMACROS
+
+
+#define IGoogleDesktopSearchEvent_QueryInterface(This,riid,ppvObject) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define IGoogleDesktopSearchEvent_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define IGoogleDesktopSearchEvent_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define IGoogleDesktopSearchEvent_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define IGoogleDesktopSearchEvent_GetTypeInfo(This,iTInfo,lcid,ppTInfo) =
\
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define IGoogleDesktopSearchEvent_GetIDsOfNames(This,riid,rgszNames,cNam=
es,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDi=
spId)
+
+#define IGoogleDesktopSearchEvent_Invoke(This,dispIdMember,riid,lcid,wFl=
ags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispPar=
ams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define IGoogleDesktopSearchEvent_AddProperty(This,property_name,propert=
y_value) \
+ (This)->lpVtbl -> AddProperty(This,property_name,property_value)
+
+#define IGoogleDesktopSearchEvent_Send(This,event_flags) \
+ (This)->lpVtbl -> Send(This,event_flags)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id] */ HRESULT STDMETHODCALLTYPE IGoogleDesktopSearchEvent_AddProper=
ty_Proxy(=20
+ IGoogleDesktopSearchEvent * This,
+ BSTR property_name,
+ VARIANT property_value);
+
+
+void __RPC_STUB IGoogleDesktopSearchEvent_AddProperty_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+/* [id] */ HRESULT STDMETHODCALLTYPE IGoogleDesktopSearchEvent_Send_Prox=
y(=20
+ IGoogleDesktopSearchEvent * This,
+ long event_flags);
+
+
+void __RPC_STUB IGoogleDesktopSearchEvent_Send_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __IGoogleDesktopSearchEvent_INTERFACE_DEFINED__ */
+
+
+#ifndef __IGoogleDesktopSearchEventFactory_INTERFACE_DEFINED__
+#define __IGoogleDesktopSearchEventFactory_INTERFACE_DEFINED__
+
+/* interface IGoogleDesktopSearchEventFactory */
+/* [unique][oleautomation][dual][uuid][object] */=20
+
+
+EXTERN_C const IID IID_IGoogleDesktopSearchEventFactory;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+ =20
+ MIDL_INTERFACE("A79E51C6-DB2D-4a44-848E-A8EBB22E5337")
+ IGoogleDesktopSearchEventFactory : public IDispatch
+ {
+ public:
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateEvent(=20
+ /* [in] */ BSTR component_guid_or_progid,
+ /* [in] */ BSTR schema_name,
+ /* [retval][out] */ IDispatch **event) =3D 0;
+ =20
+ };
+ =20
+#else /* C style interface */
+
+ typedef struct IGoogleDesktopSearchEventFactoryVtbl
+ {
+ BEGIN_INTERFACE
+ =20
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(=20
+ IGoogleDesktopSearchEventFactory * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+ =20
+ ULONG ( STDMETHODCALLTYPE *AddRef )(=20
+ IGoogleDesktopSearchEventFactory * This);
+ =20
+ ULONG ( STDMETHODCALLTYPE *Release )(=20
+ IGoogleDesktopSearchEventFactory * This);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(=20
+ IGoogleDesktopSearchEventFactory * This,
+ /* [out] */ UINT *pctinfo);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(=20
+ IGoogleDesktopSearchEventFactory * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(=20
+ IGoogleDesktopSearchEventFactory * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+ =20
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(=20
+ IGoogleDesktopSearchEventFactory * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+ =20
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateEvent )(=20
+ IGoogleDesktopSearchEventFactory * This,
+ /* [in] */ BSTR component_guid_or_progid,
+ /* [in] */ BSTR schema_name,
+ /* [retval][out] */ IDispatch **event);
+ =20
+ END_INTERFACE
+ } IGoogleDesktopSearchEventFactoryVtbl;
+
+ interface IGoogleDesktopSearchEventFactory
+ {
+ CONST_VTBL struct IGoogleDesktopSearchEventFactoryVtbl *lpVtbl;
+ };
+
+ =20
+
+#ifdef COBJMACROS
+
+
+#define IGoogleDesktopSearchEventFactory_QueryInterface(This,riid,ppvObj=
ect) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define IGoogleDesktopSearchEventFactory_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define IGoogleDesktopSearchEventFactory_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define IGoogleDesktopSearchEventFactory_GetTypeInfoCount(This,pctinfo) =
\
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define IGoogleDesktopSearchEventFactory_GetTypeInfo(This,iTInfo,lcid,pp=
TInfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define IGoogleDesktopSearchEventFactory_GetIDsOfNames(This,riid,rgszNam=
es,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDi=
spId)
+
+#define IGoogleDesktopSearchEventFactory_Invoke(This,dispIdMember,riid,l=
cid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispPar=
ams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define IGoogleDesktopSearchEventFactory_CreateEvent(This,component_guid=
_or_progid,schema_name,event) \
+ (This)->lpVtbl -> CreateEvent(This,component_guid_or_progid,schema_n=
ame,event)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+/* [id] */ HRESULT STDMETHODCALLTYPE IGoogleDesktopSearchEventFactory_Cr=
eateEvent_Proxy(=20
+ IGoogleDesktopSearchEventFactory * This,
+ /* [in] */ BSTR component_guid_or_progid,
+ /* [in] */ BSTR schema_name,
+ /* [retval][out] */ IDispatch **event);
+
+
+void __RPC_STUB IGoogleDesktopSearchEventFactory_CreateEvent_Stub(
+ IRpcStubBuffer *This,
+ IRpcChannelBuffer *_pRpcChannelBuffer,
+ PRPC_MESSAGE _pRpcMessage,
+ DWORD *_pdwStubPhase);
+
+
+
+#endif /* __IGoogleDesktopSearchEventFactory_INTERFACE_DEFINED__ */
+
+
+
+#ifndef __GoogleDesktopSearchAPILib_LIBRARY_DEFINED__
+#define __GoogleDesktopSearchAPILib_LIBRARY_DEFINED__
+
+/* library GoogleDesktopSearchAPILib */
+/* [helpstring][version][uuid] */=20
+
+
+
+
+EXTERN_C const IID LIBID_GoogleDesktopSearchAPILib;
+
+#ifndef __DGoogleDesktopSearchFileNotify_DISPINTERFACE_DEFINED__
+#define __DGoogleDesktopSearchFileNotify_DISPINTERFACE_DEFINED__
+
+/* dispinterface DGoogleDesktopSearchFileNotify */
+/* [uuid] */=20
+
+
+EXTERN_C const IID DIID_DGoogleDesktopSearchFileNotify;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("A1DE6DB8-B20F-445c-BFDE-16C8D53A2FA1")
+ DGoogleDesktopSearchFileNotify : public IDispatch
+ {
+ };
+ =20
+#else /* C style interface */
+
+ typedef struct DGoogleDesktopSearchFileNotifyVtbl
+ {
+ BEGIN_INTERFACE
+ =20
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(=20
+ DGoogleDesktopSearchFileNotify * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject);
+ =20
+ ULONG ( STDMETHODCALLTYPE *AddRef )(=20
+ DGoogleDesktopSearchFileNotify * This);
+ =20
+ ULONG ( STDMETHODCALLTYPE *Release )(=20
+ DGoogleDesktopSearchFileNotify * This);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(=20
+ DGoogleDesktopSearchFileNotify * This,
+ /* [out] */ UINT *pctinfo);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(=20
+ DGoogleDesktopSearchFileNotify * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+ =20
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(=20
+ DGoogleDesktopSearchFileNotify * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+ =20
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(=20
+ DGoogleDesktopSearchFileNotify * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+ =20
+ END_INTERFACE
+ } DGoogleDesktopSearchFileNotifyVtbl;
+
+ interface DGoogleDesktopSearchFileNotify
+ {
+ CONST_VTBL struct DGoogleDesktopSearchFileNotifyVtbl *lpVtbl;
+ };
+
+ =20
+
+#ifdef COBJMACROS
+
+
+#define DGoogleDesktopSearchFileNotify_QueryInterface(This,riid,ppvObjec=
t) \
+ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define DGoogleDesktopSearchFileNotify_AddRef(This) \
+ (This)->lpVtbl -> AddRef(This)
+
+#define DGoogleDesktopSearchFileNotify_Release(This) \
+ (This)->lpVtbl -> Release(This)
+
+
+#define DGoogleDesktopSearchFileNotify_GetTypeInfoCount(This,pctinfo) \
+ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define DGoogleDesktopSearchFileNotify_GetTypeInfo(This,iTInfo,lcid,ppTI=
nfo) \
+ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define DGoogleDesktopSearchFileNotify_GetIDsOfNames(This,riid,rgszNames=
,cNames,lcid,rgDispId) \
+ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDi=
spId)
+
+#define DGoogleDesktopSearchFileNotify_Invoke(This,dispIdMember,riid,lci=
d,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispPar=
ams,pVarResult,pExcepInfo,puArgErr)
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+#endif /* __DGoogleDesktopSearchFileNotify_DISPINTERFACE_DEFINED__ */
+
+
+EXTERN_C const CLSID CLSID_GoogleDesktopSearch;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("579822B3-44CD-4786-83E0-AE32BCB9E6B1")
+GoogleDesktopSearch;
+#endif
+
+EXTERN_C const CLSID CLSID_GoogleDesktopSearchRegister;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("BB8B07A0-B8D1-44e0-A262-C9B7212AEC68")
+GoogleDesktopSearchRegister;
+#endif
+#endif /* __GoogleDesktopSearchAPILib_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *=
, unsigned long , BSTR * );=20
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned=
char *, BSTR * );=20
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned=
char *, BSTR * );=20
+void __RPC_USER BSTR_UserFree( unsigned long *=
, BSTR * );=20
+
+unsigned long __RPC_USER VARIANT_UserSize( unsigned lon=
g *, unsigned long , VARIANT * );=20
+unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsig=
ned char *, VARIANT * );=20
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsig=
ned char *, VARIANT * );=20
+void __RPC_USER VARIANT_UserFree( unsigned lon=
g *, VARIANT * );=20
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
Property changes on: trunk/MatroskaUtils/GDC/common/GoogleDesktopSearchAP=
I.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/MatroskaUtils/GDC/common/stdafx.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/JCThread.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/JCThread.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/JCThread.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,219 +1,219 @@
-/*
- * Part of The Matroska Shell Extension, a Windows Explorer shell ext to=
access extra features of Matroska files
- *
- * JCThread.h
- *
- * Copyright (C) 2003 Jory 'jcsston' Stone <[email protected]>
- *
- * The Matroska Shell Extension is free software; you can redistribute i=
t 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.
- *
- * The Matroska Shell Extension 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
-*/
-
-/*!
- \version \$Id: JCThread.h,v 1.2 2004/03/08 07:56:51 jcsston Exp $
- \author Jory Stone <jcsston @ toughguy.net>=09
- \brief Thread base class, designed to be replacable with the wxThread =
class
-=09
- \par CVS Log=20
- $Log: JCThread.h,v $
- Revision 1.2 2004/03/08 07:56:51 jcsston
- Fixed some bugs in the bitrate scaning code
- Fixed a bug in the JCThread class, sometimes the thread would exit to=
o quickly
- Fixed a bug in the attachment opening code
- =09
- Revision 1.1 2003/11/29 02:04:48 jcsston
- Changed to my JCCritcSec class for multi-threading, Started bitrate c=
lass
- =09
- Revision 1.1 2003/11/24 21:55:29 jcsston
- Intial Commit, decoding working
- =09
-*/
-
-#ifndef _JC_THREAD_H_
-#define _JC_THREAD_H_
-
-#include <windows.h>
-#include <stdio.h>
-#include <process.h>
-#include <assert.h>
-
-// wrapper for whatever critical section we have
-class JCCritSec {
-public:
- JCCritSec() {
- InitializeCriticalSection(&m_CritSec);
- };
- ~JCCritSec() {
- DeleteCriticalSection(&m_CritSec);
- };
- void Lock() {
- EnterCriticalSection(&m_CritSec);
- };
- void Unlock() {
- LeaveCriticalSection(&m_CritSec);
- };
-
-protected:
- CRITICAL_SECTION m_CritSec;
-private:
- // Make copy constructor and assignment operator inaccessible
- // Copying a critical section is a bad idea :P
- JCCritSec(const JCCritSec &refCritSec) { };
- JCCritSec &operator=3D(const JCCritSec &refCritSec) { return *this; };
-};
-
-// Auto-Lock class
-class JCAutoLockCritSec {
-public:
- JCAutoLockCritSec(JCCritSec *lockCritSec) {
- m_CritSec =3D lockCritSec;
- m_CritSec->Lock();
- };
- ~JCAutoLockCritSec() {
- m_CritSec->Unlock();
- };
-
-protected:
- JCCritSec *m_CritSec;
-private:
- // Make copy constructor and assignment operator inaccessible
- // Copying a critical section is a bad idea :P
- JCAutoLockCritSec(const JCAutoLockCritSec &refCritSec) { assert(!"We sh=
ould never ever be here!"); };
- JCAutoLockCritSec &operator=3D(const JCAutoLockCritSec &refCritSec) { a=
ssert(!"We should never ever be here!"); return *this; };
-};
-
-class JCThread {
-private:
- static void __cdecl JCThreadFunction(void *threadData) { =09
- JCThread *threadObj =3D (JCThread *)threadData;
- // Check thread pointer
- assert(threadObj !=3D NULL);
-
- threadObj->JCThread_AddRef();
-
- threadObj->m_StartedCrit.Lock();
- threadObj->m_bStarted =3D true;
- threadObj->m_StartedCrit.Unlock();
- threadObj->Entry();=09
-
- threadObj->JCThread_RemoveRef();
- =09
- _endthread();
- };
-public:
- JCThread() {=20
- m_hThread =3D NULL;
- m_State =3D JCThread_State_Waiting;
- m_bStarted =3D false;
- m_RefCount =3D 0;
- };
- virtual ~JCThread() {=20
- /*if (GetState() =3D=3D JCThread_State_Running) {
- // We need to stop the thread before deleting it
- Stop();
- }*/
- };
-
- void Run() {
- JCThread_AddRef();
- m_StateCrit.Lock();
- m_State =3D JCThread_State_Running;
- m_StateCrit.Unlock();
- m_hThread =3D (HANDLE)_beginthread(JCThreadFunction, 0, (void *)this);
- // Wait for the thread to start
- while (!TestDestroy()) {
- m_StartedCrit.Lock();
- if (m_bStarted) {
- m_StartedCrit.Unlock();
- break;
- }
- m_StartedCrit.Unlock();
- Sleep(50);
- }
- JCThread_RemoveRef();
- }
- void Stop() {
- m_StateCrit.Lock();
- m_State =3D JCThread_State_Stopped;
- m_StateCrit.Unlock(); =09
- }
- void Pause() {
- JCAutoLockCritSec stateLock(&m_StateCrit);
- if (m_State =3D=3D JCThread_State_Running) {
- if (SuspendThread(m_hThread) !=3D 0xFFFFFFFF)
- m_State =3D JCThread_State_Paused;
- }
- }
- void Resume() {
- JCAutoLockCritSec stateLock(&m_StateCrit);
- if (m_State =3D=3D JCThread_State_Paused) {
- if (ResumeThread(m_hThread) !=3D 0xFFFFFFFF)
- m_State =3D JCThread_State_Running;
- }
- }
-=09
- virtual void *Entry() =3D 0;=09
-
- int GetState() {
- int localState;
- m_StateCrit.Lock();
- localState =3D (int)m_State;
- m_StateCrit.Unlock();
- return localState;
- };
-
- long JCThread_AddRef() {
- JCAutoLockCritSec refCountLock(&m_RefCountCrit); =09
- return m_RefCount++;
- }
- long JCThread_RemoveRef() {
- {
- JCAutoLockCritSec refCountLock(&m_RefCountCrit);=09
-
- if (--m_RefCount)
- return m_RefCount;
- }
-
- delete this;
-
- return 0L;
- }
-
-protected:=09
- bool TestDestroy() {
- bool bExit =3D false;
- m_StateCrit.Lock();
- if (m_State =3D=3D JCThread_State_Stopped)
- bExit =3D true;
- m_StateCrit.Unlock();
- return bExit;
- }
- HANDLE m_hThread;
- JCCritSec m_StateCrit;
- enum JCThread_State {=20
- JCThread_State_Waiting =3D 0,
- JCThread_State_Stopped,
- JCThread_State_Running,
- JCThread_State_Paused
- };
- JCThread_State m_State;
- JCCritSec m_StartedCrit;
- bool m_bStarted;
- JCCritSec m_RefCountCrit;
- long m_RefCount;
-};
-
-
-
+/*
+ * Part of The Matroska Shell Extension, a Windows Explorer shell ext to=
access extra features of Matroska files
+ *
+ * JCThread.h
+ *
+ * Copyright (C) 2003 Jory 'jcsston' Stone <[email protected]>
+ *
+ * The Matroska Shell Extension is free software; you can redistribute i=
t 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.
+ *
+ * The Matroska Shell Extension 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
+*/
+
+/*!
+ \version \$Id: JCThread.h,v 1.2 2004/03/08 07:56:51 jcsston Exp $
+ \author Jory Stone <jcsston @ toughguy.net>=09
+ \brief Thread base class, designed to be replacable with the wxThread =
class
+=09
+ \par CVS Log=20
+ $Log: JCThread.h,v $
+ Revision 1.2 2004/03/08 07:56:51 jcsston
+ Fixed some bugs in the bitrate scaning code
+ Fixed a bug in the JCThread class, sometimes the thread would exit to=
o quickly
+ Fixed a bug in the attachment opening code
+ =09
+ Revision 1.1 2003/11/29 02:04:48 jcsston
+ Changed to my JCCritcSec class for multi-threading, Started bitrate c=
lass
+ =09
+ Revision 1.1 2003/11/24 21:55:29 jcsston
+ Intial Commit, decoding working
+ =09
+*/
+
+#ifndef _JC_THREAD_H_
+#define _JC_THREAD_H_
+
+#include <windows.h>
+#include <stdio.h>
+#include <process.h>
+#include <assert.h>
+
+// wrapper for whatever critical section we have
+class JCCritSec {
+public:
+ JCCritSec() {
+ InitializeCriticalSection(&m_CritSec);
+ };
+ ~JCCritSec() {
+ DeleteCriticalSection(&m_CritSec);
+ };
+ void Lock() {
+ EnterCriticalSection(&m_CritSec);
+ };
+ void Unlock() {
+ LeaveCriticalSection(&m_CritSec);
+ };
+
+protected:
+ CRITICAL_SECTION m_CritSec;
+private:
+ // Make copy constructor and assignment operator inaccessible
+ // Copying a critical section is a bad idea :P
+ JCCritSec(const JCCritSec &refCritSec) { };
+ JCCritSec &operator=3D(const JCCritSec &refCritSec) { return *this; };
+};
+
+// Auto-Lock class
+class JCAutoLockCritSec {
+public:
+ JCAutoLockCritSec(JCCritSec *lockCritSec) {
+ m_CritSec =3D lockCritSec;
+ m_CritSec->Lock();
+ };
+ ~JCAutoLockCritSec() {
+ m_CritSec->Unlock();
+ };
+
+protected:
+ JCCritSec *m_CritSec;
+private:
+ // Make copy constructor and assignment operator inaccessible
+ // Copying a critical section is a bad idea :P
+ JCAutoLockCritSec(const JCAutoLockCritSec &refCritSec) { assert(!"We sh=
ould never ever be here!"); };
+ JCAutoLockCritSec &operator=3D(const JCAutoLockCritSec &refCritSec) { a=
ssert(!"We should never ever be here!"); return *this; };
+};
+
+class JCThread {
+private:
+ static void __cdecl JCThreadFunction(void *threadData) { =09
+ JCThread *threadObj =3D (JCThread *)threadData;
+ // Check thread pointer
+ assert(threadObj !=3D NULL);
+
+ threadObj->JCThread_AddRef();
+
+ threadObj->m_StartedCrit.Lock();
+ threadObj->m_bStarted =3D true;
+ threadObj->m_StartedCrit.Unlock();
+ threadObj->Entry();=09
+
+ threadObj->JCThread_RemoveRef();
+ =09
+ _endthread();
+ };
+public:
+ JCThread() {=20
+ m_hThread =3D NULL;
+ m_State =3D JCThread_State_Waiting;
+ m_bStarted =3D false;
+ m_RefCount =3D 0;
+ };
+ virtual ~JCThread() {=20
+ /*if (GetState() =3D=3D JCThread_State_Running) {
+ // We need to stop the thread before deleting it
+ Stop();
+ }*/
+ };
+
+ void Run() {
+ JCThread_AddRef();
+ m_StateCrit.Lock();
+ m_State =3D JCThread_State_Running;
+ m_StateCrit.Unlock();
+ m_hThread =3D (HANDLE)_beginthread(JCThreadFunction, 0, (void *)this);
+ // Wait for the thread to start
+ while (!TestDestroy()) {
+ m_StartedCrit.Lock();
+ if (m_bStarted) {
+ m_StartedCrit.Unlock();
+ break;
+ }
+ m_StartedCrit.Unlock();
+ Sleep(50);
+ }
+ JCThread_RemoveRef();
+ }
+ void Stop() {
+ m_StateCrit.Lock();
+ m_State =3D JCThread_State_Stopped;
+ m_StateCrit.Unlock(); =09
+ }
+ void Pause() {
+ JCAutoLockCritSec stateLock(&m_StateCrit);
+ if (m_State =3D=3D JCThread_State_Running) {
+ if (SuspendThread(m_hThread) !=3D 0xFFFFFFFF)
+ m_State =3D JCThread_State_Paused;
+ }
+ }
+ void Resume() {
+ JCAutoLockCritSec stateLock(&m_StateCrit);
+ if (m_State =3D=3D JCThread_State_Paused) {
+ if (ResumeThread(m_hThread) !=3D 0xFFFFFFFF)
+ m_State =3D JCThread_State_Running;
+ }
+ }
+=09
+ virtual void *Entry() =3D 0;=09
+
+ int GetState() {
+ int localState;
+ m_StateCrit.Lock();
+ localState =3D (int)m_State;
+ m_StateCrit.Unlock();
+ return localState;
+ };
+
+ long JCThread_AddRef() {
+ JCAutoLockCritSec refCountLock(&m_RefCountCrit); =09
+ return m_RefCount++;
+ }
+ long JCThread_RemoveRef() {
+ {
+ JCAutoLockCritSec refCountLock(&m_RefCountCrit);=09
+
+ if (--m_RefCount)
+ return m_RefCount;
+ }
+
+ delete this;
+
+ return 0L;
+ }
+
+protected:=09
+ bool TestDestroy() {
+ bool bExit =3D false;
+ m_StateCrit.Lock();
+ if (m_State =3D=3D JCThread_State_Stopped)
+ bExit =3D true;
+ m_StateCrit.Unlock();
+ return bExit;
+ }
+ HANDLE m_hThread;
+ JCCritSec m_StateCrit;
+ enum JCThread_State {=20
+ JCThread_State_Waiting =3D 0,
+ JCThread_State_Stopped,
+ JCThread_State_Running,
+ JCThread_State_Paused
+ };
+ JCThread_State m_State;
+ JCCritSec m_StartedCrit;
+ bool m_bStarted;
+ JCCritSec m_RefCountCrit;
+ long m_RefCount;
+};
+
+
+
#endif // _JC_THREAD_H_
\ No newline at end of file
Property changes on: trunk/MatroskaUtils/JCThread.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/JList.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/JList.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/JList.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,77 +1,77 @@
-/**
- * Part of The TCMP Matroska CDL, a plugin to access extra features of =
Matroska files with TCMP
- *
- * JList.h
- *
- * Copyright (C) Jory Stone - June 2003
- *
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
-*/
-
-/*!
- \file JList.h
- \version \$Id: JList.h,v 1.1 2003/10/04 21:57:18 jcsston Exp $
- \brief A simple linked-list
- \author Jory Stone <jcsston @ toughguy.net>
-*/
-
-#ifndef _JLIST_H_
-#define _JLIST_H_
-
-template<class _T> class JListItem {
-public:
- JListItem() {
- m_Next =3D NULL;
- };
- _T m_Data;
- JListItem<_T> *m_Next;
-};
-
-/// Automaticly calls delete on data type, you should use pointers ;)
-template<class _T> class JList{
-public:
- JList() {
- m_FirstItem =3D NULL;
- };
- ~JList() {
- JListItem<_T> *temp =3D NULL;
- temp =3D m_FirstItem;
- while (m_FirstItem !=3D NULL)
- { =20
- m_FirstItem =3D m_FirstItem->m_Next;
-
- delete temp->m_Data;
- delete temp;
- temp =3D m_FirstItem;
- }
- };
-
- void AddItem(_T newData) {
- JListItem<_T> *objData =3D new JListItem<_T>();
- objData->m_Data =3D newData; =09
- if (m_FirstItem =3D=3D NULL) {
- m_FirstItem =3D objData; =09
- } else {
- objData->m_Next =3D m_FirstItem;
- m_FirstItem =3D objData;
- }
- };
-protected:
- JListItem<_T> *m_FirstItem;
-};
-
-#endif // _JLIST_H_
+/**
+ * Part of The TCMP Matroska CDL, a plugin to access extra features of =
Matroska files with TCMP
+ *
+ * JList.h
+ *
+ * Copyright (C) Jory Stone - June 2003
+ *
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+*/
+
+/*!
+ \file JList.h
+ \version \$Id: JList.h,v 1.1 2003/10/04 21:57:18 jcsston Exp $
+ \brief A simple linked-list
+ \author Jory Stone <jcsston @ toughguy.net>
+*/
+
+#ifndef _JLIST_H_
+#define _JLIST_H_
+
+template<class _T> class JListItem {
+public:
+ JListItem() {
+ m_Next =3D NULL;
+ };
+ _T m_Data;
+ JListItem<_T> *m_Next;
+};
+
+/// Automaticly calls delete on data type, you should use pointers ;)
+template<class _T> class JList{
+public:
+ JList() {
+ m_FirstItem =3D NULL;
+ };
+ ~JList() {
+ JListItem<_T> *temp =3D NULL;
+ temp =3D m_FirstItem;
+ while (m_FirstItem !=3D NULL)
+ { =20
+ m_FirstItem =3D m_FirstItem->m_Next;
+
+ delete temp->m_Data;
+ delete temp;
+ temp =3D m_FirstItem;
+ }
+ };
+
+ void AddItem(_T newData) {
+ JListItem<_T> *objData =3D new JListItem<_T>();
+ objData->m_Data =3D newData; =09
+ if (m_FirstItem =3D=3D NULL) {
+ m_FirstItem =3D objData; =09
+ } else {
+ objData->m_Next =3D m_FirstItem;
+ m_FirstItem =3D objData;
+ }
+ };
+protected:
+ JListItem<_T> *m_FirstItem;
+};
+
+#endif // _JLIST_H_
Property changes on: trunk/MatroskaUtils/JList.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/JString.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/JString.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/JString.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,281 +1,281 @@
-/*
-* The JString class, A Unicode string class
-*
-* JString.h
-*
-* Copyright (C) Jory Stone - July 2003
-*
-*
-* The JString class is free software; you can redistribute it and/or mo=
dify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2, or (at your option)
-* any later version.
-*
-* The JString class 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 The JString class; see the file COPYING. If not, write to
-* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-*/
-
-/*!
- \file JString.h
- \version \$Id: JString.h,v 1.8 2004/01/12 03:53:14 jcsston Exp $
- \brief A Unicode string class
- \author Jory Stone <jcsston @ toughguy.net>
-*/
-
-#ifndef _JSTRING_H_
-#define _JSTRING_H_
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <wchar.h>
-#include <string.h>
-#include <math.h>
-#include <assert.h>
-#include <vector>
-#include <ctype.h>
-
-#include <sstream>
-#include <string>
-
-#ifdef USE_VC_TYPES
-typedef unsigned char binary;
-typedef unsigned __int64 uint64;
-typedef unsigned __int32 uint32;
-typedef unsigned __int16 uint16;
-typedef __int64 int64;
-typedef __int32 int32;
-typedef __int16 int16;
-#else
-#include "ebml/EbmlTypes.h"
-using namespace LIBEBML_NAMESPACE;
-#endif
-
-class JString
-{
-public:
- JString();
- JString(unsigned long length);
- JString(const wchar_t *value);
- JString(const char *value);=09
- JString(const JString &value);
- ~JString();
- /// Append string to end of current string
- JString & append(const wchar_t *value);
- JString & append(const char *value);
- JString & append(const wchar_t value);
- JString & append(const char value);
- /// Function to clear all the data
- void clear();
-
- /// Get the count that a char appears in the string
- size_t Count(wchar_t value);
-=09
- long Find(const wchar_t *value, bool bBackwards =3D false);
- long Find(wchar_t value, bool bBackwards =3D false);
-
- /// Get all characters before the first occurance of ch
- /// (returns the whole string if ch not found)
- JString BeforeFirst(wchar_t ch);
- /// Get all characters before the last occurence of ch
- /// (returns empty string if ch not found)
- JString BeforeLast(wchar_t ch);
- /// Get all characters after the first occurence of ch
- /// (returns empty string if ch not found)
- JString AfterFirst(wchar_t ch);
- /// Get all characters after the last occurence of ch
- /// (returns the whole string if ch not found)
- JString AfterLast(wchar_t ch);
-
-
- JString Left(unsigned long count);
- JString Right(unsigned long count);
- JString Mid(unsigned long start, unsigned long count);
- /// printf style Formating function
- static JString Format(const wchar_t *value, ...);
- static JString Format(const char *value, ...);
-
- //Convert to other datatypes
- long toLong();
- double toDouble();
-
- /// Line break types
- enum LineBreakType {
- DosLineBreaks,
- UnixLineBreaks,
- MacLineBreaks
- };
- /// Find linebreak type
- int GetLineBreakType();
- /// Convert to linebreak type
- JString & Convert2Dos();
- /// Copy the string to a char *
- void CopyTo(wchar_t **destStr);
- void CopyTo(char **destStr);
- /// Standard c_str() function
- const wchar_t* c_str() const {return m_Data;}
- /// Return ASCII const char *
- const char* mb_str() {_UpdateASCII(); return m_DataASCII;}
- /// returns wchar_t or char depending on if UNICODE is defined
-#ifdef UNICODE
- const wchar_t* t_str() {return c_str();}
-#else
- const char* t_str() {return mb_str();}=09
-#endif
- /// Return length of string
- unsigned long length() {return m_Length;}
- unsigned long Length() {return m_Length;}
-
- //Operators
- JString & operator=3D(const JString &value) {_Set(value.c_str()); retur=
n *this;};
- JString & operator=3D(const wchar_t *value) {_Set(value); return *this;=
};
- JString & operator=3D(const char *value) {_Set(value); return *this;};
- JString & operator=3D(wchar_t value) {_Set(value); return *this;};
- JString & operator=3D(char value) {_Set(value); return *this;};
- JString & operator=3D(const binary *value) {_Set(value); return *this;}=
;
-
- JString & operator+=3D(const JString &value) {append(value.c_str()); re=
turn *this;};
- JString & operator+=3D(const wchar_t *value) {append(value); return *th=
is;};
- JString & operator+=3D(const char *value) {append(value); return *this;=
};
- JString & operator+=3D(wchar_t value) {append(value); return *this;};
- JString & operator+=3D(char value) {append(value); return *this;};=09
-
- JString & operator<<(const wchar_t *value) {append(value); return *this=
;};
- JString & operator<<(wchar_t value) {append(value); return *this;};
- JString & operator<<(const char *value) {append(value); return *this;};
- JString & operator<<(char value) {append(value); return *this;};
-
- JString operator+(const wchar_t *value) {append(value); return *this;};
- JString operator+(const char *value) {append(value); return *this;};
- JString operator+(wchar_t value) {append(value); return *this;};
- JString operator+(char value) {append(value); return *this;};
-
- wchar_t operator[](size_t index) const {assert(index < m_Length); retur=
n m_Data[index];}
- char operator[](size_t index) {assert(index < m_Length); _UpdateASCII()=
; return m_DataASCII[index];}
-
- operator const wchar_t*() const {return c_str();} =09
-
-protected:
- /// Function to clear all the data, (for consuctor only)
- inline void _Initialize();
- /// Checks if the ASCII copy of the data needs to be updated
- void _UpdateASCII();=09
- //void _Set(const JString &value);
- inline void _Set(const wchar_t *value);
- inline void _Set(const char *value);
- inline void _Set(const wchar_t value);
- inline void _Set(const char value);
- void _Set(const binary *value);
-
- /// Get the length of a NULL-terminated string, being simple 1-line loo=
ps these can benfit from inlining
- //inline static size_t strlen(const wchar_t *str);
- //inline static size_t strlen(const char *str);
- /// Removes (trims) leading whitespace characters from a string
- static wchar_t *wslefttrim(wchar_t *source);
- /// Removes (trims) trailing whitespace characters from a string
- static wchar_t *wsrighttrim(wchar_t *source);
-
- /// The string data itself
- wchar_t *m_Data;
- /// Flag true if ASCII data needs to be updated
- bool m_bUpdateASCII;
- /// ASCII version of data
- char *m_DataASCII;
- /// Length of the string, cached to faster access
- unsigned long m_Length;
-=09
- /// Line break type
- enum LineBreakType m_lineBreak;
-
- /// String Data class
- /*class JStringData {
- public:
- JStringData() {
- m_Data =3D NULL;
- m_DataASCII =3D NULL;
- m_Length =3D 0;
- m_RefCount =3D 0;
- };
- ~JStringData() {
- delete m_Data;
- delete m_DataASCII;
- };
- unsigned short AddRef() { return ++m_RefCount; }
- unsigned short Release() {=20
- if (--m_RefCount)
- return m_RefCount;
-
- delete this;
- return 0;
- };
- =09
- /// The string data itself
- wchar_t *m_Data;
- /// Flag true if ASCII data needs to be updated
- bool m_bUpdateASCII;
- /// ASCII version of data
- char *m_DataASCII;
- /// Length of the string, cached to faster access
- unsigned long m_Length; =09
- protected:
- unsigned short m_RefCount;
- };
- JStringData *m_JData;*/
- /// UTF-8 to Unicode conversion class
- class UTF8toUCS4 {
- public:
- enum { // return codes from put.
- need_more =3D 0,
- complete_code,
- invalid_code,
- };
- UTF8toUCS4() : m_code(0), m_shift(0), m_mval(0) {}
-
- /// reset the statemachine.
- void reset() { m_code =3D m_shift =3D m_mval =3D 0; }
-
- /// Read a byte and convert it, if we have a complete code we place it=
in val and return complete_code.
- /// otherwise, if any error we return invalid_code and do not modify s=
tate.
- /// otherwise if no error we update state and return need_more.
- int Convert(binary uc, uint64 & val);
-
- protected:
- /// the code we are currently building.
- int m_code;
- /// how much to shift in the next bits.
- int m_shift;
- /// minimum value.
- int m_mval;=20
- };
-};
-
-class SmartStringFormat : public std::wostringstream
-{
-public:
- SmartStringFormat();
- SmartStringFormat(const SmartStringFormat& copy);
- ~SmartStringFormat();
-
- SmartStringFormat & operator << (const char *inStr);
- SmartStringFormat & operator << (double value);
- SmartStringFormat & operator << (float value);
- SmartStringFormat & operator << (int16 value);
- SmartStringFormat & operator << (int32 value);
- SmartStringFormat & operator << (int64 value);
- SmartStringFormat & operator << (uint16 value);
- SmartStringFormat & operator << (uint32 value);
- SmartStringFormat & operator << (uint64 value);
-
-protected:
- wchar_t *m_TextBuffer;
- unsigned long m_TextBufferSize;
-};
-
-#endif //_JSTRING_H_
+/*
+* The JString class, A Unicode string class
+*
+* JString.h
+*
+* Copyright (C) Jory Stone - July 2003
+*
+*
+* The JString class is free software; you can redistribute it and/or mo=
dify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2, or (at your option)
+* any later version.
+*
+* The JString class 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 The JString class; see the file COPYING. If not, write to
+* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+*
+*/
+
+/*!
+ \file JString.h
+ \version \$Id: JString.h,v 1.8 2004/01/12 03:53:14 jcsston Exp $
+ \brief A Unicode string class
+ \author Jory Stone <jcsston @ toughguy.net>
+*/
+
+#ifndef _JSTRING_H_
+#define _JSTRING_H_
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <wchar.h>
+#include <string.h>
+#include <math.h>
+#include <assert.h>
+#include <vector>
+#include <ctype.h>
+
+#include <sstream>
+#include <string>
+
+#ifdef USE_VC_TYPES
+typedef unsigned char binary;
+typedef unsigned __int64 uint64;
+typedef unsigned __int32 uint32;
+typedef unsigned __int16 uint16;
+typedef __int64 int64;
+typedef __int32 int32;
+typedef __int16 int16;
+#else
+#include "ebml/EbmlTypes.h"
+using namespace LIBEBML_NAMESPACE;
+#endif
+
+class JString
+{
+public:
+ JString();
+ JString(unsigned long length);
+ JString(const wchar_t *value);
+ JString(const char *value);=09
+ JString(const JString &value);
+ ~JString();
+ /// Append string to end of current string
+ JString & append(const wchar_t *value);
+ JString & append(const char *value);
+ JString & append(const wchar_t value);
+ JString & append(const char value);
+ /// Function to clear all the data
+ void clear();
+
+ /// Get the count that a char appears in the string
+ size_t Count(wchar_t value);
+=09
+ long Find(const wchar_t *value, bool bBackwards =3D false);
+ long Find(wchar_t value, bool bBackwards =3D false);
+
+ /// Get all characters before the first occurance of ch
+ /// (returns the whole string if ch not found)
+ JString BeforeFirst(wchar_t ch);
+ /// Get all characters before the last occurence of ch
+ /// (returns empty string if ch not found)
+ JString BeforeLast(wchar_t ch);
+ /// Get all characters after the first occurence of ch
+ /// (returns empty string if ch not found)
+ JString AfterFirst(wchar_t ch);
+ /// Get all characters after the last occurence of ch
+ /// (returns the whole string if ch not found)
+ JString AfterLast(wchar_t ch);
+
+
+ JString Left(unsigned long count);
+ JString Right(unsigned long count);
+ JString Mid(unsigned long start, unsigned long count);
+ /// printf style Formating function
+ static JString Format(const wchar_t *value, ...);
+ static JString Format(const char *value, ...);
+
+ //Convert to other datatypes
+ long toLong();
+ double toDouble();
+
+ /// Line break types
+ enum LineBreakType {
+ DosLineBreaks,
+ UnixLineBreaks,
+ MacLineBreaks
+ };
+ /// Find linebreak type
+ int GetLineBreakType();
+ /// Convert to linebreak type
+ JString & Convert2Dos();
+ /// Copy the string to a char *
+ void CopyTo(wchar_t **destStr);
+ void CopyTo(char **destStr);
+ /// Standard c_str() function
+ const wchar_t* c_str() const {return m_Data;}
+ /// Return ASCII const char *
+ const char* mb_str() {_UpdateASCII(); return m_DataASCII;}
+ /// returns wchar_t or char depending on if UNICODE is defined
+#ifdef UNICODE
+ const wchar_t* t_str() {return c_str();}
+#else
+ const char* t_str() {return mb_str();}=09
+#endif
+ /// Return length of string
+ unsigned long length() {return m_Length;}
+ unsigned long Length() {return m_Length;}
+
+ //Operators
+ JString & operator=3D(const JString &value) {_Set(value.c_str()); retur=
n *this;};
+ JString & operator=3D(const wchar_t *value) {_Set(value); return *this;=
};
+ JString & operator=3D(const char *value) {_Set(value); return *this;};
+ JString & operator=3D(wchar_t value) {_Set(value); return *this;};
+ JString & operator=3D(char value) {_Set(value); return *this;};
+ JString & operator=3D(const binary *value) {_Set(value); return *this;}=
;
+
+ JString & operator+=3D(const JString &value) {append(value.c_str()); re=
turn *this;};
+ JString & operator+=3D(const wchar_t *value) {append(value); return *th=
is;};
+ JString & operator+=3D(const char *value) {append(value); return *this;=
};
+ JString & operator+=3D(wchar_t value) {append(value); return *this;};
+ JString & operator+=3D(char value) {append(value); return *this;};=09
+
+ JString & operator<<(const wchar_t *value) {append(value); return *this=
;};
+ JString & operator<<(wchar_t value) {append(value); return *this;};
+ JString & operator<<(const char *value) {append(value); return *this;};
+ JString & operator<<(char value) {append(value); return *this;};
+
+ JString operator+(const wchar_t *value) {append(value); return *this;};
+ JString operator+(const char *value) {append(value); return *this;};
+ JString operator+(wchar_t value) {append(value); return *this;};
+ JString operator+(char value) {append(value); return *this;};
+
+ wchar_t operator[](size_t index) const {assert(index < m_Length); retur=
n m_Data[index];}
+ char operator[](size_t index) {assert(index < m_Length); _UpdateASCII()=
; return m_DataASCII[index];}
+
+ operator const wchar_t*() const {return c_str();} =09
+
+protected:
+ /// Function to clear all the data, (for consuctor only)
+ inline void _Initialize();
+ /// Checks if the ASCII copy of the data needs to be updated
+ void _UpdateASCII();=09
+ //void _Set(const JString &value);
+ inline void _Set(const wchar_t *value);
+ inline void _Set(const char *value);
+ inline void _Set(const wchar_t value);
+ inline void _Set(const char value);
+ void _Set(const binary *value);
+
+ /// Get the length of a NULL-terminated string, being simple 1-line loo=
ps these can benfit from inlining
+ //inline static size_t strlen(const wchar_t *str);
+ //inline static size_t strlen(const char *str);
+ /// Removes (trims) leading whitespace characters from a string
+ static wchar_t *wslefttrim(wchar_t *source);
+ /// Removes (trims) trailing whitespace characters from a string
+ static wchar_t *wsrighttrim(wchar_t *source);
+
+ /// The string data itself
+ wchar_t *m_Data;
+ /// Flag true if ASCII data needs to be updated
+ bool m_bUpdateASCII;
+ /// ASCII version of data
+ char *m_DataASCII;
+ /// Length of the string, cached to faster access
+ unsigned long m_Length;
+=09
+ /// Line break type
+ enum LineBreakType m_lineBreak;
+
+ /// String Data class
+ /*class JStringData {
+ public:
+ JStringData() {
+ m_Data =3D NULL;
+ m_DataASCII =3D NULL;
+ m_Length =3D 0;
+ m_RefCount =3D 0;
+ };
+ ~JStringData() {
+ delete m_Data;
+ delete m_DataASCII;
+ };
+ unsigned short AddRef() { return ++m_RefCount; }
+ unsigned short Release() {=20
+ if (--m_RefCount)
+ return m_RefCount;
+
+ delete this;
+ return 0;
+ };
+ =09
+ /// The string data itself
+ wchar_t *m_Data;
+ /// Flag true if ASCII data needs to be updated
+ bool m_bUpdateASCII;
+ /// ASCII version of data
+ char *m_DataASCII;
+ /// Length of the string, cached to faster access
+ unsigned long m_Length; =09
+ protected:
+ unsigned short m_RefCount;
+ };
+ JStringData *m_JData;*/
+ /// UTF-8 to Unicode conversion class
+ class UTF8toUCS4 {
+ public:
+ enum { // return codes from put.
+ need_more =3D 0,
+ complete_code,
+ invalid_code,
+ };
+ UTF8toUCS4() : m_code(0), m_shift(0), m_mval(0) {}
+
+ /// reset the statemachine.
+ void reset() { m_code =3D m_shift =3D m_mval =3D 0; }
+
+ /// Read a byte and convert it, if we have a complete code we place it=
in val and return complete_code.
+ /// otherwise, if any error we return invalid_code and do not modify s=
tate.
+ /// otherwise if no error we update state and return need_more.
+ int Convert(binary uc, uint64 & val);
+
+ protected:
+ /// the code we are currently building.
+ int m_code;
+ /// how much to shift in the next bits.
+ int m_shift;
+ /// minimum value.
+ int m_mval;=20
+ };
+};
+
+class SmartStringFormat : public std::wostringstream
+{
+public:
+ SmartStringFormat();
+ SmartStringFormat(const SmartStringFormat& copy);
+ ~SmartStringFormat();
+
+ SmartStringFormat & operator << (const char *inStr);
+ SmartStringFormat & operator << (double value);
+ SmartStringFormat & operator << (float value);
+ SmartStringFormat & operator << (int16 value);
+ SmartStringFormat & operator << (int32 value);
+ SmartStringFormat & operator << (int64 value);
+ SmartStringFormat & operator << (uint16 value);
+ SmartStringFormat & operator << (uint32 value);
+ SmartStringFormat & operator << (uint64 value);
+
+protected:
+ wchar_t *m_TextBuffer;
+ unsigned long m_TextBufferSize;
+};
+
+#endif //_JSTRING_H_
Property changes on: trunk/MatroskaUtils/JString.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/MP3TagReader.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/MP3TagReader.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/MP3TagReader.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,66 +1,66 @@
-/*
- * Part of The TCMP Matroska CDL, and Matroska Shell Extension
- *
- * MP3TagReader.h
- *
- * Copyright (C) Jory Stone - 2003
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file AviTagReader.h
- \version \$Id: MP3TagReader.h,v 1.3 2004/02/09 23:14:14 jcsston Exp $
- \brief A MP3 ID3 Tag Importer
- \author Jory Stone <jcsston @ toughguy.net>
-
-*/
-
-#ifndef _MP3_TAG_READER_H_
-#define _MP3_TAG_READER_H_
-
-#include "TagReader.h"
-#include <time.h>
-#include "MatroskaUtilsReader.h"
-
-#ifdef USING_ID3LIB
-// Dll link
-#define ID3LIB_LINKOPTION 3
-// Static link
-//#define ID3LIB_LINKOPTION 1
-
-#include <id3/tag.h>
-//#include "id3.h"
-#endif
-
-class MP3TagReader : public TagReader {
-public:
- MP3TagReader(const JString &filename);
- ~MP3TagReader();
-
- void ReadFile(const JString &filename);
- bool HasTags();
- void ImportTags(MatroskaTagInfo *target);
-
-protected:
- JString m_MP3Filename;=09
-
-#ifdef USING_ID3LIB
- ID3_Tag m_Tag;
-#endif
-};
-
-#endif // _MP3_TAG_READER_H_
+/*
+ * Part of The TCMP Matroska CDL, and Matroska Shell Extension
+ *
+ * MP3TagReader.h
+ *
+ * Copyright (C) Jory Stone - 2003
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file AviTagReader.h
+ \version \$Id: MP3TagReader.h,v 1.3 2004/02/09 23:14:14 jcsston Exp $
+ \brief A MP3 ID3 Tag Importer
+ \author Jory Stone <jcsston @ toughguy.net>
+
+*/
+
+#ifndef _MP3_TAG_READER_H_
+#define _MP3_TAG_READER_H_
+
+#include "TagReader.h"
+#include <time.h>
+#include "MatroskaUtilsReader.h"
+
+#ifdef USING_ID3LIB
+// Dll link
+#define ID3LIB_LINKOPTION 3
+// Static link
+//#define ID3LIB_LINKOPTION 1
+
+#include <id3/tag.h>
+//#include "id3.h"
+#endif
+
+class MP3TagReader : public TagReader {
+public:
+ MP3TagReader(const JString &filename);
+ ~MP3TagReader();
+
+ void ReadFile(const JString &filename);
+ bool HasTags();
+ void ImportTags(MatroskaTagInfo *target);
+
+protected:
+ JString m_MP3Filename;=09
+
+#ifdef USING_ID3LIB
+ ID3_Tag m_Tag;
+#endif
+};
+
+#endif // _MP3_TAG_READER_H_
Property changes on: trunk/MatroskaUtils/MP3TagReader.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/MatroskaCDL/CDLApi.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/MatroskaCDL/CDLApi.h 2007-02-17 10:34:40 UTC (rev=
1276)
+++ trunk/MatroskaUtils/MatroskaCDL/CDLApi.h 2007-02-17 10:55:54 UTC (rev=
1277)
@@ -1,321 +1,321 @@
-// ---------------------------------------------------------------------=
-------
-// Core Dynamic Library - Plugin framework for The Core Media Player
-//
-// http://www.corecoded.com - http://www.corecodec.com
-// Actually used to control the player using the CDL API
-// CDL API Version 1.01 (101)
-//
-// (C/C++ header)
-//
-// Ok, here we goes, the SDK for TCMP, just for you, so you can make the=
player
-// even better! Very easy to use, you shouldn't have any problems using =
it.
-// While I'm trying to make this SDK, I may forget to bind some function=
s that
-// you will need while developing your CDL, or if you have some kick-ass=
ideas
-// there is some good chances that I will add them to the CDL SDK. Come =
on our
-// sweet forum and post your wishes!
-//
-// I hesitated between writing a documentation and commenting the CDL he=
ader,
-// as you can see I choose the 2nd option for my health. You can find a =
lot of
-// informations in CDL_Howto.txt
-// Don't forget: have fun while coding!
-//
-// CoreCodec SDK license:
-// Copyright (c) 2001-2002 CoreCodec, Inc.
-//
-// This software is provided 'as-is', without any express or implied
-// warranty. In no event will the authors be held liable for any dam=
ages
-// arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpo=
se,
-// including commercial applications, and to alter it and redistribut=
e it
-// freely, subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented; you mus=
t not
-// claim that you wrote the original software. If you use this sof=
tware
-// in a product, an acknowledgment in the product documentation wo=
uld be
-// appreciated but is not required.
-// 2. Altered source versions must be plainly marked as such, and mus=
t not be
-// misrepresented as being the original software.
-// 3. This notice may not be removed or altered from any source distr=
ibution.
-//
-//
-// Ludovic 'BlackSun' Vialle, CoreCodec Lead-developer.
-// C/C++ Conversion by Christophe 'Toff' PARIS
-// This version was modifed by Jory 'jcsston' Stone to attempt support f=
or v1.01 of the CDL API
-//=20
-// ---------------------------------------------------------------------=
-------
-#ifndef _CDLAPI_H_
-#define _CDLAPI_H_
-// ---------------------------------------------------------------------=
-------
-
-#include <windows.h>
-
-// ---------------------------------------------------------------------=
-------
-
-#define CDL_API_CALL __stdcall
-
-// ---------------------------------------------------------------------=
-------
-
-#ifdef __cplusplus
-#define CDL_API_EXPORT extern "C" __declspec(dllexport)
-#else
-#define CDL_API_EXPORT __declspec(dllexport)
-#endif=20
-
-// ---------------------------------------------------------------------=
-------
-
-// Error and success codes for the plugin initialization
-#define CORE_OK 1 // Your CDL is loaded
-#define CORE_NOT_OK 10 // Report this if you don't want=
to be loaded
-
-// Events notification codes
-#define CORE_FILELOADING 601 // A file is loading (Param1 =3D=
=3D filename)
-#define CORE_FILELOADED 602 // TCMP is done with loading the=
file (Param1 =3D=3D filename)
-#define CORE_FILECLOSED 603 // TCMP is closing the file (no =
params) (also used for state)
-
-#define CORE_FILEPLAY 610 // Playback state (no params)
-#define CORE_FILEPAUSE 611 // Playback state (no params)
-#define CORE_FILESTOP 612 // Playback state (no params)
-#define CORE_FULLSCREEN 615 // Fullscreen mode change (Param=
2: 0 =3D=3D false or 1 =3D=3D true)
-#define CORE_FILESEEK 616 // Seeking in the file
-#define CORE_VIDEOSIZECHANGE 617 // Video size change
-
-// Plugins flags (what the plugin support)
-#define CORE_NOFLAG 0x0
-#define CORE_SHOWWINDOW 0x10 // ShowWindow event
-#define CORE_SHORTCUTEXEC 0x20 // ShortcutExec event
-#define CORE_MEDIAPROPEXEC 0x40 // MediaPropExec event
-#define CORE_EVENTHANDLER 0x80 // EventHandler event
-#define CORE_READTAGS 0x100 // ReadTags event (API v101)
-#define CORE_WRITETAGS 0x200 // WriteTags event (API v101)
-
-// ---------------------------------------------------------------------=
-------
-
-// -- Your exports/functions --
-typedef struct
-{
- char* MediaType;
- char* TagList;
- char* Title;
- char* Artist;
- char* Album;
- short Track;
- int Year;
- char* Genre;
- int Bitrate; // Mainly used for audio, express it in KB/s
- short Rating; // User rating from 1 to 10
- char* Extension; // File extension in UPPERCASE without the dot (ie:=
"MP3")
- char* Codec; // ie: "DivX 6.0"
- char* EncodingStyle; // ie: "VBR" or "SV8"
- char* Comment;
- char* Extended; // supplementary metadata, in an XML like presentati=
on <compositor>W.A.Mozart</compositor>
-} CDL_Metadata, *PCDL_Metadata;
-
-
-typedef struct
-{
- // version of your CDL (ie: '1.0 alpha')
- char* version;
- // The name of your CDL
- char* name;
- // Proc called when the player init your plugin
- int (CDL_API_CALL *LoadProc)(int version);
- // Proc called when the user want to configure your CDL
- // You may just show an about box if you hijacked your settings
- // (you can use hwndParent)
- void (CDL_API_CALL *ConfigProc)(void);
- // Called when the player unload your CDL
- void (CDL_API_CALL *UnloadProc)(void);
- // The player give its handle in hwndParent
- HWND hwndParent;
- // Set the plugins caps. ie: CORE_SHOWWINDOW | CORE_EVENTHANDLER
- DWORD dwflags;
- // -- the following functions aren't mandatory --
- // If a registered window is selected, the player ask you if you are
- // the owner, return true if this is the case, otherwise return fals=
e.
- BOOL (CDL_API_CALL *ShowWindow)(GUID ID);
- // Same, but with a shortcut
- BOOL (CDL_API_CALL *ShortcutExec)(GUID ID);
- // The player ask you if you want to add your tab to the media prope=
rties
- // the filename is sent so you can open it to read the tags for exam=
ple.
- // Return a string with the title, or an empty string.
- char* (CDL_API_CALL *MediaPropExec)(char* Filename);
- // Event handler. TCMP will notify you of the most important events
- // Depending of the event, the player may send you a parameter, it c=
an be
- // a string (Param1 ('' =3D=3D null) or an integer (Param2 (-1 =3D=3D=
null)
- void (CDL_API_CALL *EventHandler)(int Event, char* Param1, int Param=
2);
- // This API is used by TCMP to get some standard tags from a file, i=
t will be used
- // for the playlist and the medialib. (API v101)
- void (CDL_API_CALL *ReadTags)(char *Filename, CDL_Metadata& Metadata=
);
- // Same as the previous one, but TCMP will ask you to write the tags=
, use the prefered
- // tag format. (API v101)
- void (CDL_API_CALL *WriteTags)(char *Filename, CDL_Metadata Metadata=
);
-
-} CDL_PluginHeader, *PCDL_PluginHeader;
-
-// ---------------------------------------------------------------------=
-------
-
-// -- The Core Media Player exports/functions at your service --
-typedef struct
-{
- // Get the CDL version supported by the player
- int (CDL_API_CALL *CDL_GetVersion)(void);
- // Popup a OpenDialog box, with your filter and return the filename
- // return an empty string if the user pressed cancel.
- char* (CDL_API_CALL *CDL_OpenDialog)(char* filter);
- // Same with a SaveDialog box
- char* (CDL_API_CALL *CDL_SaveDialog)(char* filter);
- // Load a file, can be a video, audio or subtitles or a video_ts.ifo
- // if the version of the player allow it.
- void (CDL_API_CALL *CDL_LoadFile)(char* filename); =20
- // Get the filename of the current opened file
- char* (CDL_API_CALL *CDL_GetFilename)(void);
- // Previous button
- void (CDL_API_CALL *CDL_PreviousItem)(void);
- // Next button
- void (CDL_API_CALL *CDL_NextItem)(void);
- // Play/Pause toggle button
- void (CDL_API_CALL *CDL_PlayPause)(void);
- // Stop button
- void (CDL_API_CALL *CDL_Stop)(void);
- // Get or set the current position. Don't call it every ms or you'll
- // overload the cpu :) The time is returned in milliseconds.
- int (CDL_API_CALL *CDL_GetPosition)(void);
- void (CDL_API_CALL *CDL_SetPosition)(int position);
- // Get the duration of the opened file in milliseconds
- int (CDL_API_CALL *CDL_GetDuration)(void); =20
- // Get or set the volume value. min: -10000, max: 0 (log)
- int (CDL_API_CALL *CDL_GetVolume)(void);
- void (CDL_API_CALL *CDL_SetVolume)(int position);
- // Move the volume slider of the player up or down
- void (CDL_API_CALL *CDL_VolumeUp)(void);
- void (CDL_API_CALL *CDL_VolumeDown)(void); =20
- // Seek to the previous or next bookmark
- void (CDL_API_CALL *CDL_PreviousBookmark)(void);
- void (CDL_API_CALL *CDL_NextBookmark)(void);
- // Jump backward or forward (seeking method)
- void (CDL_API_CALL *CDL_JumpBackward)(void);
- void (CDL_API_CALL *CDL_JumpForward)(void);
- // Retrieve or set the fullscreen mode (boolean)
- BOOL (CDL_API_CALL *CDL_GetFullScreen)(void);
- void (CDL_API_CALL *CDL_SetFullScreen)(void);
- // DVD/PDM and futur Menu navigation procs
- void (CDL_API_CALL *CDL_MenuUp)(void);
- void (CDL_API_CALL *CDL_MenuDown)(void);
- void (CDL_API_CALL *CDL_MenuLeft)(void);
- void (CDL_API_CALL *CDL_MenuRight)(void);
- void (CDL_API_CALL *CDL_MenuSelect)(void);
- // Call the DVD menus
- void (CDL_API_CALL *CDL_DVDRootMenu)(void);
- void (CDL_API_CALL *CDL_DVDAudioMenu)(void);
- void (CDL_API_CALL *CDL_DVDTitleMenu)(void);
- void (CDL_API_CALL *CDL_DVDSubpicMenu)(void);
- void (CDL_API_CALL *CDL_DVDAngleMenu)(void);
- // Cycle display aspect ratio
- void (CDL_API_CALL *CDL_CycleDAR)(void);
- // Cycle the audio streams
- void (CDL_API_CALL *CDL_CycleAudio)(void);
- // Cycle the subtitles streams/files (apply with Nefertiti)
- void (CDL_API_CALL *CDL_CycleSub)(void);
- // Get or set the repeat state
- BOOL (CDL_API_CALL *CDL_GetRepeat)(void);
- void (CDL_API_CALL *CDL_SetRepeat)(void);
- // Get or set the shuffle state
- BOOL (CDL_API_CALL *CDL_GetShuffle)(void);
- void (CDL_API_CALL *CDL_SetShuffle)(void);
- // Get the video height or width. Take in count the modified size
- // (ie: fullscreen or modified AR)
- int (CDL_API_CALL *CDL_GetVideoHeight)(void);
- int (CDL_API_CALL *CDL_GetVideoWidth)(void);
- // Set a new size. The video is automatically centered
- void (CDL_API_CALL *CDL_SetVideoSize)(int height, int width);
- // Set the PanScan value. From 25% to 400%
- int (CDL_API_CALL *CDL_GetPanScan)(void);
- void (CDL_API_CALL *CDL_SetPanScan)(int percent);
- // Set a new Display Aspect Ratio
- void (CDL_API_CALL *CDL_SetDAR)(int RatioC, int RatioD);
- // Set a new Pixels Aspect Ratio
- void (CDL_API_CALL *CDL_SetPAR)(int RatioC, int RatioD);
- // Reset the video to the default aspect ratio/size
- void (CDL_API_CALL *CDL_ResetVideoSize)(void);
- // Write something (maybe funny) on the OSD
- void (CDL_API_CALL *CDL_WriteToOSD)(char* mytext);
- // Retrieve or set the scrolling text of the main player
- char* (CDL_API_CALL *CDL_GetScrollText)(void);
- void (CDL_API_CALL *CDL_SetScrollText)(char* mytext);
- // Load or save a Nefertiti playlist (XML)
- void (CDL_API_CALL *CDL_LoadPlaylist)(char* filename);
- void (CDL_API_CALL *CDL_SavePlaylist)(char* filename);
- // Get the itemindex of the current file playing from the
- // playlist. (base 0)
- int (CDL_API_CALL *CDL_GetPlayingItem)(void);
- // Get the playlist items count
- int (CDL_API_CALL *CDL_GetItemsCount)(void);
- // Play an item from the playlist
- void (CDL_API_CALL *CDL_PlayItem)(int itemindex);
- // Retrieve the title from the playlist item
- char* (CDL_API_CALL *CDL_GetItemTitle)(int itemindex);
- // Retrieve the filename from the playlist item
- char* (CDL_API_CALL *CDL_GetItemFilename)(int itemindex);
- // Select an item in the playlist. This does not unselect the curren=
t
- // selected items, so you may need CDL_ItemsClearSel
- void (CDL_API_CALL *CDL_SelectItem)(int itemindex);
- // Clear the playlist selection
- void (CDL_API_CALL *CDL_ItemsClearSel)(void);
- // Add a file to the playlist
- void (CDL_API_CALL *CDL_AddItem)(char* filename);
- // Delete the selected items
- void (CDL_API_CALL *CDL_DeleteItems)(void);
- // Get or set Equalizer state
- BOOL (CDL_API_CALL *CDL_GetEQState)(void);
- void (CDL_API_CALL *CDL_SetEQState)(BOOL enabled);
- // Get or set DRC value: Min: 300 (0 dB), Max: 0 (30 dB)
- int (CDL_API_CALL *CDL_GetEQDRC)(void);
- void (CDL_API_CALL *CDL_SetEQDRC)(int nvalue);
- // Get or set the equalizer bands: Min: 100 (-15 dB), Max: 0 (+15dB)
- // Default is of course 100. 1st param is the band (0 to 8)
- int (CDL_API_CALL *CDL_GetEQBand)(int Band);
- void (CDL_API_CALL *CDL_SetEQBand)(int Band, int nvalue);
- // Ask the player to hijack your config dialog in the options box
- // 1st param is the handle of your window, the 2nd is the caption
- void (CDL_API_CALL *CDL_HijackMe)(HWND myHwnd, char* Name);
- // Same but it will be a child to last non-children hijacked dialog
- void (CDL_API_CALL *CDL_HijackMyChild)(HWND myHwnd, char* ChildName)=
;
- // Register a window in the player windows submenu list. You have to=
provide
- // a Global Unique ID. Check CDL_Howto.txt for further details.
- void (CDL_API_CALL *CDL_RegisterWindow)(char* Description, GUID WinI=
D);
- // Same, but with a shortcut
- void (CDL_API_CALL *CDL_RegisterShortcut)(char *Description, GUID Wi=
nID);
- // Request a tab in the media properties, check CDL_Howto.txt for a =
complete guide
- void (CDL_API_CALL *CDL_AddMediaTab)(char* Description, HWND myHWND)=
;
- // Write something to the console
- void (CDL_API_CALL *CDL_WriteToConsole)(char* mytext);
- // Get the current playback state
- // (CORE_FILEPLAY, CORE_FILEPAUSE, CORE_FILESTOP and CORE_FILECLOSED=
)
- int (CDL_API_CALL *CDL_GetPlayState)(void);
- // Get a pointer to the DirectShow IGraphBuilder COM object.
- // Read CDL_Howto.txt for more details (recommended)
- void* (CDL_API_CALL *CDL_GetDSGraph)(void);
- // Add a subtitle extension to the player's opendialog filter
- // use caps, ie: '.SUB'. Read CDL_Howto.txt to know how to add a new=
subtitle format.
- void (CDL_API_CALL *CDL_AddSubExt)(char* Ext);
- // Draw a subtitle line, duration is in milliseconds
- void (CDL_API_CALL *CDL_DrawXMLSub)(char* Text, int Duration);
- // Clear last XML subtitle
- void (CDL_API_CALL *CDL_ClearXMLSub)(void);
- // Clear the whole screen except OSD
- void (CDL_API_CALL *CDL_ClearAllXMLSub)(void);
- // Get the metadata. They are filled just after the CORE_FILELOADING=
event by CDL
- // that support MediaPropExec2 (API v101)
- void (CDL_API_CALL *CDL_GetMetadata)(CDL_Metadata *meta);
- // Notify a CCAS filter that it should update it settings. The Settin=
gs pointer is
- // pointing to a structure of your choice or whatever you want
- void (CDL_API_CALL *CDL_NotifyCCASUpdate)(GUID CCASID, void *Setting=
s);
-#ifdef _DEBUG
- DWORD fnpBuffer[64];
-#endif
-} CDL_CoreHeader, *PCDL_CoreHeader;
-
-// ---------------------------------------------------------------------=
-------
-#endif
-// ---------------------------------------------------------------------=
-------
+// ---------------------------------------------------------------------=
-------
+// Core Dynamic Library - Plugin framework for The Core Media Player
+//
+// http://www.corecoded.com - http://www.corecodec.com
+// Actually used to control the player using the CDL API
+// CDL API Version 1.01 (101)
+//
+// (C/C++ header)
+//
+// Ok, here we goes, the SDK for TCMP, just for you, so you can make the=
player
+// even better! Very easy to use, you shouldn't have any problems using =
it.
+// While I'm trying to make this SDK, I may forget to bind some function=
s that
+// you will need while developing your CDL, or if you have some kick-ass=
ideas
+// there is some good chances that I will add them to the CDL SDK. Come =
on our
+// sweet forum and post your wishes!
+//
+// I hesitated between writing a documentation and commenting the CDL he=
ader,
+// as you can see I choose the 2nd option for my health. You can find a =
lot of
+// informations in CDL_Howto.txt
+// Don't forget: have fun while coding!
+//
+// CoreCodec SDK license:
+// Copyright (c) 2001-2002 CoreCodec, Inc.
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any dam=
ages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpo=
se,
+// including commercial applications, and to alter it and redistribut=
e it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you mus=
t not
+// claim that you wrote the original software. If you use this sof=
tware
+// in a product, an acknowledgment in the product documentation wo=
uld be
+// appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and mus=
t not be
+// misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distr=
ibution.
+//
+//
+// Ludovic 'BlackSun' Vialle, CoreCodec Lead-developer.
+// C/C++ Conversion by Christophe 'Toff' PARIS
+// This version was modifed by Jory 'jcsston' Stone to attempt support f=
or v1.01 of the CDL API
+//=20
+// ---------------------------------------------------------------------=
-------
+#ifndef _CDLAPI_H_
+#define _CDLAPI_H_
+// ---------------------------------------------------------------------=
-------
+
+#include <windows.h>
+
+// ---------------------------------------------------------------------=
-------
+
+#define CDL_API_CALL __stdcall
+
+// ---------------------------------------------------------------------=
-------
+
+#ifdef __cplusplus
+#define CDL_API_EXPORT extern "C" __declspec(dllexport)
+#else
+#define CDL_API_EXPORT __declspec(dllexport)
+#endif=20
+
+// ---------------------------------------------------------------------=
-------
+
+// Error and success codes for the plugin initialization
+#define CORE_OK 1 // Your CDL is loaded
+#define CORE_NOT_OK 10 // Report this if you don't want=
to be loaded
+
+// Events notification codes
+#define CORE_FILELOADING 601 // A file is loading (Param1 =3D=
=3D filename)
+#define CORE_FILELOADED 602 // TCMP is done with loading the=
file (Param1 =3D=3D filename)
+#define CORE_FILECLOSED 603 // TCMP is closing the file (no =
params) (also used for state)
+
+#define CORE_FILEPLAY 610 // Playback state (no params)
+#define CORE_FILEPAUSE 611 // Playback state (no params)
+#define CORE_FILESTOP 612 // Playback state (no params)
+#define CORE_FULLSCREEN 615 // Fullscreen mode change (Param=
2: 0 =3D=3D false or 1 =3D=3D true)
+#define CORE_FILESEEK 616 // Seeking in the file
+#define CORE_VIDEOSIZECHANGE 617 // Video size change
+
+// Plugins flags (what the plugin support)
+#define CORE_NOFLAG 0x0
+#define CORE_SHOWWINDOW 0x10 // ShowWindow event
+#define CORE_SHORTCUTEXEC 0x20 // ShortcutExec event
+#define CORE_MEDIAPROPEXEC 0x40 // MediaPropExec event
+#define CORE_EVENTHANDLER 0x80 // EventHandler event
+#define CORE_READTAGS 0x100 // ReadTags event (API v101)
+#define CORE_WRITETAGS 0x200 // WriteTags event (API v101)
+
+// ---------------------------------------------------------------------=
-------
+
+// -- Your exports/functions --
+typedef struct
+{
+ char* MediaType;
+ char* TagList;
+ char* Title;
+ char* Artist;
+ char* Album;
+ short Track;
+ int Year;
+ char* Genre;
+ int Bitrate; // Mainly used for audio, express it in KB/s
+ short Rating; // User rating from 1 to 10
+ char* Extension; // File extension in UPPERCASE without the dot (ie:=
"MP3")
+ char* Codec; // ie: "DivX 6.0"
+ char* EncodingStyle; // ie: "VBR" or "SV8"
+ char* Comment;
+ char* Extended; // supplementary metadata, in an XML like presentati=
on <compositor>W.A.Mozart</compositor>
+} CDL_Metadata, *PCDL_Metadata;
+
+
+typedef struct
+{
+ // version of your CDL (ie: '1.0 alpha')
+ char* version;
+ // The name of your CDL
+ char* name;
+ // Proc called when the player init your plugin
+ int (CDL_API_CALL *LoadProc)(int version);
+ // Proc called when the user want to configure your CDL
+ // You may just show an about box if you hijacked your settings
+ // (you can use hwndParent)
+ void (CDL_API_CALL *ConfigProc)(void);
+ // Called when the player unload your CDL
+ void (CDL_API_CALL *UnloadProc)(void);
+ // The player give its handle in hwndParent
+ HWND hwndParent;
+ // Set the plugins caps. ie: CORE_SHOWWINDOW | CORE_EVENTHANDLER
+ DWORD dwflags;
+ // -- the following functions aren't mandatory --
+ // If a registered window is selected, the player ask you if you are
+ // the owner, return true if this is the case, otherwise return fals=
e.
+ BOOL (CDL_API_CALL *ShowWindow)(GUID ID);
+ // Same, but with a shortcut
+ BOOL (CDL_API_CALL *ShortcutExec)(GUID ID);
+ // The player ask you if you want to add your tab to the media prope=
rties
+ // the filename is sent so you can open it to read the tags for exam=
ple.
+ // Return a string with the title, or an empty string.
+ char* (CDL_API_CALL *MediaPropExec)(char* Filename);
+ // Event handler. TCMP will notify you of the most important events
+ // Depending of the event, the player may send you a parameter, it c=
an be
+ // a string (Param1 ('' =3D=3D null) or an integer (Param2 (-1 =3D=3D=
null)
+ void (CDL_API_CALL *EventHandler)(int Event, char* Param1, int Param=
2);
+ // This API is used by TCMP to get some standard tags from a file, i=
t will be used
+ // for the playlist and the medialib. (API v101)
+ void (CDL_API_CALL *ReadTags)(char *Filename, CDL_Metadata& Metadata=
);
+ // Same as the previous one, but TCMP will ask you to write the tags=
, use the prefered
+ // tag format. (API v101)
+ void (CDL_API_CALL *WriteTags)(char *Filename, CDL_Metadata Metadata=
);
+
+} CDL_PluginHeader, *PCDL_PluginHeader;
+
+// ---------------------------------------------------------------------=
-------
+
+// -- The Core Media Player exports/functions at your service --
+typedef struct
+{
+ // Get the CDL version supported by the player
+ int (CDL_API_CALL *CDL_GetVersion)(void);
+ // Popup a OpenDialog box, with your filter and return the filename
+ // return an empty string if the user pressed cancel.
+ char* (CDL_API_CALL *CDL_OpenDialog)(char* filter);
+ // Same with a SaveDialog box
+ char* (CDL_API_CALL *CDL_SaveDialog)(char* filter);
+ // Load a file, can be a video, audio or subtitles or a video_ts.ifo
+ // if the version of the player allow it.
+ void (CDL_API_CALL *CDL_LoadFile)(char* filename); =20
+ // Get the filename of the current opened file
+ char* (CDL_API_CALL *CDL_GetFilename)(void);
+ // Previous button
+ void (CDL_API_CALL *CDL_PreviousItem)(void);
+ // Next button
+ void (CDL_API_CALL *CDL_NextItem)(void);
+ // Play/Pause toggle button
+ void (CDL_API_CALL *CDL_PlayPause)(void);
+ // Stop button
+ void (CDL_API_CALL *CDL_Stop)(void);
+ // Get or set the current position. Don't call it every ms or you'll
+ // overload the cpu :) The time is returned in milliseconds.
+ int (CDL_API_CALL *CDL_GetPosition)(void);
+ void (CDL_API_CALL *CDL_SetPosition)(int position);
+ // Get the duration of the opened file in milliseconds
+ int (CDL_API_CALL *CDL_GetDuration)(void); =20
+ // Get or set the volume value. min: -10000, max: 0 (log)
+ int (CDL_API_CALL *CDL_GetVolume)(void);
+ void (CDL_API_CALL *CDL_SetVolume)(int position);
+ // Move the volume slider of the player up or down
+ void (CDL_API_CALL *CDL_VolumeUp)(void);
+ void (CDL_API_CALL *CDL_VolumeDown)(void); =20
+ // Seek to the previous or next bookmark
+ void (CDL_API_CALL *CDL_PreviousBookmark)(void);
+ void (CDL_API_CALL *CDL_NextBookmark)(void);
+ // Jump backward or forward (seeking method)
+ void (CDL_API_CALL *CDL_JumpBackward)(void);
+ void (CDL_API_CALL *CDL_JumpForward)(void);
+ // Retrieve or set the fullscreen mode (boolean)
+ BOOL (CDL_API_CALL *CDL_GetFullScreen)(void);
+ void (CDL_API_CALL *CDL_SetFullScreen)(void);
+ // DVD/PDM and futur Menu navigation procs
+ void (CDL_API_CALL *CDL_MenuUp)(void);
+ void (CDL_API_CALL *CDL_MenuDown)(void);
+ void (CDL_API_CALL *CDL_MenuLeft)(void);
+ void (CDL_API_CALL *CDL_MenuRight)(void);
+ void (CDL_API_CALL *CDL_MenuSelect)(void);
+ // Call the DVD menus
+ void (CDL_API_CALL *CDL_DVDRootMenu)(void);
+ void (CDL_API_CALL *CDL_DVDAudioMenu)(void);
+ void (CDL_API_CALL *CDL_DVDTitleMenu)(void);
+ void (CDL_API_CALL *CDL_DVDSubpicMenu)(void);
+ void (CDL_API_CALL *CDL_DVDAngleMenu)(void);
+ // Cycle display aspect ratio
+ void (CDL_API_CALL *CDL_CycleDAR)(void);
+ // Cycle the audio streams
+ void (CDL_API_CALL *CDL_CycleAudio)(void);
+ // Cycle the subtitles streams/files (apply with Nefertiti)
+ void (CDL_API_CALL *CDL_CycleSub)(void);
+ // Get or set the repeat state
+ BOOL (CDL_API_CALL *CDL_GetRepeat)(void);
+ void (CDL_API_CALL *CDL_SetRepeat)(void);
+ // Get or set the shuffle state
+ BOOL (CDL_API_CALL *CDL_GetShuffle)(void);
+ void (CDL_API_CALL *CDL_SetShuffle)(void);
+ // Get the video height or width. Take in count the modified size
+ // (ie: fullscreen or modified AR)
+ int (CDL_API_CALL *CDL_GetVideoHeight)(void);
+ int (CDL_API_CALL *CDL_GetVideoWidth)(void);
+ // Set a new size. The video is automatically centered
+ void (CDL_API_CALL *CDL_SetVideoSize)(int height, int width);
+ // Set the PanScan value. From 25% to 400%
+ int (CDL_API_CALL *CDL_GetPanScan)(void);
+ void (CDL_API_CALL *CDL_SetPanScan)(int percent);
+ // Set a new Display Aspect Ratio
+ void (CDL_API_CALL *CDL_SetDAR)(int RatioC, int RatioD);
+ // Set a new Pixels Aspect Ratio
+ void (CDL_API_CALL *CDL_SetPAR)(int RatioC, int RatioD);
+ // Reset the video to the default aspect ratio/size
+ void (CDL_API_CALL *CDL_ResetVideoSize)(void);
+ // Write something (maybe funny) on the OSD
+ void (CDL_API_CALL *CDL_WriteToOSD)(char* mytext);
+ // Retrieve or set the scrolling text of the main player
+ char* (CDL_API_CALL *CDL_GetScrollText)(void);
+ void (CDL_API_CALL *CDL_SetScrollText)(char* mytext);
+ // Load or save a Nefertiti playlist (XML)
+ void (CDL_API_CALL *CDL_LoadPlaylist)(char* filename);
+ void (CDL_API_CALL *CDL_SavePlaylist)(char* filename);
+ // Get the itemindex of the current file playing from the
+ // playlist. (base 0)
+ int (CDL_API_CALL *CDL_GetPlayingItem)(void);
+ // Get the playlist items count
+ int (CDL_API_CALL *CDL_GetItemsCount)(void);
+ // Play an item from the playlist
+ void (CDL_API_CALL *CDL_PlayItem)(int itemindex);
+ // Retrieve the title from the playlist item
+ char* (CDL_API_CALL *CDL_GetItemTitle)(int itemindex);
+ // Retrieve the filename from the playlist item
+ char* (CDL_API_CALL *CDL_GetItemFilename)(int itemindex);
+ // Select an item in the playlist. This does not unselect the curren=
t
+ // selected items, so you may need CDL_ItemsClearSel
+ void (CDL_API_CALL *CDL_SelectItem)(int itemindex);
+ // Clear the playlist selection
+ void (CDL_API_CALL *CDL_ItemsClearSel)(void);
+ // Add a file to the playlist
+ void (CDL_API_CALL *CDL_AddItem)(char* filename);
+ // Delete the selected items
+ void (CDL_API_CALL *CDL_DeleteItems)(void);
+ // Get or set Equalizer state
+ BOOL (CDL_API_CALL *CDL_GetEQState)(void);
+ void (CDL_API_CALL *CDL_SetEQState)(BOOL enabled);
+ // Get or set DRC value: Min: 300 (0 dB), Max: 0 (30 dB)
+ int (CDL_API_CALL *CDL_GetEQDRC)(void);
+ void (CDL_API_CALL *CDL_SetEQDRC)(int nvalue);
+ // Get or set the equalizer bands: Min: 100 (-15 dB), Max: 0 (+15dB)
+ // Default is of course 100. 1st param is the band (0 to 8)
+ int (CDL_API_CALL *CDL_GetEQBand)(int Band);
+ void (CDL_API_CALL *CDL_SetEQBand)(int Band, int nvalue);
+ // Ask the player to hijack your config dialog in the options box
+ // 1st param is the handle of your window, the 2nd is the caption
+ void (CDL_API_CALL *CDL_HijackMe)(HWND myHwnd, char* Name);
+ // Same but it will be a child to last non-children hijacked dialog
+ void (CDL_API_CALL *CDL_HijackMyChild)(HWND myHwnd, char* ChildName)=
;
+ // Register a window in the player windows submenu list. You have to=
provide
+ // a Global Unique ID. Check CDL_Howto.txt for further details.
+ void (CDL_API_CALL *CDL_RegisterWindow)(char* Description, GUID WinI=
D);
+ // Same, but with a shortcut
+ void (CDL_API_CALL *CDL_RegisterShortcut)(char *Description, GUID Wi=
nID);
+ // Request a tab in the media properties, check CDL_Howto.txt for a =
complete guide
+ void (CDL_API_CALL *CDL_AddMediaTab)(char* Description, HWND myHWND)=
;
+ // Write something to the console
+ void (CDL_API_CALL *CDL_WriteToConsole)(char* mytext);
+ // Get the current playback state
+ // (CORE_FILEPLAY, CORE_FILEPAUSE, CORE_FILESTOP and CORE_FILECLOSED=
)
+ int (CDL_API_CALL *CDL_GetPlayState)(void);
+ // Get a pointer to the DirectShow IGraphBuilder COM object.
+ // Read CDL_Howto.txt for more details (recommended)
+ void* (CDL_API_CALL *CDL_GetDSGraph)(void);
+ // Add a subtitle extension to the player's opendialog filter
+ // use caps, ie: '.SUB'. Read CDL_Howto.txt to know how to add a new=
subtitle format.
+ void (CDL_API_CALL *CDL_AddSubExt)(char* Ext);
+ // Draw a subtitle line, duration is in milliseconds
+ void (CDL_API_CALL *CDL_DrawXMLSub)(char* Text, int Duration);
+ // Clear last XML subtitle
+ void (CDL_API_CALL *CDL_ClearXMLSub)(void);
+ // Clear the whole screen except OSD
+ void (CDL_API_CALL *CDL_ClearAllXMLSub)(void);
+ // Get the metadata. They are filled just after the CORE_FILELOADING=
event by CDL
+ // that support MediaPropExec2 (API v101)
+ void (CDL_API_CALL *CDL_GetMetadata)(CDL_Metadata *meta);
+ // Notify a CCAS filter that it should update it settings. The Settin=
gs pointer is
+ // pointing to a structure of your choice or whatever you want
+ void (CDL_API_CALL *CDL_NotifyCCASUpdate)(GUID CCASID, void *Setting=
s);
+#ifdef _DEBUG
+ DWORD fnpBuffer[64];
+#endif
+} CDL_CoreHeader, *PCDL_CoreHeader;
+
+// ---------------------------------------------------------------------=
-------
+#endif
+// ---------------------------------------------------------------------=
-------
Property changes on: trunk/MatroskaUtils/MatroskaCDL/CDLApi.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/MatroskaCDL/MatroskaCDL.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/MatroskaCDL/MatroskaCDL.h 2007-02-17 10:34:40 UTC=
(rev 1276)
+++ trunk/MatroskaUtils/MatroskaCDL/MatroskaCDL.h 2007-02-17 10:55:54 UTC=
(rev 1277)
@@ -1,95 +1,95 @@
-/*
- * The TCMP Matroska CDL, a plugin to access extra features of Matroska=
files with TCMP
- *
- * MatroskaCDL.h
- *
- * Copyright (C) Jory Stone - June 2003
- * Copyright (C) John Cannon - 2003
- *
- * CDL API
- * Copyright (C) Ludovic 'BlackSun' Vialle, CoreCodec Lead-developer.
- * Copyright (C) C/C++ Conversion by Christophe 'Toff' PARIS
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file MatroskaCDL.h
- \version \$Id: MatroskaCDL.h,v 1.8 2003/11/19 08:13:47 jcsston Exp $
- \brief The TCMP Matroska CDL, a plugin to access extra features of M=
atroska files with TCMP
- \author Jory Stone <jcsston @ toughguy.net>
- \author John Cannon <spyder482 @ yahoo.com>
- =09
- Inspired by ;) John Cannon ([email protected]) (c) 2003
- Thanks to Toff & Blacksun for the TCMP Plugin API
-*/
-
-#if !defined(AFX_MATROSKACDL_H__8CD7AF71_FBA1_40FE_8E19_390AE5021AD1__IN=
CLUDED_)
-#define AFX_MATROSKACDL_H__8CD7AF71_FBA1_40FE_8E19_390AE5021AD1__INCLUDE=
D_
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <math.h>
-#include <time.h>
-
-//Include the TCMP CDL API
-#include "CDLApi.h"
-
-#include "MatroskaPages.h"
-
-int CDL_API_CALL CDL_Load(int version);
-void CDL_API_CALL CDL_Config(void);
-void CDL_API_CALL CDL_Unload(void);
-void CDL_API_CALL CDL_EventHandler(int Event, char* Param1, int Param2);
-char* CDL_API_CALL CDL_MediaPropExec(char *Filename);
-void CDL_API_CALL CDL_ReadTags(char *Filename, CDL_Metadata &MetaData);
-void CDL_API_CALL CDL_WriteTags(char *Filename, CDL_Metadata Metadata);
-
-#define CDL_NAME "Matroska Info"
-#define CDL_VERSION "1.7"
-
-MatroskaPages *global_pagedata =3D NULL;
-
-// ---------------------------------------------------------------------=
-------
-
-CDL_PluginHeader MyCDL =3D
-{
- CDL_VERSION, // Our version number
- CDL_NAME, // Name of our plugin
- CDL_Load, // Point to our load function
- CDL_Config, // Point to our config procedure
- CDL_Unload, // Point to our unload procedure
- NULL,
- CORE_NOFLAG
- | CORE_EVENTHANDLER=20
- | CORE_MEDIAPROPEXEC
- | CORE_READTAGS
- | CORE_WRITETAGS
- ,
- NULL,
- NULL,
- CDL_MediaPropExec,
- CDL_EventHandler,
- CDL_ReadTags,
- CDL_WriteTags
-};
-
-PCDL_CoreHeader pCoreCDL =3D NULL;
-
-// ---------------------------------------------------------------------=
-------
-
-#endif // !defined(AFX_MATROSKACDL_H__8CD7AF71_FBA1_40FE_8E19_390AE5021A=
D1__INCLUDED_)
+/*
+ * The TCMP Matroska CDL, a plugin to access extra features of Matroska=
files with TCMP
+ *
+ * MatroskaCDL.h
+ *
+ * Copyright (C) Jory Stone - June 2003
+ * Copyright (C) John Cannon - 2003
+ *
+ * CDL API
+ * Copyright (C) Ludovic 'BlackSun' Vialle, CoreCodec Lead-developer.
+ * Copyright (C) C/C++ Conversion by Christophe 'Toff' PARIS
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file MatroskaCDL.h
+ \version \$Id: MatroskaCDL.h,v 1.8 2003/11/19 08:13:47 jcsston Exp $
+ \brief The TCMP Matroska CDL, a plugin to access extra features of M=
atroska files with TCMP
+ \author Jory Stone <jcsston @ toughguy.net>
+ \author John Cannon <spyder482 @ yahoo.com>
+ =09
+ Inspired by ;) John Cannon ([email protected]) (c) 2003
+ Thanks to Toff & Blacksun for the TCMP Plugin API
+*/
+
+#if !defined(AFX_MATROSKACDL_H__8CD7AF71_FBA1_40FE_8E19_390AE5021AD1__IN=
CLUDED_)
+#define AFX_MATROSKACDL_H__8CD7AF71_FBA1_40FE_8E19_390AE5021AD1__INCLUDE=
D_
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <math.h>
+#include <time.h>
+
+//Include the TCMP CDL API
+#include "CDLApi.h"
+
+#include "MatroskaPages.h"
+
+int CDL_API_CALL CDL_Load(int version);
+void CDL_API_CALL CDL_Config(void);
+void CDL_API_CALL CDL_Unload(void);
+void CDL_API_CALL CDL_EventHandler(int Event, char* Param1, int Param2);
+char* CDL_API_CALL CDL_MediaPropExec(char *Filename);
+void CDL_API_CALL CDL_ReadTags(char *Filename, CDL_Metadata &MetaData);
+void CDL_API_CALL CDL_WriteTags(char *Filename, CDL_Metadata Metadata);
+
+#define CDL_NAME "Matroska Info"
+#define CDL_VERSION "1.7"
+
+MatroskaPages *global_pagedata =3D NULL;
+
+// ---------------------------------------------------------------------=
-------
+
+CDL_PluginHeader MyCDL =3D
+{
+ CDL_VERSION, // Our version number
+ CDL_NAME, // Name of our plugin
+ CDL_Load, // Point to our load function
+ CDL_Config, // Point to our config procedure
+ CDL_Unload, // Point to our unload procedure
+ NULL,
+ CORE_NOFLAG
+ | CORE_EVENTHANDLER=20
+ | CORE_MEDIAPROPEXEC
+ | CORE_READTAGS
+ | CORE_WRITETAGS
+ ,
+ NULL,
+ NULL,
+ CDL_MediaPropExec,
+ CDL_EventHandler,
+ CDL_ReadTags,
+ CDL_WriteTags
+};
+
+PCDL_CoreHeader pCoreCDL =3D NULL;
+
+// ---------------------------------------------------------------------=
-------
+
+#endif // !defined(AFX_MATROSKACDL_H__8CD7AF71_FBA1_40FE_8E19_390AE5021A=
D1__INCLUDED_)
Property changes on: trunk/MatroskaUtils/MatroskaCDL/MatroskaCDL.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/MatroskaChapterData.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/MatroskaChapterData.h 2007-02-17 10:34:40 UTC (re=
v 1276)
+++ trunk/MatroskaUtils/MatroskaChapterData.h 2007-02-17 10:55:54 UTC (re=
v 1277)
@@ -1,126 +1,126 @@
-/*
- * Part of The TCMP Matroska CDL, a plugin to access extra features of =
Matroska files with TCMP
- *
- * MatroskaTrackData.h
- *
- * Copyright (C) Jory Stone - June 2003
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file MatroskaTrackData.h
- \version \$Id: MatroskaChapterData.h,v 1.4 2004/03/20 05:08:30 jcsston=
Exp $
- \brief Some general code to make working with Matroska easier
- \author Jory Stone <jcsston @ toughguy.net>
- =09
- Inspired by ;) John Cannon ([email protected]) (c) 2003
-*/
-
-#ifndef _MATROSKA_CHAPTER_DATA_H_
-#define _MATROSKA_CHAPTER_DATA_H_
-
-#ifdef WIN32
-#include <windows.h>
-#endif //WIN32
-#include <vector>
-
-#include "MatroskaUtilsDebug.h"
-
-// libebml includes
-#include "ebml/StdIOCallback.h"
-#include "ebml/EbmlTypes.h"
-#include "ebml/EbmlHead.h"
-#include "ebml/EbmlVoid.h"
-#include "ebml/EbmlCrc32.h"
-#include "ebml/EbmlSubHead.h"
-#include "ebml/EbmlStream.h"
-#include "ebml/EbmlBinary.h"
-#include "ebml/EbmlString.h"
-#include "ebml/EbmlUnicodeString.h"
-#include "ebml/EbmlContexts.h"
-#include "ebml/EbmlVersion.h"
-
-// libmatroska includes
-#include "matroska/KaxConfig.h"
-#include "matroska/KaxSegment.h"
-#include "matroska/KaxContexts.h"
-#include "matroska/KaxChapters.h"
-#include "matroska/KaxVersion.h"
-
-#ifdef USING_TINYXML
-#include "tinyxml/tinyxml.h"
-#endif
-
-namespace MatroskaUtilsNamespace {
-
-class MatroskaChapterEntry;
-
-class MatroskaChapterList : public std::vector<MatroskaChapterEntry *> {
-public:=09
- void Add(MatroskaChapterEntry *chapter);
- virtual ~MatroskaChapterList();
-
-#ifdef USING_TINYXML
- void ListAsXML(TiXmlElement &baseElement);
-#endif
-};
-
-class MatroskaChapterDisplayInfo {
-public:
- MatroskaChapterDisplayInfo();
- virtual ~MatroskaChapterDisplayInfo();
-
- UTFstring string;
- std::string lang;
- std::string country;
-};
-
-class MatroskaChapterEntry {
-public:
- MatroskaChapterEntry();
- MatroskaChapterEntry(MatroskaChapterEntry *_parent);
- virtual ~MatroskaChapterEntry();
-
- virtual UTFstring &GetTimeStartStr();
- virtual UTFstring &GetTimeEndStr();
-
-#ifdef USING_TINYXML
- virtual void ListAsXML(TiXmlElement &baseElement);
-#endif
-
- uint64 chapterUID;
- uint64 timeStart;=09
- uint64 timeEnd;
-=09
- /// Vector of all the tracks this chapter applies to
- /// if it's empty then this chapter applies to all tracks
- std::vector<uint64> tracks;
- /// Vector of strings we can display for chapter
- std::vector<MatroskaChapterDisplayInfo> display;
-
- // The parent of this entry, NULL if this is the root chapter
- MatroskaChapterEntry *parent;
- /// Children of this entry
- MatroskaChapterList children;
-protected:
- UTFstring m_timeStartStr;
- UTFstring m_timeEndStr;
-};
-
-}; // namespace MatroskaUtilsNamespace {
-
-#endif // _MATROSKA_CHAPTER_DATA_H_
+/*
+ * Part of The TCMP Matroska CDL, a plugin to access extra features of =
Matroska files with TCMP
+ *
+ * MatroskaTrackData.h
+ *
+ * Copyright (C) Jory Stone - June 2003
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file MatroskaTrackData.h
+ \version \$Id: MatroskaChapterData.h,v 1.4 2004/03/20 05:08:30 jcsston=
Exp $
+ \brief Some general code to make working with Matroska easier
+ \author Jory Stone <jcsston @ toughguy.net>
+ =09
+ Inspired by ;) John Cannon ([email protected]) (c) 2003
+*/
+
+#ifndef _MATROSKA_CHAPTER_DATA_H_
+#define _MATROSKA_CHAPTER_DATA_H_
+
+#ifdef WIN32
+#include <windows.h>
+#endif //WIN32
+#include <vector>
+
+#include "MatroskaUtilsDebug.h"
+
+// libebml includes
+#include "ebml/StdIOCallback.h"
+#include "ebml/EbmlTypes.h"
+#include "ebml/EbmlHead.h"
+#include "ebml/EbmlVoid.h"
+#include "ebml/EbmlCrc32.h"
+#include "ebml/EbmlSubHead.h"
+#include "ebml/EbmlStream.h"
+#include "ebml/EbmlBinary.h"
+#include "ebml/EbmlString.h"
+#include "ebml/EbmlUnicodeString.h"
+#include "ebml/EbmlContexts.h"
+#include "ebml/EbmlVersion.h"
+
+// libmatroska includes
+#include "matroska/KaxConfig.h"
+#include "matroska/KaxSegment.h"
+#include "matroska/KaxContexts.h"
+#include "matroska/KaxChapters.h"
+#include "matroska/KaxVersion.h"
+
+#ifdef USING_TINYXML
+#include "tinyxml/tinyxml.h"
+#endif
+
+namespace MatroskaUtilsNamespace {
+
+class MatroskaChapterEntry;
+
+class MatroskaChapterList : public std::vector<MatroskaChapterEntry *> {
+public:=09
+ void Add(MatroskaChapterEntry *chapter);
+ virtual ~MatroskaChapterList();
+
+#ifdef USING_TINYXML
+ void ListAsXML(TiXmlElement &baseElement);
+#endif
+};
+
+class MatroskaChapterDisplayInfo {
+public:
+ MatroskaChapterDisplayInfo();
+ virtual ~MatroskaChapterDisplayInfo();
+
+ UTFstring string;
+ std::string lang;
+ std::string country;
+};
+
+class MatroskaChapterEntry {
+public:
+ MatroskaChapterEntry();
+ MatroskaChapterEntry(MatroskaChapterEntry *_parent);
+ virtual ~MatroskaChapterEntry();
+
+ virtual UTFstring &GetTimeStartStr();
+ virtual UTFstring &GetTimeEndStr();
+
+#ifdef USING_TINYXML
+ virtual void ListAsXML(TiXmlElement &baseElement);
+#endif
+
+ uint64 chapterUID;
+ uint64 timeStart;=09
+ uint64 timeEnd;
+=09
+ /// Vector of all the tracks this chapter applies to
+ /// if it's empty then this chapter applies to all tracks
+ std::vector<uint64> tracks;
+ /// Vector of strings we can display for chapter
+ std::vector<MatroskaChapterDisplayInfo> display;
+
+ // The parent of this entry, NULL if this is the root chapter
+ MatroskaChapterEntry *parent;
+ /// Children of this entry
+ MatroskaChapterList children;
+protected:
+ UTFstring m_timeStartStr;
+ UTFstring m_timeEndStr;
+};
+
+}; // namespace MatroskaUtilsNamespace {
+
+#endif // _MATROSKA_CHAPTER_DATA_H_
Property changes on: trunk/MatroskaUtils/MatroskaChapterData.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/MatroskaPages.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/MatroskaPages.h 2007-02-17 10:34:40 UTC (rev 1276=
)
+++ trunk/MatroskaUtils/MatroskaPages.h 2007-02-17 10:55:54 UTC (rev 1277=
)
@@ -1,169 +1,169 @@
-/*
- * Part of The TCMP Matroska CDL, and Matroska Shell Extension
- *
- * MatroskaPages.h
- *
- * Copyright (C) Jory Stone - June 2003
- * Copyright (C) John Cannon - 2003
- *
- * CDL API Copyright (C) Blacksun & Toff - 2003
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file MatroskaPages.h
- \version \$Id: MatroskaPages.h,v 1.36 2004/03/07 08:08:48 jcsston Exp =
$
- \brief This is all the GUI code for the CDL and Shell Extension
- \author Jory Stone <jcsston @ toughguy.net>
-
-*/
-
-#define MATROSKA_CDL_APP_NAME "The Matroska Infomation CDL v1.8"
-#define MATROSKA_SHELL_EXT_APP_NAME "Matroska Shell Extension v2.8"
-
-#ifndef _MATROSKA_PAGES_H_
-#define _MATROSKA_PAGES_H_
-
-#define MANIFEST_RESOURCE_ID 2
-
-#include "MatroskaUtilsDebug.h"
-#include "AviTagReader.h"
-#include "MP3TagReader.h"
-#include "MatroskaReg.h"
-#include "MatroskaUtils.h"
-
-#include "CFireRoutine.h"
-#include "resource.h"
-
-#include <windows.h>
-#include <commctrl.h>
-
-#define WM_LOADTRANSLATIONS WM_USER+0x12
-
-using namespace MatroskaUtilsNamespace;
-
-class MatroskaPages {
-public:
- MatroskaPages();
- ~MatroskaPages();
- uint16 AddRef();
- uint16 Release();
-
- MatroskaInfoParser *parser; // The main workhorse of the CDL
- bool g_bUseUnicodeWinAPI; // Flag used to use Unicode or ANSI
-=09
- HINSTANCE g_hAppInst; // Application instance handle (needed to create =
dialog)
- HWND g_hTreeDialog;
- HWND g_hInfoDialog;
- HWND g_hTagDialog;
- HWND g_hSimpleTagDialog;
- HWND g_hAttachmentDialog;
- HWND g_hChapterDialog;
-#ifdef USING_CXIMAGE
- CxImage *attachedImage;
-#endif
- TCHAR szFile[MAX_MATROSKA_PATH];
-
-protected:
- uint16 m_RefCount;
-};
-
-#ifdef MATROSKA_PROP
-#pragma pack(push, pp1)
-#pragma pack(1)
-typedef struct tagMoreData
-{
- PROPSHEETPAGE psp;
- MatroskaPages *pObjPageData;
-} MoreData;
-#pragma pack(pop, pp1)
-#endif
-
-#define fireWidth 322
-#define fireHeight 64
-
-class MatroskaAboutDialog {
-public:
- MatroskaAboutDialog();
- /// About dialog text string
- JString about_txt;
-
-#ifdef USING_CXIMAGE
- ~MatroskaAboutDialog();
- void RenderFire(HWND hAboutDialog);
- void PaintFire(HWND hAboutDialog);
-
- CFireRoutine myFire;
- RECT fireArea;
- DWORD *myFireBitmap;
- CxImage myFireImage;
- CxImage myTextImage;
- //CxImage *fireLayer;
-#endif // USING_CXIMAGE
-};
-
-BOOL CALLBACK AboutDlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM l=
Param);
-BOOL CALLBACK TreeDlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lP=
aram);
-BOOL CALLBACK ConfigurationDlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,=
LPARAM lParam);
-BOOL CALLBACK IconDlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lP=
aram);
-BOOL CALLBACK ProgressDlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARA=
M lParam);
-BOOL CALLBACK MediaPropProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM =
lParam);
-BOOL CALLBACK MediaPropProc_DisplaySize(HWND hwndDlg,UINT uMsg,WPARAM wP=
aram,LPARAM lParam);
-BOOL CALLBACK MediaPropProc_TrackLanguage(HWND hwndDlg, UINT uMsg, WPARA=
M wParam, LPARAM lParam);
-BOOL CALLBACK MediaPropProc_Attachments(HWND hwndDlg,UINT uMsg,WPARAM wP=
aram,LPARAM lParam);
-BOOL CALLBACK MediaPropProc_AttachedFile(HWND hwndDlg,UINT uMsg,WPARAM w=
Param,LPARAM lParam);
-BOOL CALLBACK MediaPropProc_Chapters(HWND hwndDlg,UINT uMsg,WPARAM wPara=
m,LPARAM lParam);
-BOOL CALLBACK MediaPropProc_Tag(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPA=
RAM lParam);
-BOOL CALLBACK MediaPropProc_SimpleTag(HWND hwndDlg,UINT uMsg,WPARAM wPar=
am,LPARAM lParam);
-BOOL CALLBACK MediaPropProc_AddTag(HWND hwndDlg,UINT uMsg,WPARAM wParam,=
LPARAM lParam);
-BOOL CALLBACK MediaPropProc_AddSimpleTag(HWND hwndDlg,UINT uMsg,WPARAM w=
Param,LPARAM lParam);
-BOOL CALLBACK MediaPropProc_AddUID(HWND hwndDlg,UINT uMsg,WPARAM wParam,=
LPARAM lParam);
-BOOL CALLBACK MediaPropProc_BitrateDisplay(HWND hwndDlg,UINT uMsg,WPARAM=
wParam,LPARAM lParam);
-
-//the parsing thread procedure
-void ParseFileMT(MatroskaPages *pageData, HWND parentDialog =3D NULL);
-void __cdecl MatroskaParserThread(void *pages);
-
-//Various GUI rountines
-MatroskaTrackInfo *GetMainSelectedTrack(HWND hwndDlg, MatroskaInfoParser=
*parser);
-int DisplayMainTrackList(HWND hwndDlg, MatroskaInfoParser *parser);
-int DisplayBasicTrackInfo(HWND hwndDlg, MatroskaInfoParser *parser);
-int DisplayAdvancedTrackInfo(HWND hwndDlg, MatroskaInfoParser *parser);
-int DisplayTagEntryList(HWND hwndDlg, MatroskaInfoParser *parser);
-int DisplayTagUIDList(HWND hwndDlg, MatroskaTagInfo *tag);
-int DisplaySimpleTagTrackList(HWND hwndDlg, MatroskaInfoParser *parser);
-int DisplayAttachmentList(HWND hwndDlg, MatroskaInfoParser *parser);
-int GetEditControlTextLength(HWND theDialog, int edit_control);
-SIZE SmartResize(long sourceX, long sourceY, long maxX, long maxY);
-int CALLBACK ListViewCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM =
lParamSort);
-WORD AddTooltip(HWND hwndTooltip, HWND hwndClient, LPTSTR strText);
-MatroskaTagInfo *GetSelectedTagEntry(HWND hTagDlg);
-void MediaPropProc_Tag_DeleteTag(HWND hTagDlg);
-void MediaPropProc_Tag_TagEntryChange(HWND hwndDlg);
-void MediaPropProc_Tag_TagTextChange(HWND hwndDlg, MatroskaPages *pageDa=
ta);
-void MediaPropProc_Tag_TagListChange(HWND hwndDlg);
-void MediaPropProc_Tag_TagFieldChange(HWND hwndDlg, MatroskaPages *pageD=
ata);
-void MediaPropProc_Tag_TagTypeChange(HWND hwndDlg);
-UTFstring GetSelectedListItem(HWND hwndDlg, int ctrl);
-void DisplayChapterList(HWND hwndDlg, MatroskaInfoParser *parser);
-void DisplayChapterAtom_TreeView(HWND treeCtrl, HTREEITEM parent, Matros=
kaChapterEntry *chapter, std::wstring chapterTitle);
-
-// Crash test function
-void CrashMe();
-
-#endif // _MATROSKA_PAGES_H_
-
+/*
+ * Part of The TCMP Matroska CDL, and Matroska Shell Extension
+ *
+ * MatroskaPages.h
+ *
+ * Copyright (C) Jory Stone - June 2003
+ * Copyright (C) John Cannon - 2003
+ *
+ * CDL API Copyright (C) Blacksun & Toff - 2003
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file MatroskaPages.h
+ \version \$Id: MatroskaPages.h,v 1.36 2004/03/07 08:08:48 jcsston Exp =
$
+ \brief This is all the GUI code for the CDL and Shell Extension
+ \author Jory Stone <jcsston @ toughguy.net>
+
+*/
+
+#define MATROSKA_CDL_APP_NAME "The Matroska Infomation CDL v1.8"
+#define MATROSKA_SHELL_EXT_APP_NAME "Matroska Shell Extension v2.8"
+
+#ifndef _MATROSKA_PAGES_H_
+#define _MATROSKA_PAGES_H_
+
+#define MANIFEST_RESOURCE_ID 2
+
+#include "MatroskaUtilsDebug.h"
+#include "AviTagReader.h"
+#include "MP3TagReader.h"
+#include "MatroskaReg.h"
+#include "MatroskaUtils.h"
+
+#include "CFireRoutine.h"
+#include "resource.h"
+
+#include <windows.h>
+#include <commctrl.h>
+
+#define WM_LOADTRANSLATIONS WM_USER+0x12
+
+using namespace MatroskaUtilsNamespace;
+
+class MatroskaPages {
+public:
+ MatroskaPages();
+ ~MatroskaPages();
+ uint16 AddRef();
+ uint16 Release();
+
+ MatroskaInfoParser *parser; // The main workhorse of the CDL
+ bool g_bUseUnicodeWinAPI; // Flag used to use Unicode or ANSI
+=09
+ HINSTANCE g_hAppInst; // Application instance handle (needed to create =
dialog)
+ HWND g_hTreeDialog;
+ HWND g_hInfoDialog;
+ HWND g_hTagDialog;
+ HWND g_hSimpleTagDialog;
+ HWND g_hAttachmentDialog;
+ HWND g_hChapterDialog;
+#ifdef USING_CXIMAGE
+ CxImage *attachedImage;
+#endif
+ TCHAR szFile[MAX_MATROSKA_PATH];
+
+protected:
+ uint16 m_RefCount;
+};
+
+#ifdef MATROSKA_PROP
+#pragma pack(push, pp1)
+#pragma pack(1)
+typedef struct tagMoreData
+{
+ PROPSHEETPAGE psp;
+ MatroskaPages *pObjPageData;
+} MoreData;
+#pragma pack(pop, pp1)
+#endif
+
+#define fireWidth 322
+#define fireHeight 64
+
+class MatroskaAboutDialog {
+public:
+ MatroskaAboutDialog();
+ /// About dialog text string
+ JString about_txt;
+
+#ifdef USING_CXIMAGE
+ ~MatroskaAboutDialog();
+ void RenderFire(HWND hAboutDialog);
+ void PaintFire(HWND hAboutDialog);
+
+ CFireRoutine myFire;
+ RECT fireArea;
+ DWORD *myFireBitmap;
+ CxImage myFireImage;
+ CxImage myTextImage;
+ //CxImage *fireLayer;
+#endif // USING_CXIMAGE
+};
+
+BOOL CALLBACK AboutDlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM l=
Param);
+BOOL CALLBACK TreeDlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lP=
aram);
+BOOL CALLBACK ConfigurationDlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,=
LPARAM lParam);
+BOOL CALLBACK IconDlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lP=
aram);
+BOOL CALLBACK ProgressDlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARA=
M lParam);
+BOOL CALLBACK MediaPropProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM =
lParam);
+BOOL CALLBACK MediaPropProc_DisplaySize(HWND hwndDlg,UINT uMsg,WPARAM wP=
aram,LPARAM lParam);
+BOOL CALLBACK MediaPropProc_TrackLanguage(HWND hwndDlg, UINT uMsg, WPARA=
M wParam, LPARAM lParam);
+BOOL CALLBACK MediaPropProc_Attachments(HWND hwndDlg,UINT uMsg,WPARAM wP=
aram,LPARAM lParam);
+BOOL CALLBACK MediaPropProc_AttachedFile(HWND hwndDlg,UINT uMsg,WPARAM w=
Param,LPARAM lParam);
+BOOL CALLBACK MediaPropProc_Chapters(HWND hwndDlg,UINT uMsg,WPARAM wPara=
m,LPARAM lParam);
+BOOL CALLBACK MediaPropProc_Tag(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPA=
RAM lParam);
+BOOL CALLBACK MediaPropProc_SimpleTag(HWND hwndDlg,UINT uMsg,WPARAM wPar=
am,LPARAM lParam);
+BOOL CALLBACK MediaPropProc_AddTag(HWND hwndDlg,UINT uMsg,WPARAM wParam,=
LPARAM lParam);
+BOOL CALLBACK MediaPropProc_AddSimpleTag(HWND hwndDlg,UINT uMsg,WPARAM w=
Param,LPARAM lParam);
+BOOL CALLBACK MediaPropProc_AddUID(HWND hwndDlg,UINT uMsg,WPARAM wParam,=
LPARAM lParam);
+BOOL CALLBACK MediaPropProc_BitrateDisplay(HWND hwndDlg,UINT uMsg,WPARAM=
wParam,LPARAM lParam);
+
+//the parsing thread procedure
+void ParseFileMT(MatroskaPages *pageData, HWND parentDialog =3D NULL);
+void __cdecl MatroskaParserThread(void *pages);
+
+//Various GUI rountines
+MatroskaTrackInfo *GetMainSelectedTrack(HWND hwndDlg, MatroskaInfoParser=
*parser);
+int DisplayMainTrackList(HWND hwndDlg, MatroskaInfoParser *parser);
+int DisplayBasicTrackInfo(HWND hwndDlg, MatroskaInfoParser *parser);
+int DisplayAdvancedTrackInfo(HWND hwndDlg, MatroskaInfoParser *parser);
+int DisplayTagEntryList(HWND hwndDlg, MatroskaInfoParser *parser);
+int DisplayTagUIDList(HWND hwndDlg, MatroskaTagInfo *tag);
+int DisplaySimpleTagTrackList(HWND hwndDlg, MatroskaInfoParser *parser);
+int DisplayAttachmentList(HWND hwndDlg, MatroskaInfoParser *parser);
+int GetEditControlTextLength(HWND theDialog, int edit_control);
+SIZE SmartResize(long sourceX, long sourceY, long maxX, long maxY);
+int CALLBACK ListViewCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM =
lParamSort);
+WORD AddTooltip(HWND hwndTooltip, HWND hwndClient, LPTSTR strText);
+MatroskaTagInfo *GetSelectedTagEntry(HWND hTagDlg);
+void MediaPropProc_Tag_DeleteTag(HWND hTagDlg);
+void MediaPropProc_Tag_TagEntryChange(HWND hwndDlg);
+void MediaPropProc_Tag_TagTextChange(HWND hwndDlg, MatroskaPages *pageDa=
ta);
+void MediaPropProc_Tag_TagListChange(HWND hwndDlg);
+void MediaPropProc_Tag_TagFieldChange(HWND hwndDlg, MatroskaPages *pageD=
ata);
+void MediaPropProc_Tag_TagTypeChange(HWND hwndDlg);
+UTFstring GetSelectedListItem(HWND hwndDlg, int ctrl);
+void DisplayChapterList(HWND hwndDlg, MatroskaInfoParser *parser);
+void DisplayChapterAtom_TreeView(HWND treeCtrl, HTREEITEM parent, Matros=
kaChapterEntry *chapter, std::wstring chapterTitle);
+
+// Crash test function
+void CrashMe();
+
+#endif // _MATROSKA_PAGES_H_
+
Property changes on: trunk/MatroskaUtils/MatroskaPages.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/MatroskaReg.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/MatroskaReg.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/MatroskaReg.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,69 +1,69 @@
-/**
- * Part of The TCMP Matroska CDL, a plugin to access extra features of =
Matroska files with TCMP
- *
- * MatroskaReg.h
- *
- * Copyright (C) Jory Stone - June 2003
- *
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
-*/
-
-/*!
- \file MatroskaReg.h
- \version \$Id: MatroskaReg.h,v 1.4 2004/03/07 08:08:48 jcsston Exp $
- \brief Some settings saving code
- \author Jory Stone <jcsston @ toughguy.net>
-*/
-
-#ifndef _MATROSKA_REG_H_
-#define _MATROSKA_REG_H_
-
-#include <windows.h>
-#include <string.h>
-#include <tchar.h>
-#include "JString.h"
-
-/// Gets a uint32 value from the Key under HKEY_CURRENT_USER\\Software\\=
CoreCodec\\The Core Media Player\\Matroska Info CDL
-/// \param value_key The name of the subkey you wish to get
-/// \param default_value If this key doesn't exist this value will be re=
turned to you
-/// \return The uint32 value of the requested key, default_value is retu=
rned if the key doesn't exist
-DWORD MatroskaCDL_GetRegistryValue(TCHAR *value_key, DWORD default_value=
);
-DWORD MatroskaShellExt_GetRegistryValue(TCHAR *value_key, DWORD default_=
value);
-/// Sets a uint32 value to a Key under HKEY_CURRENT_USER\\Software\\Core=
Codec\\The Core Media Player\\Matroska Info CDL
-/// \param value_key The name of the subkey you wish to save
-/// \param the_value The value to write to the Registry key
-void MatroskaCDL_SetRegistryValue(TCHAR *value_key, DWORD the_value);
-void MatroskaShellExt_SetRegistryValue(TCHAR *value_key, DWORD the_value=
);
-
-JString MatroskaShellExt_GetRegistryValueStr(TCHAR *value_key, JString d=
efault_value);
-void MatroskaShellExt_SetRegistryValueStr(TCHAR *value_key, JString the_=
value);
-
-class CRegistryRestore {
-public:
-
- void AddKey(HKEY root, LPCTSTR keyLocation, LPVOID data, DWORD size);
-
- /// Preserve all changes made since last Preserve() call
- void Preserve(HKEY root, LPCTSTR keyLocation);
- /// Reverse all changes made, supply same root and keyLocation as previ=
ously given to Preserve() call
- void Reverse(HKEY root, LPCTSTR keyLocation);
-=09
-protected:
-
-};
-
-#endif // _MATROSKA_REG_H_
+/**
+ * Part of The TCMP Matroska CDL, a plugin to access extra features of =
Matroska files with TCMP
+ *
+ * MatroskaReg.h
+ *
+ * Copyright (C) Jory Stone - June 2003
+ *
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+*/
+
+/*!
+ \file MatroskaReg.h
+ \version \$Id: MatroskaReg.h,v 1.4 2004/03/07 08:08:48 jcsston Exp $
+ \brief Some settings saving code
+ \author Jory Stone <jcsston @ toughguy.net>
+*/
+
+#ifndef _MATROSKA_REG_H_
+#define _MATROSKA_REG_H_
+
+#include <windows.h>
+#include <string.h>
+#include <tchar.h>
+#include "JString.h"
+
+/// Gets a uint32 value from the Key under HKEY_CURRENT_USER\\Software\\=
CoreCodec\\The Core Media Player\\Matroska Info CDL
+/// \param value_key The name of the subkey you wish to get
+/// \param default_value If this key doesn't exist this value will be re=
turned to you
+/// \return The uint32 value of the requested key, default_value is retu=
rned if the key doesn't exist
+DWORD MatroskaCDL_GetRegistryValue(TCHAR *value_key, DWORD default_value=
);
+DWORD MatroskaShellExt_GetRegistryValue(TCHAR *value_key, DWORD default_=
value);
+/// Sets a uint32 value to a Key under HKEY_CURRENT_USER\\Software\\Core=
Codec\\The Core Media Player\\Matroska Info CDL
+/// \param value_key The name of the subkey you wish to save
+/// \param the_value The value to write to the Registry key
+void MatroskaCDL_SetRegistryValue(TCHAR *value_key, DWORD the_value);
+void MatroskaShellExt_SetRegistryValue(TCHAR *value_key, DWORD the_value=
);
+
+JString MatroskaShellExt_GetRegistryValueStr(TCHAR *value_key, JString d=
efault_value);
+void MatroskaShellExt_SetRegistryValueStr(TCHAR *value_key, JString the_=
value);
+
+class CRegistryRestore {
+public:
+
+ void AddKey(HKEY root, LPCTSTR keyLocation, LPVOID data, DWORD size);
+
+ /// Preserve all changes made since last Preserve() call
+ void Preserve(HKEY root, LPCTSTR keyLocation);
+ /// Reverse all changes made, supply same root and keyLocation as previ=
ously given to Preserve() call
+ void Reverse(HKEY root, LPCTSTR keyLocation);
+=09
+protected:
+
+};
+
+#endif // _MATROSKA_REG_H_
Property changes on: trunk/MatroskaUtils/MatroskaReg.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/MatroskaTagData.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/MatroskaTagData.h 2007-02-17 10:34:40 UTC (rev 12=
76)
+++ trunk/MatroskaUtils/MatroskaTagData.h 2007-02-17 10:55:54 UTC (rev 12=
77)
@@ -1,552 +1,552 @@
-/*
- * Part of The TCMP Matroska CDL, a plugin to access extra features of =
Matroska files with TCMP
- *
- * MatroskaTagData.h
- *
- * Copyright (C) Jory Stone - June 2003
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file MatroskaTagData.h
- \version \$Id: MatroskaTagData.h,v 1.18 2004/03/08 07:56:51 jcsston Ex=
p $
- \brief This file deals mostly with the tag stuctures ;)
- \author Jory Stone <jcsston @ toughguy.net>
- =09
- Inspired by ;) John Cannon ([email protected]) (c) 2003
-*/
-
-#ifndef _MATROSKA_TAG_DATA_H_
-#define _MATROSKA_TAG_DATA_H_
-
-#ifdef WIN32
-#include <windows.h>
-#endif //WIN32
-#include <time.h>
-
-#include "MatroskaUtilsDebug.h"
-
-// libebml includes
-#include "ebml/StdIOCallback.h"
-#include "ebml/EbmlTypes.h"
-#include "ebml/EbmlHead.h"
-#include "ebml/EbmlVoid.h"
-#include "ebml/EbmlCrc32.h"
-#include "ebml/EbmlSubHead.h"
-#include "ebml/EbmlStream.h"
-#include "ebml/EbmlBinary.h"
-#include "ebml/EbmlString.h"
-#include "ebml/EbmlUnicodeString.h"
-#include "ebml/EbmlContexts.h"
-#include "ebml/EbmlVersion.h"
-
-// libmatroska includes
-#include "matroska/KaxConfig.h"
-#include "matroska/KaxBlock.h"
-#include "matroska/KaxSegment.h"
-#include "matroska/KaxContexts.h"
-#include "matroska/KaxSeekHead.h"
-#include "matroska/KaxTracks.h"
-#include "matroska/KaxInfo.h"
-#include "matroska/KaxInfoData.h"
-#include "matroska/KaxTags.h"
-#include "matroska/KaxTag.h"
-#include "matroska/KaxTagMulti.h"
-#include "matroska/KaxCluster.h"
-#include "matroska/KaxClusterData.h"
-#include "matroska/KaxTrackAudio.h"
-#include "matroska/KaxTrackVideo.h"
-#include "matroska/KaxAttachments.h"
-#include "matroska/KaxAttached.h"
-#include "matroska/KaxVersion.h"
-
-namespace MatroskaUtilsNamespace {
-
-struct MatroskaSimpleTagOfficalListEntry {
- TCHAR *name;
- TCHAR *desc;
-};
-
-class MatroskaTagUID : public std::vector<uint64> {
-public:
- MatroskaTagUID();
-
- void Add(uint64 newUID);
- void Remove(uint64 deleteUID);=09
- uint64 &Find(uint64 uid);
- uint64 &operator =3D (uint64 newUID);
- operator uint64();
-=09
-};
-
-class MatroskaTagMultiItemBase {
-public:
- MatroskaTagMultiItemBase();
- /// Checks if the multi-tag is valid
- virtual bool IsValid();=09
- /// Invalidates the tag and marks for deletion
- virtual void Invalidate();=09
- uint16 Type;
-};
-
-class MatroskaTagMultiCommentItem : public MatroskaTagMultiItemBase {
-public:
- MatroskaTagMultiCommentItem();
- std::string Name;
- UTFstring Comments;
- std::string Language;
- ///Pointer to next item
- MatroskaTagMultiCommentItem *next_item;
-};
-
-class MatroskaTagMultiCommercialItem : public MatroskaTagMultiItemBase {
-public:
- MatroskaTagMultiCommercialItem();=09
- UTFstring Address;
- std::string URL;
- std::string Email;
- std::string PriceCurrency;
- double PriceAmount;
- int64 PriceDate;
- ///Pointer to next item
- MatroskaTagMultiCommercialItem *next_item;
-};
-
-class MatroskaTagMultiDateItem : public MatroskaTagMultiItemBase {
-public:
- MatroskaTagMultiDateItem();
-
- time_t DateBegin;
- time_t DateEnd;
- ///Pointer to next item
- MatroskaTagMultiDateItem *next_item;
-};
-
-class MatroskaTagMultiEntityItem : public MatroskaTagMultiItemBase {
-public:
- MatroskaTagMultiEntityItem();
-
- UTFstring Name;
- std::string URL;
- std::string Email;
- UTFstring Address;
- ///Pointer to next item
- MatroskaTagMultiEntityItem *next_item;
-};
-
-class MatroskaTagMultiIdentifierItem : public MatroskaTagMultiItemBase {
-public:
- MatroskaTagMultiIdentifierItem();
-=09
- binary *BinaryData;
- uint32 BinaryData_Length;
- UTFstring StringData;
- ///Pointer to next item
- MatroskaTagMultiIdentifierItem *next_item;
-};
-
-class MatroskaTagMultiLegalItem : public MatroskaTagMultiItemBase {
-public:
- MatroskaTagMultiLegalItem();
-=09
- std::string URL;
- UTFstring Address;
- UTFstring Text;
- ///Pointer to next item
- MatroskaTagMultiLegalItem *next_item;
-};
-
-class MatroskaTagMultiTitleItem : public MatroskaTagMultiItemBase {
-public:
- MatroskaTagMultiTitleItem();
-=09
- UTFstring Name;
- UTFstring SubTitle;
- UTFstring Edition;
- UTFstring Address;
- std::string URL;
- std::string Email;
- std::string Language;
- ///Pointer to next item
- MatroskaTagMultiTitleItem *next_item;
-};
-
-class MatroskaTagMultiComment
-{
-public:
- MatroskaTagMultiComment();
- ~MatroskaTagMultiComment();
- void AddItem(MatroskaTagMultiCommentItem *new_item);
- MatroskaTagMultiCommentItem *FindTrackItemWithLang(char *language_id);
- int GetMultiCommentCount();
- MatroskaTagMultiCommentItem *GetItem(int requested_index);
-protected:
- ///Pointer to the first item in the linked list
- MatroskaTagMultiCommentItem *first_item;
-};
-
-class MatroskaTagMultiCommercial
-{
-public:
- MatroskaTagMultiCommercial();
- ~MatroskaTagMultiCommercial();
- void AddItem(MatroskaTagMultiCommercialItem *new_item);
- MatroskaTagMultiCommercialItem *FindTrackItemWithType(int type_id);
- int GetMultiCommercialCount();
- MatroskaTagMultiCommercialItem *GetItem(int requested_index);
- static char *ConvertTypeUIntToStr(uint16 type_id);
- static uint16 ConvertTypeStrToUInt(char *type_str);
-protected:
- ///Pointer to the first item in the linked list
- MatroskaTagMultiCommercialItem *first_item;
-};
-
-class MatroskaTagMultiDate
-{
-public:
- MatroskaTagMultiDate();
- ~MatroskaTagMultiDate();
- void AddItem(MatroskaTagMultiDateItem *new_item);
- MatroskaTagMultiDateItem *FindTrackItemWithType(int type_id);
- int GetMultiDateCount();
- MatroskaTagMultiDateItem *GetItem(int requested_index);
- static char *ConvertTypeUIntToStr(uint16 type_id);
- static uint16 ConvertTypeStrToUInt(char *type_str);
-protected:
- ///Pointer to the first item in the linked list
- MatroskaTagMultiDateItem *first_item;
-};
-
-class MatroskaTagMultiEntity
-{
-public:
- MatroskaTagMultiEntity();
- ~MatroskaTagMultiEntity();
- void AddItem(MatroskaTagMultiEntityItem *new_item);
- MatroskaTagMultiEntityItem *FindTrackItemWithType(int type_id);
- int GetMultiEntityCount();
- MatroskaTagMultiEntityItem *GetItem(int requested_index);
- static char *ConvertTypeUIntToStr(uint16 type_id);
- static uint16 ConvertTypeStrToUInt(char *type_str);
-protected:
- ///Pointer to the first item in the linked list
- MatroskaTagMultiEntityItem *first_item;
-};
-
-class MatroskaTagMultiIdentifier
-{
-public:
- MatroskaTagMultiIdentifier();
- ~MatroskaTagMultiIdentifier();
- void AddItem(MatroskaTagMultiIdentifierItem *new_item);
- MatroskaTagMultiIdentifierItem *FindTrackItemWithType(int type_id);
- int GetMultiIdentifierCount();
- MatroskaTagMultiIdentifierItem *GetItem(int requested_index);
- static char *ConvertTypeUIntToStr(uint16 type_id);
- static uint16 ConvertTypeStrToUInt(char *type_str);
-
-protected:
- ///Pointer to the first item in the linked list
- MatroskaTagMultiIdentifierItem *first_item;
-};
-
-class MatroskaTagMultiLegal
-{
-public:
- MatroskaTagMultiLegal();
- ~MatroskaTagMultiLegal();
- void AddItem(MatroskaTagMultiLegalItem *new_item);
- MatroskaTagMultiLegalItem *FindTrackItemWithType(int type_id);
- int GetMultiLegalCount();
- MatroskaTagMultiLegalItem *GetItem(int requested_index);
- static char *ConvertTypeUIntToStr(uint16 type_id);
- static uint16 ConvertTypeStrToUInt(char *type_str);
-protected:
- ///Pointer to the first item in the linked list
- MatroskaTagMultiLegalItem *first_item;
-};
-
-class MatroskaTagMultiTitle
-{
-public:
- MatroskaTagMultiTitle();
- ~MatroskaTagMultiTitle();
- void AddItem(MatroskaTagMultiTitleItem *new_item);
- MatroskaTagMultiTitleItem *FindTrackItemWithType(int type_id);
- int GetMultiTitleCount();
- MatroskaTagMultiTitleItem *GetItem(int requested_index);
- static char *ConvertTypeUIntToStr(uint16 type_id);
- static uint16 ConvertTypeStrToUInt(char *type_str);
-protected:
- ///Pointer to the first item in the linked list
- MatroskaTagMultiTitleItem *first_item;
-};
-
-class MatroskaSimpleTag {
-public:
- MatroskaSimpleTag(); =09
-
- static MatroskaSimpleTagOfficalListEntry &GetOfficalList(size_t i);
- static TCHAR *GetOfficalList_Name(size_t i);
- static TCHAR *GetOfficalList_Desc(size_t i);
- UTFstring name;
- UTFstring value;
- bool bDelete;
-};
-
-class MatroskaSimpleTagList : public std::vector<MatroskaSimpleTag *> {
-public:
- MatroskaSimpleTagList();
- ~MatroskaSimpleTagList();
-
- UTFstring &GetSimpleTag(const char *name);
- void SetSimpleTagValue(const char *name, const char *value);
- void SetSimpleTagValue(const wchar_t *name, const wchar_t *value);
- void Remove(size_t index);
- void Remove(MatroskaSimpleTag *deleteTag);
- size_t Lookup(MatroskaSimpleTag *tagLookup);
- void Cleanup();
-};
-
-/*********************** Main Tag Class *************************/
-class MatroskaTagInfo {
- public:
- MatroskaTagInfo();
- ~MatroskaTagInfo();
- //Merge another tag info data, leaving this tag left
- void MergeWithThisTagInfo(MatroskaTagInfo *source_tags);
- =09
- //Functions to easily get all of the tags
- //Returns the tag name of the tag index passed
- static char *GetTagListStr(uint32 tag_index);
- //Converts the tag name back to the tag index number
- static uint32 GetTagListUInt(char* tag_name);
- //Get the tag name and more infomation about a tag index
- static char *MatroskaTagInfo::GetTagListStrInfo(uint32 tag_index);
-
-
- //Base Tags
- MatroskaTagUID Tag_TrackUID;
- /// The UID of the chapter this Tag applies to
- MatroskaTagUID Tag_ChapterUID;
- MatroskaTagUID Tag_AttachmentUID;
-
- UTFstring Tag_ArchivalLocation;
- std::vector<binary> Tag_AudioEncryption;
- double Tag_AudioGain;
- std::string Tag_AudioGenre;
- double Tag_AudioPeak;
- std::string Tag_AudioSecondaryGenre;
- UTFstring Tag_Bibliography;
- double Tag_BPM;
- uint32 Tag_CaptureDPI;
- uint32 Tag_CapturePaletteSetting;
- UTFstring Tag_Cropped;
- uint32 Tag_DiscTrack;
- UTFstring Tag_Encoder;
- UTFstring Tag_EncodeSettings;
- UTFstring Tag_File;
- std::string Tag_InitialKey;
- UTFstring Tag_Keywords;
- std::string Tag_Language;
- uint32 Tag_Length;
- UTFstring Tag_Mood;
- std::string Tag_OfficialAudioFileURL;
- std::string Tag_OfficialAudioSourceURL;
- std::string Tag_OriginalDimensions;
- UTFstring Tag_OriginalMediaType;
- uint32 Tag_PlayCounter;
- uint32 Tag_PlaylistDelay;
- int32 Tag_Popularimeter;
- UTFstring Tag_Product;
- std::vector<binary> Tag_Rating;
- std::string Tag_RecordLocation;
- uint32 Tag_SetPart;
- UTFstring Tag_Source;
- UTFstring Tag_SourceForm;
- std::string Tag_SubGenre;
- UTFstring Tag_Subject;
- std::string Tag_SynchronisedTempo;
- UTFstring Tag_SynchronisedText;
- UTFstring Tag_UnsynchronisedText;
- std::string Tag_UserDefinedURL;
- std::vector<binary> Tag_VideoGenre;
- std::vector<binary> Tag_VideoSecondaryGenre;
- =09
- //The amazing Multi-* tags
- //Smart Multi-Comment Item Add
- void AddMultiCommentItem(MatroskaTagMultiCommentItem *new_item);
- MatroskaTagMultiComment *Tag_MultiComments;
- //Smart Multi-Commercia Item Add
- void AddMultiCommercialItem(MatroskaTagMultiCommercialItem *new_item);
- MatroskaTagMultiCommercial *Tag_MultiCommercials;
- //Smart Multi-Date Item Add
- void AddMultiDateItem(MatroskaTagMultiDateItem *new_item);
- MatroskaTagMultiDate *Tag_MultiDates;
- //Smart Multi-Entity Item Add
- void AddMultiEntityItem(MatroskaTagMultiEntityItem *new_item);
- MatroskaTagMultiEntity *Tag_MultiEntities;
- //Smart Multi-Identifier Item Add
- void AddMultiIdentifierItem(MatroskaTagMultiIdentifierItem *new_item);
- MatroskaTagMultiIdentifier *Tag_MultiIdentifiers;
- //Smart Multi-Legal Item Add
- void AddMultiLegalItem(MatroskaTagMultiLegalItem *new_item);
- MatroskaTagMultiLegal *Tag_MultiLegals;
- //Smart Multi-Title Item Add
- void AddMultiTitleItem(MatroskaTagMultiTitleItem *new_item);
- MatroskaTagMultiTitle *Tag_MultiTitles;
- =09
- //This really shouldn't be here
- //UTFstring Tag_MuxingApp; //Now it isn't :P
- //This really shoudn't be here
- //UTFstring Tag_WritingApp; //Now it isn't :P
-
- //Pointers to the correct Multi-* Tag element text
- //Pointer to the Multi-Title field for the ID3 Title Field
- UTFstring *Tag_Simple_Title;
- //Pointer to the Multi-Entity field for ID3 Artist Field
- UTFstring *Tag_Simple_Artist;
- //Pointer to the Multi-Title field for ID3 Album Field
- UTFstring *Tag_Simple_Album;
-
- MatroskaSimpleTagList Tag_Simple_Tags;
-};
-
-class MatroskaTagList : public std::vector<MatroskaTagInfo *> {
-public:
- MatroskaTagList();
- ~MatroskaTagList();
-
- UTFstring &FindSimpleTag(const char *name);
- /// Find a tag entry with the assigned track uid
- /// \param bOnly If true the returned tag will only be assigned to the =
track uid, no other uids
- /// \return NULL If not found
- MatroskaTagInfo *FindByTrackUID(uint64 uid, bool bOnly =3D false);
-
- void Remove(MatroskaTagInfo *tag);
-};
-
-#ifdef USE_NEW_MKV_TAG_SYSTEM
-
-enum MTag_TagTypes
-{
- MTag_None =3D 0,
- MTag_General =3D 100,
- MTag_General_MultiComment,
- MTag_General_MultiCommercial,
- MTag_General_MultiDate,
- MTag_General_MultiEntity,
- MTag_General_MultiIdentifier,
- MTag_General_MultiLegal,
- MTag_General_MultiTitle,
- MTag_General_Subject,//UTF-8
- MTag_General_Bibliography,//UTF-8
- MTag_General_Language,//string
- MTag_General_Rating,//binary
- MTag_General_Encoder,//UTF-8
- MTag_General_EncodeSettings,//UTF-8
- MTag_General_File,//UTF-8
- MTag_General_ArchivalLocation,//UTF-8
- MTag_General_RecordLocation,//string
- MTag_General_Keywords,//UTF-8
- MTag_General_Mood,//UTF-8
- MTag_General_Source, //UTF-8
- MTag_General_SourceForm, //UTF-8
- MTag_General_Product, //UTF-8
- MTag_General_OriginalMediaType, //UTF-8
- MTag_General_PlayCounter, //u-integer
- MTag_General_Popularimeter, //integer
- MTag_Genres =3D 2000,
- MTag_Genres_AudioGenre, //string The genre of the audio. (same as the =
TCON tag in ID3).
- MTag_Genres_VideoGenre, //binary Genre of the video using a 4 byte ID.=
More info about the content on the older page.
- MTag_Genres_SubGenre, //string
- MTag_AudioSpecific =3D 3000,
- MTag_AudioSpecific_AudioEncryption, //binary This is an exact dump o=
f the AENC tag in ID3v2.4. It should never be used otherwise.
- MTag_AudioSpecific_AudioGain, //float The gain to apply to reach 89db=
SPL on playback.
- MTag_AudioSpecific_AudioPeak, //float The maximum absolute peak value =
of the item.
- MTag_AudioSpecific_BPM, //float Contains the number of beats per minu=
te in the main part of the audio. This is general. (same as the TBPM tag =
in ID3).
- MTag_AudioSpecific_Equalisation, //binary This is an exact dump of th=
e EQU2 tag in ID3v2.4. It should never be used otherwise.
- MTag_AudioSpecific_DiscTrack, //u-integer Track number in the origina=
l CD. (same as the TRCK tag in ID3).
- MTag_AudioSpecific_SetPart, //u-integer The total number of tracks on=
a disc. (same as the TPOS tag in ID3).
- MTag_AudioSpecific_InitialKey,//string The initial key that a musical =
track starts in. (same as the TKEY tag in ID3).
- MTag_AudioSpecific_OfficialFileURL, //string A URL pointing to the of=
ficial webpage for this item. (same as the WOAF tag in ID3).
- MTag_AudioSpecific_OfficialSourceURL, //string
- MTag_ImageSpecific =3D 4000,
- MTag_ImageSpecific_CaptureDPI, //u-integer Stores dots per inch setti=
ng of the digitizer used to produce the file, such as "300." (same as the=
IDPI tag in RIFF).
- MTag_ImageSpecific_CaptureLightness, //Binary Describes the changes in=
lightness settings on the digitizer required to produce the file. Note t=
hat the format of this information depends on hardware used. (same as the=
ILGT tag in RIFF).
- MTag_ImageSpecific_CapturePaletteSetting, //u-integer Specifies the nu=
mber of colors requested when digitizing an image, such as "256." (same a=
s the IPLT tag in RIFF).
- MTag_ImageSpecific_CaptureSharpness, //Binary Identifies the changes i=
n sharpness for the digitizer required to produce the file (the format de=
pends on the hardware used). (same as the ISHP tag in RIFF).
- MTag_ImageSpecific_Cropped, //string Describes whether an image has be=
en cropped and, if so, how it was cropped. For example, "lower right corn=
er." (same as the ICRP tag in RIFF).
- MTag_ImageSpecific_OriginalDimensions, //string
-};
-
-/// This is the base class for tags
-class MTagBase
-{
-public:
- enum MTag_TagTypes type;
-};
-
-class MatroskaTagItem
-{
-public:
- MatroskaTagItem();
- ~MatroskaTagItem();
-
- /// Used Internally
- MTag_TagTypes tag_type;
-
- UTFstring *UTF_data;
- std::string *string_data;
- uint64 *uinteger_data;
- int64 *integer_data;
- double *float_data;
- binary *binary_data;
- uint64 binary_data_len;
-
- //The amazing Multi-* tags
- MatroskaTagMultiComment *MultiComment_data;
- MatroskaTagMultiCommercial *MultiCommercial_data;
- MatroskaTagMultiDate *MultiDate_data;
- MatroskaTagMultiEntity *MultiEntity_data;
- MatroskaTagMultiIdentifier *MultiIdentifier_data;
- MatroskaTagMultiLegal *MultiLegal_data;
- MatroskaTagMultiTitle *MultiTitle_data;
-};
-
-class MatroskaTagList
-{
-public:
- MatroskaTagList();
- ~MatroskaTagList();
- void AddItem(MatroskaTagItem *new_item);
- int DeleteItem(MatroskaTagItem *new_item);
- int DeleteItem(int requested_index);
- MatroskaTagItem *GetItem(int requested_index);
- int GetCount();
- MatroskaTagItem *FindTrackItemWithType(int type_id);
-protected:
- ///Pointer to the first item in the linked list
- MatroskaTagItem *first_item;
- MatroskaTagItem *last_item;
-};
-
-#endif // USE_NEW_MKV_TAG_SYSTEM
-
-}; //End namespace MatroskaUtilsNamespace
-
-#endif // _MATROSKA_TAG_DATA_H_
+/*
+ * Part of The TCMP Matroska CDL, a plugin to access extra features of =
Matroska files with TCMP
+ *
+ * MatroskaTagData.h
+ *
+ * Copyright (C) Jory Stone - June 2003
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file MatroskaTagData.h
+ \version \$Id: MatroskaTagData.h,v 1.18 2004/03/08 07:56:51 jcsston Ex=
p $
+ \brief This file deals mostly with the tag stuctures ;)
+ \author Jory Stone <jcsston @ toughguy.net>
+ =09
+ Inspired by ;) John Cannon ([email protected]) (c) 2003
+*/
+
+#ifndef _MATROSKA_TAG_DATA_H_
+#define _MATROSKA_TAG_DATA_H_
+
+#ifdef WIN32
+#include <windows.h>
+#endif //WIN32
+#include <time.h>
+
+#include "MatroskaUtilsDebug.h"
+
+// libebml includes
+#include "ebml/StdIOCallback.h"
+#include "ebml/EbmlTypes.h"
+#include "ebml/EbmlHead.h"
+#include "ebml/EbmlVoid.h"
+#include "ebml/EbmlCrc32.h"
+#include "ebml/EbmlSubHead.h"
+#include "ebml/EbmlStream.h"
+#include "ebml/EbmlBinary.h"
+#include "ebml/EbmlString.h"
+#include "ebml/EbmlUnicodeString.h"
+#include "ebml/EbmlContexts.h"
+#include "ebml/EbmlVersion.h"
+
+// libmatroska includes
+#include "matroska/KaxConfig.h"
+#include "matroska/KaxBlock.h"
+#include "matroska/KaxSegment.h"
+#include "matroska/KaxContexts.h"
+#include "matroska/KaxSeekHead.h"
+#include "matroska/KaxTracks.h"
+#include "matroska/KaxInfo.h"
+#include "matroska/KaxInfoData.h"
+#include "matroska/KaxTags.h"
+#include "matroska/KaxTag.h"
+#include "matroska/KaxTagMulti.h"
+#include "matroska/KaxCluster.h"
+#include "matroska/KaxClusterData.h"
+#include "matroska/KaxTrackAudio.h"
+#include "matroska/KaxTrackVideo.h"
+#include "matroska/KaxAttachments.h"
+#include "matroska/KaxAttached.h"
+#include "matroska/KaxVersion.h"
+
+namespace MatroskaUtilsNamespace {
+
+struct MatroskaSimpleTagOfficalListEntry {
+ TCHAR *name;
+ TCHAR *desc;
+};
+
+class MatroskaTagUID : public std::vector<uint64> {
+public:
+ MatroskaTagUID();
+
+ void Add(uint64 newUID);
+ void Remove(uint64 deleteUID);=09
+ uint64 &Find(uint64 uid);
+ uint64 &operator =3D (uint64 newUID);
+ operator uint64();
+=09
+};
+
+class MatroskaTagMultiItemBase {
+public:
+ MatroskaTagMultiItemBase();
+ /// Checks if the multi-tag is valid
+ virtual bool IsValid();=09
+ /// Invalidates the tag and marks for deletion
+ virtual void Invalidate();=09
+ uint16 Type;
+};
+
+class MatroskaTagMultiCommentItem : public MatroskaTagMultiItemBase {
+public:
+ MatroskaTagMultiCommentItem();
+ std::string Name;
+ UTFstring Comments;
+ std::string Language;
+ ///Pointer to next item
+ MatroskaTagMultiCommentItem *next_item;
+};
+
+class MatroskaTagMultiCommercialItem : public MatroskaTagMultiItemBase {
+public:
+ MatroskaTagMultiCommercialItem();=09
+ UTFstring Address;
+ std::string URL;
+ std::string Email;
+ std::string PriceCurrency;
+ double PriceAmount;
+ int64 PriceDate;
+ ///Pointer to next item
+ MatroskaTagMultiCommercialItem *next_item;
+};
+
+class MatroskaTagMultiDateItem : public MatroskaTagMultiItemBase {
+public:
+ MatroskaTagMultiDateItem();
+
+ time_t DateBegin;
+ time_t DateEnd;
+ ///Pointer to next item
+ MatroskaTagMultiDateItem *next_item;
+};
+
+class MatroskaTagMultiEntityItem : public MatroskaTagMultiItemBase {
+public:
+ MatroskaTagMultiEntityItem();
+
+ UTFstring Name;
+ std::string URL;
+ std::string Email;
+ UTFstring Address;
+ ///Pointer to next item
+ MatroskaTagMultiEntityItem *next_item;
+};
+
+class MatroskaTagMultiIdentifierItem : public MatroskaTagMultiItemBase {
+public:
+ MatroskaTagMultiIdentifierItem();
+=09
+ binary *BinaryData;
+ uint32 BinaryData_Length;
+ UTFstring StringData;
+ ///Pointer to next item
+ MatroskaTagMultiIdentifierItem *next_item;
+};
+
+class MatroskaTagMultiLegalItem : public MatroskaTagMultiItemBase {
+public:
+ MatroskaTagMultiLegalItem();
+=09
+ std::string URL;
+ UTFstring Address;
+ UTFstring Text;
+ ///Pointer to next item
+ MatroskaTagMultiLegalItem *next_item;
+};
+
+class MatroskaTagMultiTitleItem : public MatroskaTagMultiItemBase {
+public:
+ MatroskaTagMultiTitleItem();
+=09
+ UTFstring Name;
+ UTFstring SubTitle;
+ UTFstring Edition;
+ UTFstring Address;
+ std::string URL;
+ std::string Email;
+ std::string Language;
+ ///Pointer to next item
+ MatroskaTagMultiTitleItem *next_item;
+};
+
+class MatroskaTagMultiComment
+{
+public:
+ MatroskaTagMultiComment();
+ ~MatroskaTagMultiComment();
+ void AddItem(MatroskaTagMultiCommentItem *new_item);
+ MatroskaTagMultiCommentItem *FindTrackItemWithLang(char *language_id);
+ int GetMultiCommentCount();
+ MatroskaTagMultiCommentItem *GetItem(int requested_index);
+protected:
+ ///Pointer to the first item in the linked list
+ MatroskaTagMultiCommentItem *first_item;
+};
+
+class MatroskaTagMultiCommercial
+{
+public:
+ MatroskaTagMultiCommercial();
+ ~MatroskaTagMultiCommercial();
+ void AddItem(MatroskaTagMultiCommercialItem *new_item);
+ MatroskaTagMultiCommercialItem *FindTrackItemWithType(int type_id);
+ int GetMultiCommercialCount();
+ MatroskaTagMultiCommercialItem *GetItem(int requested_index);
+ static char *ConvertTypeUIntToStr(uint16 type_id);
+ static uint16 ConvertTypeStrToUInt(char *type_str);
+protected:
+ ///Pointer to the first item in the linked list
+ MatroskaTagMultiCommercialItem *first_item;
+};
+
+class MatroskaTagMultiDate
+{
+public:
+ MatroskaTagMultiDate();
+ ~MatroskaTagMultiDate();
+ void AddItem(MatroskaTagMultiDateItem *new_item);
+ MatroskaTagMultiDateItem *FindTrackItemWithType(int type_id);
+ int GetMultiDateCount();
+ MatroskaTagMultiDateItem *GetItem(int requested_index);
+ static char *ConvertTypeUIntToStr(uint16 type_id);
+ static uint16 ConvertTypeStrToUInt(char *type_str);
+protected:
+ ///Pointer to the first item in the linked list
+ MatroskaTagMultiDateItem *first_item;
+};
+
+class MatroskaTagMultiEntity
+{
+public:
+ MatroskaTagMultiEntity();
+ ~MatroskaTagMultiEntity();
+ void AddItem(MatroskaTagMultiEntityItem *new_item);
+ MatroskaTagMultiEntityItem *FindTrackItemWithType(int type_id);
+ int GetMultiEntityCount();
+ MatroskaTagMultiEntityItem *GetItem(int requested_index);
+ static char *ConvertTypeUIntToStr(uint16 type_id);
+ static uint16 ConvertTypeStrToUInt(char *type_str);
+protected:
+ ///Pointer to the first item in the linked list
+ MatroskaTagMultiEntityItem *first_item;
+};
+
+class MatroskaTagMultiIdentifier
+{
+public:
+ MatroskaTagMultiIdentifier();
+ ~MatroskaTagMultiIdentifier();
+ void AddItem(MatroskaTagMultiIdentifierItem *new_item);
+ MatroskaTagMultiIdentifierItem *FindTrackItemWithType(int type_id);
+ int GetMultiIdentifierCount();
+ MatroskaTagMultiIdentifierItem *GetItem(int requested_index);
+ static char *ConvertTypeUIntToStr(uint16 type_id);
+ static uint16 ConvertTypeStrToUInt(char *type_str);
+
+protected:
+ ///Pointer to the first item in the linked list
+ MatroskaTagMultiIdentifierItem *first_item;
+};
+
+class MatroskaTagMultiLegal
+{
+public:
+ MatroskaTagMultiLegal();
+ ~MatroskaTagMultiLegal();
+ void AddItem(MatroskaTagMultiLegalItem *new_item);
+ MatroskaTagMultiLegalItem *FindTrackItemWithType(int type_id);
+ int GetMultiLegalCount();
+ MatroskaTagMultiLegalItem *GetItem(int requested_index);
+ static char *ConvertTypeUIntToStr(uint16 type_id);
+ static uint16 ConvertTypeStrToUInt(char *type_str);
+protected:
+ ///Pointer to the first item in the linked list
+ MatroskaTagMultiLegalItem *first_item;
+};
+
+class MatroskaTagMultiTitle
+{
+public:
+ MatroskaTagMultiTitle();
+ ~MatroskaTagMultiTitle();
+ void AddItem(MatroskaTagMultiTitleItem *new_item);
+ MatroskaTagMultiTitleItem *FindTrackItemWithType(int type_id);
+ int GetMultiTitleCount();
+ MatroskaTagMultiTitleItem *GetItem(int requested_index);
+ static char *ConvertTypeUIntToStr(uint16 type_id);
+ static uint16 ConvertTypeStrToUInt(char *type_str);
+protected:
+ ///Pointer to the first item in the linked list
+ MatroskaTagMultiTitleItem *first_item;
+};
+
+class MatroskaSimpleTag {
+public:
+ MatroskaSimpleTag(); =09
+
+ static MatroskaSimpleTagOfficalListEntry &GetOfficalList(size_t i);
+ static TCHAR *GetOfficalList_Name(size_t i);
+ static TCHAR *GetOfficalList_Desc(size_t i);
+ UTFstring name;
+ UTFstring value;
+ bool bDelete;
+};
+
+class MatroskaSimpleTagList : public std::vector<MatroskaSimpleTag *> {
+public:
+ MatroskaSimpleTagList();
+ ~MatroskaSimpleTagList();
+
+ UTFstring &GetSimpleTag(const char *name);
+ void SetSimpleTagValue(const char *name, const char *value);
+ void SetSimpleTagValue(const wchar_t *name, const wchar_t *value);
+ void Remove(size_t index);
+ void Remove(MatroskaSimpleTag *deleteTag);
+ size_t Lookup(MatroskaSimpleTag *tagLookup);
+ void Cleanup();
+};
+
+/*********************** Main Tag Class *************************/
+class MatroskaTagInfo {
+ public:
+ MatroskaTagInfo();
+ ~MatroskaTagInfo();
+ //Merge another tag info data, leaving this tag left
+ void MergeWithThisTagInfo(MatroskaTagInfo *source_tags);
+ =09
+ //Functions to easily get all of the tags
+ //Returns the tag name of the tag index passed
+ static char *GetTagListStr(uint32 tag_index);
+ //Converts the tag name back to the tag index number
+ static uint32 GetTagListUInt(char* tag_name);
+ //Get the tag name and more infomation about a tag index
+ static char *MatroskaTagInfo::GetTagListStrInfo(uint32 tag_index);
+
+
+ //Base Tags
+ MatroskaTagUID Tag_TrackUID;
+ /// The UID of the chapter this Tag applies to
+ MatroskaTagUID Tag_ChapterUID;
+ MatroskaTagUID Tag_AttachmentUID;
+
+ UTFstring Tag_ArchivalLocation;
+ std::vector<binary> Tag_AudioEncryption;
+ double Tag_AudioGain;
+ std::string Tag_AudioGenre;
+ double Tag_AudioPeak;
+ std::string Tag_AudioSecondaryGenre;
+ UTFstring Tag_Bibliography;
+ double Tag_BPM;
+ uint32 Tag_CaptureDPI;
+ uint32 Tag_CapturePaletteSetting;
+ UTFstring Tag_Cropped;
+ uint32 Tag_DiscTrack;
+ UTFstring Tag_Encoder;
+ UTFstring Tag_EncodeSettings;
+ UTFstring Tag_File;
+ std::string Tag_InitialKey;
+ UTFstring Tag_Keywords;
+ std::string Tag_Language;
+ uint32 Tag_Length;
+ UTFstring Tag_Mood;
+ std::string Tag_OfficialAudioFileURL;
+ std::string Tag_OfficialAudioSourceURL;
+ std::string Tag_OriginalDimensions;
+ UTFstring Tag_OriginalMediaType;
+ uint32 Tag_PlayCounter;
+ uint32 Tag_PlaylistDelay;
+ int32 Tag_Popularimeter;
+ UTFstring Tag_Product;
+ std::vector<binary> Tag_Rating;
+ std::string Tag_RecordLocation;
+ uint32 Tag_SetPart;
+ UTFstring Tag_Source;
+ UTFstring Tag_SourceForm;
+ std::string Tag_SubGenre;
+ UTFstring Tag_Subject;
+ std::string Tag_SynchronisedTempo;
+ UTFstring Tag_SynchronisedText;
+ UTFstring Tag_UnsynchronisedText;
+ std::string Tag_UserDefinedURL;
+ std::vector<binary> Tag_VideoGenre;
+ std::vector<binary> Tag_VideoSecondaryGenre;
+ =09
+ //The amazing Multi-* tags
+ //Smart Multi-Comment Item Add
+ void AddMultiCommentItem(MatroskaTagMultiCommentItem *new_item);
+ MatroskaTagMultiComment *Tag_MultiComments;
+ //Smart Multi-Commercia Item Add
+ void AddMultiCommercialItem(MatroskaTagMultiCommercialItem *new_item);
+ MatroskaTagMultiCommercial *Tag_MultiCommercials;
+ //Smart Multi-Date Item Add
+ void AddMultiDateItem(MatroskaTagMultiDateItem *new_item);
+ MatroskaTagMultiDate *Tag_MultiDates;
+ //Smart Multi-Entity Item Add
+ void AddMultiEntityItem(MatroskaTagMultiEntityItem *new_item);
+ MatroskaTagMultiEntity *Tag_MultiEntities;
+ //Smart Multi-Identifier Item Add
+ void AddMultiIdentifierItem(MatroskaTagMultiIdentifierItem *new_item);
+ MatroskaTagMultiIdentifier *Tag_MultiIdentifiers;
+ //Smart Multi-Legal Item Add
+ void AddMultiLegalItem(MatroskaTagMultiLegalItem *new_item);
+ MatroskaTagMultiLegal *Tag_MultiLegals;
+ //Smart Multi-Title Item Add
+ void AddMultiTitleItem(MatroskaTagMultiTitleItem *new_item);
+ MatroskaTagMultiTitle *Tag_MultiTitles;
+ =09
+ //This really shouldn't be here
+ //UTFstring Tag_MuxingApp; //Now it isn't :P
+ //This really shoudn't be here
+ //UTFstring Tag_WritingApp; //Now it isn't :P
+
+ //Pointers to the correct Multi-* Tag element text
+ //Pointer to the Multi-Title field for the ID3 Title Field
+ UTFstring *Tag_Simple_Title;
+ //Pointer to the Multi-Entity field for ID3 Artist Field
+ UTFstring *Tag_Simple_Artist;
+ //Pointer to the Multi-Title field for ID3 Album Field
+ UTFstring *Tag_Simple_Album;
+
+ MatroskaSimpleTagList Tag_Simple_Tags;
+};
+
+class MatroskaTagList : public std::vector<MatroskaTagInfo *> {
+public:
+ MatroskaTagList();
+ ~MatroskaTagList();
+
+ UTFstring &FindSimpleTag(const char *name);
+ /// Find a tag entry with the assigned track uid
+ /// \param bOnly If true the returned tag will only be assigned to the =
track uid, no other uids
+ /// \return NULL If not found
+ MatroskaTagInfo *FindByTrackUID(uint64 uid, bool bOnly =3D false);
+
+ void Remove(MatroskaTagInfo *tag);
+};
+
+#ifdef USE_NEW_MKV_TAG_SYSTEM
+
+enum MTag_TagTypes
+{
+ MTag_None =3D 0,
+ MTag_General =3D 100,
+ MTag_General_MultiComment,
+ MTag_General_MultiCommercial,
+ MTag_General_MultiDate,
+ MTag_General_MultiEntity,
+ MTag_General_MultiIdentifier,
+ MTag_General_MultiLegal,
+ MTag_General_MultiTitle,
+ MTag_General_Subject,//UTF-8
+ MTag_General_Bibliography,//UTF-8
+ MTag_General_Language,//string
+ MTag_General_Rating,//binary
+ MTag_General_Encoder,//UTF-8
+ MTag_General_EncodeSettings,//UTF-8
+ MTag_General_File,//UTF-8
+ MTag_General_ArchivalLocation,//UTF-8
+ MTag_General_RecordLocation,//string
+ MTag_General_Keywords,//UTF-8
+ MTag_General_Mood,//UTF-8
+ MTag_General_Source, //UTF-8
+ MTag_General_SourceForm, //UTF-8
+ MTag_General_Product, //UTF-8
+ MTag_General_OriginalMediaType, //UTF-8
+ MTag_General_PlayCounter, //u-integer
+ MTag_General_Popularimeter, //integer
+ MTag_Genres =3D 2000,
+ MTag_Genres_AudioGenre, //string The genre of the audio. (same as the =
TCON tag in ID3).
+ MTag_Genres_VideoGenre, //binary Genre of the video using a 4 byte ID.=
More info about the content on the older page.
+ MTag_Genres_SubGenre, //string
+ MTag_AudioSpecific =3D 3000,
+ MTag_AudioSpecific_AudioEncryption, //binary This is an exact dump o=
f the AENC tag in ID3v2.4. It should never be used otherwise.
+ MTag_AudioSpecific_AudioGain, //float The gain to apply to reach 89db=
SPL on playback.
+ MTag_AudioSpecific_AudioPeak, //float The maximum absolute peak value =
of the item.
+ MTag_AudioSpecific_BPM, //float Contains the number of beats per minu=
te in the main part of the audio. This is general. (same as the TBPM tag =
in ID3).
+ MTag_AudioSpecific_Equalisation, //binary This is an exact dump of th=
e EQU2 tag in ID3v2.4. It should never be used otherwise.
+ MTag_AudioSpecific_DiscTrack, //u-integer Track number in the origina=
l CD. (same as the TRCK tag in ID3).
+ MTag_AudioSpecific_SetPart, //u-integer The total number of tracks on=
a disc. (same as the TPOS tag in ID3).
+ MTag_AudioSpecific_InitialKey,//string The initial key that a musical =
track starts in. (same as the TKEY tag in ID3).
+ MTag_AudioSpecific_OfficialFileURL, //string A URL pointing to the of=
ficial webpage for this item. (same as the WOAF tag in ID3).
+ MTag_AudioSpecific_OfficialSourceURL, //string
+ MTag_ImageSpecific =3D 4000,
+ MTag_ImageSpecific_CaptureDPI, //u-integer Stores dots per inch setti=
ng of the digitizer used to produce the file, such as "300." (same as the=
IDPI tag in RIFF).
+ MTag_ImageSpecific_CaptureLightness, //Binary Describes the changes in=
lightness settings on the digitizer required to produce the file. Note t=
hat the format of this information depends on hardware used. (same as the=
ILGT tag in RIFF).
+ MTag_ImageSpecific_CapturePaletteSetting, //u-integer Specifies the nu=
mber of colors requested when digitizing an image, such as "256." (same a=
s the IPLT tag in RIFF).
+ MTag_ImageSpecific_CaptureSharpness, //Binary Identifies the changes i=
n sharpness for the digitizer required to produce the file (the format de=
pends on the hardware used). (same as the ISHP tag in RIFF).
+ MTag_ImageSpecific_Cropped, //string Describes whether an image has be=
en cropped and, if so, how it was cropped. For example, "lower right corn=
er." (same as the ICRP tag in RIFF).
+ MTag_ImageSpecific_OriginalDimensions, //string
+};
+
+/// This is the base class for tags
+class MTagBase
+{
+public:
+ enum MTag_TagTypes type;
+};
+
+class MatroskaTagItem
+{
+public:
+ MatroskaTagItem();
+ ~MatroskaTagItem();
+
+ /// Used Internally
+ MTag_TagTypes tag_type;
+
+ UTFstring *UTF_data;
+ std::string *string_data;
+ uint64 *uinteger_data;
+ int64 *integer_data;
+ double *float_data;
+ binary *binary_data;
+ uint64 binary_data_len;
+
+ //The amazing Multi-* tags
+ MatroskaTagMultiComment *MultiComment_data;
+ MatroskaTagMultiCommercial *MultiCommercial_data;
+ MatroskaTagMultiDate *MultiDate_data;
+ MatroskaTagMultiEntity *MultiEntity_data;
+ MatroskaTagMultiIdentifier *MultiIdentifier_data;
+ MatroskaTagMultiLegal *MultiLegal_data;
+ MatroskaTagMultiTitle *MultiTitle_data;
+};
+
+class MatroskaTagList
+{
+public:
+ MatroskaTagList();
+ ~MatroskaTagList();
+ void AddItem(MatroskaTagItem *new_item);
+ int DeleteItem(MatroskaTagItem *new_item);
+ int DeleteItem(int requested_index);
+ MatroskaTagItem *GetItem(int requested_index);
+ int GetCount();
+ MatroskaTagItem *FindTrackItemWithType(int type_id);
+protected:
+ ///Pointer to the first item in the linked list
+ MatroskaTagItem *first_item;
+ MatroskaTagItem *last_item;
+};
+
+#endif // USE_NEW_MKV_TAG_SYSTEM
+
+}; //End namespace MatroskaUtilsNamespace
+
+#endif // _MATROSKA_TAG_DATA_H_
Property changes on: trunk/MatroskaUtils/MatroskaTagData.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/MatroskaTrackData.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/MatroskaTrackData.h 2007-02-17 10:34:40 UTC (rev =
1276)
+++ trunk/MatroskaUtils/MatroskaTrackData.h 2007-02-17 10:55:54 UTC (rev =
1277)
@@ -1,355 +1,355 @@
-/*
- * Part of The TCMP Matroska CDL, a plugin to access extra features of =
Matroska files with TCMP
- *
- * MatroskaTrackData.h
- *
- * Copyright (C) Jory Stone - June 2003
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file MatroskaTrackData.h
- \version \$Id: MatroskaTrackData.h,v 1.19 2004/02/18 06:52:18 jcsston =
Exp $
- \brief Some general code to make working with Matroska easier
- \author Jory Stone <jcsston @ toughguy.net>
- =09
- Inspired by ;) John Cannon ([email protected]) (c) 2003
-*/
-
-#ifndef _MATROSKA_TRACK_DATA_H_
-#define _MATROSKA_TRACK_DATA_H_
-
-#ifdef WIN32
-#include <windows.h>
-#endif //WIN32
-#include <vector>
-
-#ifdef USING_CXIMAGE
-#include "CxImage/ximage.h"
-#endif // USING_CXIMAGE
-
-#include "MatroskaUtilsDebug.h"
-#include "MatroskaUtilsReader.h"
-
-// libebml includes
-#include "ebml/StdIOCallback.h"
-#include "ebml/EbmlTypes.h"
-#include "ebml/EbmlHead.h"
-#include "ebml/EbmlVoid.h"
-#include "ebml/EbmlCrc32.h"
-#include "ebml/EbmlSubHead.h"
-#include "ebml/EbmlStream.h"
-#include "ebml/EbmlBinary.h"
-#include "ebml/EbmlString.h"
-#include "ebml/EbmlUnicodeString.h"
-#include "ebml/EbmlContexts.h"
-#include "ebml/EbmlVersion.h"
-
-// libmatroska includes
-#include "matroska/KaxConfig.h"
-#include "matroska/KaxBlock.h"
-#include "matroska/KaxSegment.h"
-#include "matroska/KaxContexts.h"
-#include "matroska/KaxSeekHead.h"
-#include "matroska/KaxTracks.h"
-#include "matroska/KaxInfo.h"
-#include "matroska/KaxInfoData.h"
-#include "matroska/KaxTags.h"
-#include "matroska/KaxTag.h"
-#include "matroska/KaxTagMulti.h"
-#include "matroska/KaxCluster.h"
-#include "matroska/KaxClusterData.h"
-#include "matroska/KaxTrackAudio.h"
-#include "matroska/KaxTrackVideo.h"
-#include "matroska/KaxAttachments.h"
-#include "matroska/KaxAttached.h"
-#include "matroska/KaxVersion.h"
-
-#define TIMECODE_SCALE 1000000
-
-#include "MatroskaTagData.h"
-
-namespace MatroskaUtilsNamespace {
-
-extern char *iso639_2B_codes[];
-
-class MatroskaSegmentInfo {
-public:
- MatroskaSegmentInfo();
- virtual ~MatroskaSegmentInfo();
-
- virtual void SetDuration(float the_duration);
- virtual float GetDuration();
- /// Return a Nicely formated Duration
- virtual const char *GetNiceDuration();
- virtual UTFstring GetNiceDurationW();
- virtual void SetTimecodeScale(uint64 timecodeScale);
- virtual uint64 GetTimecodeScale();
-
- float m_infoDuration;
- std::string m_infoNiceDuration;
- uint64 m_infoTimecodeScale;
- std::string m_infoDate;
- UTFstring m_infoFilename;
- UTFstring m_infoWritingApp;
- UTFstring m_infoMuxingApp;
- UTFstring m_infoTitle;
-};
-
-typedef struct {
- binary wFormatTag[2];
- uint16 nChannels;
- uint32 nSamplesPerSec;
- uint32 nAvgBytesPerSec;
- uint16 nBlockAlign;
- uint16 wBitsPerSample;
- uint16 cbSize;
-} acm_WAVEFORMATEX;
-
-class MatroskaAudioTrackInfo {
- public:
- MatroskaAudioTrackInfo();
- ~MatroskaAudioTrackInfo();
- static const char *GetWaveFormatName(uint16 formatTag);
- //Audio Track Info
- float audio_SampleRate;
- float audio_OutputSampleRate;
- uint8 audio_Channels;
- uint8 audio_BitDepth;
-};
-
-typedef struct {
- uint32 bi_size;
- uint32 bi_width;
- uint32 bi_height;
- uint16 bi_planes;
- uint16 bi_bit_count;
- uint32 bi_compression;
- uint32 bi_size_image;
- uint32 bi_x_pels_per_meter;
- uint32 bi_y_pels_per_meter;
- uint32 bi_clr_used;
- uint32 bi_clr_important;
-} vfw_BITMAPINFOHEADER;
-
-class MatroskaVideoTrackInfo {
- public:
- MatroskaVideoTrackInfo();
- ~MatroskaVideoTrackInfo();
- static const char *GetFourCCName(const char *fourcc);
- //Video Track Info
- uint16 video_Width;
- uint16 video_Height;
- uint16 video_DisplayWidth;
- uint16 video_DisplayHeight;
- float video_FrameRate;
- uint32 video_ColorDepth;
- uint8 video_Interlaced; =09
-};
-
-class MatroskaTrackInfo {
- public:
- /// Initializes the class
- MatroskaTrackInfo(MatroskaSegmentInfo *segment);
- /// Initializes the class with a UID
- /// \param trackUID The UID to use for the new MatroskaTrackInfo
- MatroskaTrackInfo(MatroskaSegmentInfo *segment, uint64 trackUID);
- /// Destroys the class
- virtual ~MatroskaTrackInfo();
- =09
- /// Returns the track number of this track, please note that using U=
ID's is highly recommend
- /// \return The number of this track
- virtual uint16 GetTrackNumber();
- /// Sets the track number of this track, please note that using UID's =
is highly recommend
- /// \param trackNumber The track number to set for this track
- virtual void SetTrackNumber(uint16 trackNumber);
- /// Returns the UID of this track
- /// \return The UID of this track
- virtual uint64 GetTrackUID();
- /// Sets the UID of this track
- /// \param trackUID The UID to change this track to
- virtual void SetTrackUID(uint64 trackUID);
- /// Returns the track type of this track
- =09
- virtual uint8 GetTrackType();
- /// Returns the track type of this track as char *
- virtual TCHAR *GetTrackTypeStr();
- /// Sets the track type of this track
- virtual void SetTrackType(uint8 trackType);
- /// Returns the codec ID of this track
- virtual const char* GetCodecID();
- /// Sets the codec ID of this track
- virtual void SetCodecID(const char* codecID);
-
- static const char *GetLanguageNameFromISO639(const char *iso639_code);
- virtual const char *GetLanguageName(); =09
- /// Returns a pointer to the video information for this track or NULL =
if it is not a video track.
- virtual MatroskaVideoTrackInfo* GetVideoInfo();
- /// Sets the video information for this track.
- virtual void SetVideoInfo(MatroskaVideoTrackInfo* videoInfo);
- /// Returns a pointer to the audio information for this track or NULL =
if it is not a audio track.
- virtual MatroskaAudioTrackInfo* GetAudioInfo();
- /// Sets the audio information for this track.
- virtual void SetAudioInfo(MatroskaAudioTrackInfo* audioInfo);
- /// Returns a pointer to the Tag info for this track or NULL if there =
is not a Tag segment.
- //MatroskaTagInfo* GetTagInfo();
- /// Sets the Tag information for this track.
- //void SetTagInfo(MatroskaTagInfo* tagInfo);
- /// Merge another track info data, leaving this track left
- //void MergeWithThisTrackInfo(MatroskaTrackInfo *source_track);
- =09
- uint16 m_trackNumber;
- uint64 m_trackUID;
- uint8 m_trackType;
-
- std::string m_codecID;
- /// Old style FourCC or ACM ID
- std::string m_CodecOldID;
- uint32 m_min_cache;
- uint32 m_max_cache;
- uint32 m_lacing_flag;
- uint32 m_default_flag;
-
- //Lanuage of track
- std::string m_trackLanguage;
-
- MatroskaSegmentInfo *m_segmentInfo;
- protected:
- MatroskaVideoTrackInfo* m_videoInfo;
- MatroskaAudioTrackInfo* m_audioInfo;
- //MatroskaTagInfo* m_tagInfo;
-};
-
-class MatroskaTrackInfoList : public std::vector<MatroskaTrackInfo *> {
-public:
- MatroskaTrackInfoList();
- ~MatroskaTrackInfoList();
- void AddItem(MatroskaTrackInfo *new_item);
- //MatroskaTrackInfo *FindTrackListItemWithType(int type_id);
- size_type GetListCount() { return size(); };
- MatroskaTrackInfo *operator[] (uint16 requested_index) { return at(requ=
ested_index); };
-protected:
-
-};
-
-class MatroskaAttachmentItem {
-public:
- MatroskaAttachmentItem();
- ~MatroskaAttachmentItem();
- bool IsExt(const wchar_t *ext);
-
- const wchar_t *GetMatroskaFilename();
- const char *GetMatroskaFilename_ASCII();
- int SetMatroskaFilename(const wchar_t *new_filename);=09
- int SetMatroskaFilename(const char *new_filename);
-
- /// Get the filename of the attached file without the path
- /// Example The filename is "C:\videos\cover_The Matrix.jpg", This func=
tion will return "cover_The Matrix.jpg"
- /// \warning Returned string is freed by the MatroskaAttachmentItem cla=
ss=09
- const wchar_t *GetAttachmentFilenameOnly();
- /// Get the filename of the attached file without the path (ASCII versi=
on)
- /// Example The filename is "C:\videos\cover_The Matrix.jpg", This func=
tion will return "cover_The Matrix.jpg"
- /// \warning Returned string is freed by the MatroskaAttachmentItem cla=
ss=09
- const char *GetAttachmentFilenameOnly_ASCII();
-=09
- /// Get the filename of the attached file
- /// \warning Returned string is freed by the MatroskaAttachmentItem cla=
ss
- const wchar_t *GetAttachmentFilename();
- /// Get the filename of the attached file (ASCII version)
- /// \warning Returned string is freed by the MatroskaAttachmentItem cla=
ss
- const char *GetAttachmentFilename_ASCII();
- int SetAttachmentFilename(const wchar_t *new_filename);=09
- int SetAttachmentFilename(const char *new_filename);
-
- /// Read the actual data of the attached file,
- /// \warning This reads all the data into memory before returning, so b=
e careful with large attachments
- binary *GetAttachmentData();
- uint32 GetAttachmentSize();
-
- /// Save the attachment to a file
- int SaveTo(JString saveFilename);
- /// Get the filesize in a nice format
- /// For example, The attached file is 100,043 bytes, This function will=
return "100.04KB"
- /// \warning Returned string is freed by the ~MatroskaAttachmentItem
- const char *GetNiceSize();
- bool IsCover();
-#ifdef USING_CXIMAGE
- CxImage *GetCxImage();
- bool bResized;
- uint32 GetAttachmentImageType();
- std::string GetImageInfo();
-#endif // USING_CXIMAGE
-
-#ifdef WIN32
- /// Open this attachment with the correct program (Open)
- /// \param hwndDlg Handle to a dialog to use for displaying MessageBox =
can be NULL
- /// \retval 0 Everything A ok
- /// \retval 1 Failed to run shell program
- /// \retval 3 Unable to open output file
- /// \retval -1 General Error
- int OpenViaShell(HWND hwndDlg);
-#endif
-
- uint64 attachmentUID;
- std::string attachmentMimeType;
- UTFstring attachmentDescription;
-
- uint64 attachmentMatroskaFileDataStart;
- uint32 attachmentMatroskaFileDataLength;
-
- MatroskaAttachmentItem *next_item;
-protected:
-
-#ifdef USING_CXIMAGE
- CxImage *m_AttachmentImage;
-#endif // USING_CXIMAGE
-
- UTFstring attach_size;
- //Filename of attached file
- UTFstring m_AttachFilename;=09
- //Filename only of attached file (no path)
- UTFstring m_AttachFilenameOnly;=09
- //Filename of matroska that hass the attached file
- UTFstring matroska_filename;
-
- binary *buffer;
-};
-
-class MatroskaAttachmentsList : public std::vector<MatroskaAttachmentIte=
m *> {
-public:
- MatroskaAttachmentsList();
- ~MatroskaAttachmentsList();
-
- /// Add a Attachment item to the list
- void AddItem(MatroskaAttachmentItem *new_item) { push_back(new_item); }=
;
- /// Returns the number of attachments found in the file.
- uint32 GetNumberOfAttachments() { return size(); };
- /// Returns a pointer to the specified Attachment
- /// This function is simply an alias for the overloaded operator[]
- /// \param requested_index The 0 based index of the Attachment
- /// \return A pointer to the requested MatroskaAttachmentItem or NULL i=
f the index is out of range
- MatroskaAttachmentItem *GetAttachment(uint32 requested_index) { return =
at(requested_index); };
- /// Returns a pointer to the specified Attachment
- /// \param requested_index The 0 based index of the Attachment
- /// \return A pointer to the requested MatroskaAttachmentItem or NULL i=
f the index is out of range
- MatroskaAttachmentItem *operator[] (uint32 requested_index) { return at=
(requested_index); };
-};
-
-}; //End namespace MatroskaUtilsNamespace
-
-#endif // _MATROSKA_TRACK_DATA_H_
-
+/*
+ * Part of The TCMP Matroska CDL, a plugin to access extra features of =
Matroska files with TCMP
+ *
+ * MatroskaTrackData.h
+ *
+ * Copyright (C) Jory Stone - June 2003
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file MatroskaTrackData.h
+ \version \$Id: MatroskaTrackData.h,v 1.19 2004/02/18 06:52:18 jcsston =
Exp $
+ \brief Some general code to make working with Matroska easier
+ \author Jory Stone <jcsston @ toughguy.net>
+ =09
+ Inspired by ;) John Cannon ([email protected]) (c) 2003
+*/
+
+#ifndef _MATROSKA_TRACK_DATA_H_
+#define _MATROSKA_TRACK_DATA_H_
+
+#ifdef WIN32
+#include <windows.h>
+#endif //WIN32
+#include <vector>
+
+#ifdef USING_CXIMAGE
+#include "CxImage/ximage.h"
+#endif // USING_CXIMAGE
+
+#include "MatroskaUtilsDebug.h"
+#include "MatroskaUtilsReader.h"
+
+// libebml includes
+#include "ebml/StdIOCallback.h"
+#include "ebml/EbmlTypes.h"
+#include "ebml/EbmlHead.h"
+#include "ebml/EbmlVoid.h"
+#include "ebml/EbmlCrc32.h"
+#include "ebml/EbmlSubHead.h"
+#include "ebml/EbmlStream.h"
+#include "ebml/EbmlBinary.h"
+#include "ebml/EbmlString.h"
+#include "ebml/EbmlUnicodeString.h"
+#include "ebml/EbmlContexts.h"
+#include "ebml/EbmlVersion.h"
+
+// libmatroska includes
+#include "matroska/KaxConfig.h"
+#include "matroska/KaxBlock.h"
+#include "matroska/KaxSegment.h"
+#include "matroska/KaxContexts.h"
+#include "matroska/KaxSeekHead.h"
+#include "matroska/KaxTracks.h"
+#include "matroska/KaxInfo.h"
+#include "matroska/KaxInfoData.h"
+#include "matroska/KaxTags.h"
+#include "matroska/KaxTag.h"
+#include "matroska/KaxTagMulti.h"
+#include "matroska/KaxCluster.h"
+#include "matroska/KaxClusterData.h"
+#include "matroska/KaxTrackAudio.h"
+#include "matroska/KaxTrackVideo.h"
+#include "matroska/KaxAttachments.h"
+#include "matroska/KaxAttached.h"
+#include "matroska/KaxVersion.h"
+
+#define TIMECODE_SCALE 1000000
+
+#include "MatroskaTagData.h"
+
+namespace MatroskaUtilsNamespace {
+
+extern char *iso639_2B_codes[];
+
+class MatroskaSegmentInfo {
+public:
+ MatroskaSegmentInfo();
+ virtual ~MatroskaSegmentInfo();
+
+ virtual void SetDuration(float the_duration);
+ virtual float GetDuration();
+ /// Return a Nicely formated Duration
+ virtual const char *GetNiceDuration();
+ virtual UTFstring GetNiceDurationW();
+ virtual void SetTimecodeScale(uint64 timecodeScale);
+ virtual uint64 GetTimecodeScale();
+
+ float m_infoDuration;
+ std::string m_infoNiceDuration;
+ uint64 m_infoTimecodeScale;
+ std::string m_infoDate;
+ UTFstring m_infoFilename;
+ UTFstring m_infoWritingApp;
+ UTFstring m_infoMuxingApp;
+ UTFstring m_infoTitle;
+};
+
+typedef struct {
+ binary wFormatTag[2];
+ uint16 nChannels;
+ uint32 nSamplesPerSec;
+ uint32 nAvgBytesPerSec;
+ uint16 nBlockAlign;
+ uint16 wBitsPerSample;
+ uint16 cbSize;
+} acm_WAVEFORMATEX;
+
+class MatroskaAudioTrackInfo {
+ public:
+ MatroskaAudioTrackInfo();
+ ~MatroskaAudioTrackInfo();
+ static const char *GetWaveFormatName(uint16 formatTag);
+ //Audio Track Info
+ float audio_SampleRate;
+ float audio_OutputSampleRate;
+ uint8 audio_Channels;
+ uint8 audio_BitDepth;
+};
+
+typedef struct {
+ uint32 bi_size;
+ uint32 bi_width;
+ uint32 bi_height;
+ uint16 bi_planes;
+ uint16 bi_bit_count;
+ uint32 bi_compression;
+ uint32 bi_size_image;
+ uint32 bi_x_pels_per_meter;
+ uint32 bi_y_pels_per_meter;
+ uint32 bi_clr_used;
+ uint32 bi_clr_important;
+} vfw_BITMAPINFOHEADER;
+
+class MatroskaVideoTrackInfo {
+ public:
+ MatroskaVideoTrackInfo();
+ ~MatroskaVideoTrackInfo();
+ static const char *GetFourCCName(const char *fourcc);
+ //Video Track Info
+ uint16 video_Width;
+ uint16 video_Height;
+ uint16 video_DisplayWidth;
+ uint16 video_DisplayHeight;
+ float video_FrameRate;
+ uint32 video_ColorDepth;
+ uint8 video_Interlaced; =09
+};
+
+class MatroskaTrackInfo {
+ public:
+ /// Initializes the class
+ MatroskaTrackInfo(MatroskaSegmentInfo *segment);
+ /// Initializes the class with a UID
+ /// \param trackUID The UID to use for the new MatroskaTrackInfo
+ MatroskaTrackInfo(MatroskaSegmentInfo *segment, uint64 trackUID);
+ /// Destroys the class
+ virtual ~MatroskaTrackInfo();
+ =09
+ /// Returns the track number of this track, please note that using U=
ID's is highly recommend
+ /// \return The number of this track
+ virtual uint16 GetTrackNumber();
+ /// Sets the track number of this track, please note that using UID's =
is highly recommend
+ /// \param trackNumber The track number to set for this track
+ virtual void SetTrackNumber(uint16 trackNumber);
+ /// Returns the UID of this track
+ /// \return The UID of this track
+ virtual uint64 GetTrackUID();
+ /// Sets the UID of this track
+ /// \param trackUID The UID to change this track to
+ virtual void SetTrackUID(uint64 trackUID);
+ /// Returns the track type of this track
+ =09
+ virtual uint8 GetTrackType();
+ /// Returns the track type of this track as char *
+ virtual TCHAR *GetTrackTypeStr();
+ /// Sets the track type of this track
+ virtual void SetTrackType(uint8 trackType);
+ /// Returns the codec ID of this track
+ virtual const char* GetCodecID();
+ /// Sets the codec ID of this track
+ virtual void SetCodecID(const char* codecID);
+
+ static const char *GetLanguageNameFromISO639(const char *iso639_code);
+ virtual const char *GetLanguageName(); =09
+ /// Returns a pointer to the video information for this track or NULL =
if it is not a video track.
+ virtual MatroskaVideoTrackInfo* GetVideoInfo();
+ /// Sets the video information for this track.
+ virtual void SetVideoInfo(MatroskaVideoTrackInfo* videoInfo);
+ /// Returns a pointer to the audio information for this track or NULL =
if it is not a audio track.
+ virtual MatroskaAudioTrackInfo* GetAudioInfo();
+ /// Sets the audio information for this track.
+ virtual void SetAudioInfo(MatroskaAudioTrackInfo* audioInfo);
+ /// Returns a pointer to the Tag info for this track or NULL if there =
is not a Tag segment.
+ //MatroskaTagInfo* GetTagInfo();
+ /// Sets the Tag information for this track.
+ //void SetTagInfo(MatroskaTagInfo* tagInfo);
+ /// Merge another track info data, leaving this track left
+ //void MergeWithThisTrackInfo(MatroskaTrackInfo *source_track);
+ =09
+ uint16 m_trackNumber;
+ uint64 m_trackUID;
+ uint8 m_trackType;
+
+ std::string m_codecID;
+ /// Old style FourCC or ACM ID
+ std::string m_CodecOldID;
+ uint32 m_min_cache;
+ uint32 m_max_cache;
+ uint32 m_lacing_flag;
+ uint32 m_default_flag;
+
+ //Lanuage of track
+ std::string m_trackLanguage;
+
+ MatroskaSegmentInfo *m_segmentInfo;
+ protected:
+ MatroskaVideoTrackInfo* m_videoInfo;
+ MatroskaAudioTrackInfo* m_audioInfo;
+ //MatroskaTagInfo* m_tagInfo;
+};
+
+class MatroskaTrackInfoList : public std::vector<MatroskaTrackInfo *> {
+public:
+ MatroskaTrackInfoList();
+ ~MatroskaTrackInfoList();
+ void AddItem(MatroskaTrackInfo *new_item);
+ //MatroskaTrackInfo *FindTrackListItemWithType(int type_id);
+ size_type GetListCount() { return size(); };
+ MatroskaTrackInfo *operator[] (uint16 requested_index) { return at(requ=
ested_index); };
+protected:
+
+};
+
+class MatroskaAttachmentItem {
+public:
+ MatroskaAttachmentItem();
+ ~MatroskaAttachmentItem();
+ bool IsExt(const wchar_t *ext);
+
+ const wchar_t *GetMatroskaFilename();
+ const char *GetMatroskaFilename_ASCII();
+ int SetMatroskaFilename(const wchar_t *new_filename);=09
+ int SetMatroskaFilename(const char *new_filename);
+
+ /// Get the filename of the attached file without the path
+ /// Example The filename is "C:\videos\cover_The Matrix.jpg", This func=
tion will return "cover_The Matrix.jpg"
+ /// \warning Returned string is freed by the MatroskaAttachmentItem cla=
ss=09
+ const wchar_t *GetAttachmentFilenameOnly();
+ /// Get the filename of the attached file without the path (ASCII versi=
on)
+ /// Example The filename is "C:\videos\cover_The Matrix.jpg", This func=
tion will return "cover_The Matrix.jpg"
+ /// \warning Returned string is freed by the MatroskaAttachmentItem cla=
ss=09
+ const char *GetAttachmentFilenameOnly_ASCII();
+=09
+ /// Get the filename of the attached file
+ /// \warning Returned string is freed by the MatroskaAttachmentItem cla=
ss
+ const wchar_t *GetAttachmentFilename();
+ /// Get the filename of the attached file (ASCII version)
+ /// \warning Returned string is freed by the MatroskaAttachmentItem cla=
ss
+ const char *GetAttachmentFilename_ASCII();
+ int SetAttachmentFilename(const wchar_t *new_filename);=09
+ int SetAttachmentFilename(const char *new_filename);
+
+ /// Read the actual data of the attached file,
+ /// \warning This reads all the data into memory before returning, so b=
e careful with large attachments
+ binary *GetAttachmentData();
+ uint32 GetAttachmentSize();
+
+ /// Save the attachment to a file
+ int SaveTo(JString saveFilename);
+ /// Get the filesize in a nice format
+ /// For example, The attached file is 100,043 bytes, This function will=
return "100.04KB"
+ /// \warning Returned string is freed by the ~MatroskaAttachmentItem
+ const char *GetNiceSize();
+ bool IsCover();
+#ifdef USING_CXIMAGE
+ CxImage *GetCxImage();
+ bool bResized;
+ uint32 GetAttachmentImageType();
+ std::string GetImageInfo();
+#endif // USING_CXIMAGE
+
+#ifdef WIN32
+ /// Open this attachment with the correct program (Open)
+ /// \param hwndDlg Handle to a dialog to use for displaying MessageBox =
can be NULL
+ /// \retval 0 Everything A ok
+ /// \retval 1 Failed to run shell program
+ /// \retval 3 Unable to open output file
+ /// \retval -1 General Error
+ int OpenViaShell(HWND hwndDlg);
+#endif
+
+ uint64 attachmentUID;
+ std::string attachmentMimeType;
+ UTFstring attachmentDescription;
+
+ uint64 attachmentMatroskaFileDataStart;
+ uint32 attachmentMatroskaFileDataLength;
+
+ MatroskaAttachmentItem *next_item;
+protected:
+
+#ifdef USING_CXIMAGE
+ CxImage *m_AttachmentImage;
+#endif // USING_CXIMAGE
+
+ UTFstring attach_size;
+ //Filename of attached file
+ UTFstring m_AttachFilename;=09
+ //Filename only of attached file (no path)
+ UTFstring m_AttachFilenameOnly;=09
+ //Filename of matroska that hass the attached file
+ UTFstring matroska_filename;
+
+ binary *buffer;
+};
+
+class MatroskaAttachmentsList : public std::vector<MatroskaAttachmentIte=
m *> {
+public:
+ MatroskaAttachmentsList();
+ ~MatroskaAttachmentsList();
+
+ /// Add a Attachment item to the list
+ void AddItem(MatroskaAttachmentItem *new_item) { push_back(new_item); }=
;
+ /// Returns the number of attachments found in the file.
+ uint32 GetNumberOfAttachments() { return size(); };
+ /// Returns a pointer to the specified Attachment
+ /// This function is simply an alias for the overloaded operator[]
+ /// \param requested_index The 0 based index of the Attachment
+ /// \return A pointer to the requested MatroskaAttachmentItem or NULL i=
f the index is out of range
+ MatroskaAttachmentItem *GetAttachment(uint32 requested_index) { return =
at(requested_index); };
+ /// Returns a pointer to the specified Attachment
+ /// \param requested_index The 0 based index of the Attachment
+ /// \return A pointer to the requested MatroskaAttachmentItem or NULL i=
f the index is out of range
+ MatroskaAttachmentItem *operator[] (uint32 requested_index) { return at=
(requested_index); };
+};
+
+}; //End namespace MatroskaUtilsNamespace
+
+#endif // _MATROSKA_TRACK_DATA_H_
+
Property changes on: trunk/MatroskaUtils/MatroskaTrackData.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/MatroskaUtils.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/MatroskaUtils.h 2007-02-17 10:34:40 UTC (rev 1276=
)
+++ trunk/MatroskaUtils/MatroskaUtils.h 2007-02-17 10:55:54 UTC (rev 1277=
)
@@ -1,338 +1,338 @@
-/**
- * Part of The TCMP Matroska CDL, a plugin to access extra features of =
Matroska files with TCMP
- *
- * MatroskaUtils.h
- *
- * Copyright (C) Jory Stone - June 2003
- * Copyright (C) John Cannon - 2003
- *
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
-*/
-
-/*!
- \file MatroskaUtils.h
- \version \$Id: MatroskaUtils.h,v 1.38 2004/03/20 05:08:31 jcsston Exp =
$
- \brief Some general code to make working with Matroska easier
- \author Jory Stone <jcsston @ toughguy.net>
- \author John Cannon <spyder482 @ yahoo.com>
- =09
- Inspired by ;) John Cannon ([email protected]) (c) 2003
-*/
-
-#ifndef _MATROSKA_UTILS_H_
-#define _MATROSKA_UTILS_H_
-
-#include "MatroskaUtilsDebug.h"
-#include "MatroskaUtilsReader.h"
-#include "JCThread.h"
-#ifdef USING_BITRATE_INFO
-#include "MatroskaUtilsBitrate.h"
-#endif
-
-
-//standard includes
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <math.h>
-#include <vector>
-#include <time.h>
-#include <malloc.h>
-#include <process.h>
-
-#ifdef USING_TINYXML
-#include "tinyxml.h"
-#endif
-
-// libebml includes
-#include "ebml/StdIOCallback.h"
-#include "ebml/EbmlTypes.h"
-#include "ebml/EbmlHead.h"
-#include "ebml/EbmlVoid.h"
-#include "ebml/EbmlCrc32.h"
-#include "ebml/EbmlSubHead.h"
-#include "ebml/EbmlStream.h"
-#include "ebml/EbmlBinary.h"
-#include "ebml/EbmlString.h"
-#include "ebml/EbmlUnicodeString.h"
-#include "ebml/EbmlContexts.h"
-#include "ebml/EbmlVersion.h"
-
-// libmatroska includes
-#include "matroska/KaxConfig.h"
-#include "matroska/KaxBlock.h"
-#include "matroska/KaxSegment.h"
-#include "matroska/KaxContexts.h"
-#include "matroska/KaxSeekHead.h"
-#include "matroska/KaxTracks.h"
-#include "matroska/KaxInfo.h"
-#include "matroska/KaxInfoData.h"
-#include "matroska/KaxTags.h"
-#include "matroska/KaxTag.h"
-#include "matroska/KaxTagMulti.h"
-#include "matroska/KaxCluster.h"
-#include "matroska/KaxClusterData.h"
-#include "matroska/KaxTrackAudio.h"
-#include "matroska/KaxTrackVideo.h"
-#include "matroska/KaxAttachments.h"
-#include "matroska/KaxAttached.h"
-#include "matroska/KaxChapters.h"
-#include "matroska/KaxVersion.h"
-
-#include "MatroskaTrackData.h"
-#include "MatroskaChapterData.h"
-#include "JList.h"
-
-namespace MatroskaUtilsNamespace {
-
-using namespace LIBEBML_NAMESPACE;
-using namespace LIBMATROSKA_NAMESPACE;
-
-/// The working horse of the CDL, Shell Ext.
-/// /par Memory Usage test 08-27-2003
-/// For file "mew_mew_attachment.mkv" 19 tracks
-/// 20 parsers, 175,886 bytes
-/// For file "Copy (2) of Copy of tag_test_mkvmerge.mkv" video + lots of=
tags
-/// 20 parsers, 102,244 bytese
-/// For file "Voyager - Good Shepherd.mkv" Xvid video+Vorbis
-/// 20 parsers, 81,082 bytes
-/// For file "pink2.mka" MP3 + Some tags
-/// 10 Parsers, 47,025 bytes
-/// 20 parsers, 89,503 bytes
-class MatroskaInfoParser {
- public:
- /// Initializes the class
- /// \param MatroskaFilename The filename of a Matroska file to parse
- MatroskaInfoParser(const wchar_t *MatroskaFilename);
- MatroskaInfoParser(const char *MatroskaFilename); =09
- /// Reset values to defaults (not the filename)
- virtual int Initialize();
- /// Call this to check if the file is valid
- bool IsValid() { TRACE("MatroskaInfoParser::IsValid()"); return m_IsVa=
lid;}
- /// Destroys the class
- virtual ~MatroskaInfoParser();
- /// Detects if a file is a Matroska file or not
- /// \param file_to_check The filename of the Matroska file to detect
- /// \return True if the file is a Matroska file, false otherwise
- // static bool CheckForMatroska(char* file_to_check);
- virtual bool IsMatroska(JString file_to_check);
- //bool IsMatroska(const wchar_t* file_to_check);
- /// Controls if we try to read the tags or not.
- /// If we do read the tags and the file doesn't have a SeekEntry for t=
he Tags element
- /// or doesn't even have a Tags element it will take a long time depen=
ding on the file size
- /// \param passed_readTags If set to true we will parse the tags
- //void SetReadTags(bool passed_readTags =3D true);
- /// Controls if we parse the whole file
- /// This will need to be set to true in order to scan for Attachments
- /// \param passed_parse_whole_file If set to true we will parse the wh=
ole file
- //void SetParseWholeFile(bool passed_parse_whole_file =3D true); =09
- /// Parses the file's contents to retrieve the data needed
- /// \retval 0 if successful
- /// \retval 1 if the file isn't a valid Matroska file
- /// \retval 5 if the file is a EBML file but the DocType isn't Matrosk=
a
- virtual int ParseFile();
- /// NON-WORKING
- /// \param output_filename The file to copy the current matroska file =
to
- virtual int CopyFile(char *output_filename);
- /// Write out the tags from memory to the opened Matroska file
- virtual int WriteTags();
- /// Updates the Display Size or AR in the currently opened Matroska f=
ile
- /// \param track_no The track number of the video track to update
- /// \param new_display_size_width The display width to write
- /// \param new_display_size_height The display height to write
- /// \retval 0 if the new Display Size was written successfully
- /// \retval 1 if the file wasn't a Matroska file or couldn't be opened
- /// \retval 2 if the file couldn't be opened for writing
- /// \retval 3 if the file didn't have DisplaySize elements
- virtual int WriteDisplaySize(uint8 track_no, uint16 new_display_size_w=
idth, uint16 new_display_size_height);
- /// Updates the Language of a track in the currently opened Matroska f=
ile
- /// \param track_no The track number of the video track to update
- /// \param new_lang The Language Code to write
- /// \retval 0 if the new Display Size was written successfully
- /// \retval 1 if the file wasn't a Matroska file or couldn't be opened
- /// \retval 2 if the file couldn't be opened for writing
- /// \retval 3 if the file didn't have the Language of a track already =
written
- /// \retval 4 if the Language of a track already written was too small=
to put the new value
- virtual int WriteLanguage(uint8 track_no, std::string new_lang);
-
- /// Get number of tracks found in the file
- /// \return The number of tracks found in the currently opened Matrosk=
a file
- virtual int GetNumberOfTracks();
- /// Lookup a track by it's UID and returns a pointer to the track's in=
formation
- /// \param trackUID The UID of the track you wish to find
- /// \return A MatroskaTrackInfo pointer to the found track or NULL if =
the track couldn't be found =09
- virtual MatroskaTrackInfo *GetTrackInfoByUID(uint64 trackUID);
- /// Lookup a track by it's number and returns a pointer to the track's=
information
- /// This isn't the best way to find a specfic track, use GetTrackInfoB=
yUID() instead
- /// but this is a good way to go through each track, say if you were l=
isting all the track found
- /// \param trackNumber The number of the track you wish to find, the v=
alid range is the return value of GetNumberOfTracks() to 1
- /// \return A pointer to a MatroskaTrackInfo of the found track or NUL=
L if the track couldn't be found =09
- virtual MatroskaTrackInfo *GetTrackInfo(int trackNumber);
- /// Get the first Video track
- virtual MatroskaTrackInfo *GetFirstVideoTrack();
- /// Get the first Audio track
- virtual MatroskaTrackInfo *GetFirstAudioTrack();
- virtual MatroskaTrackInfo *GetFirstSubtitleTrack();
- /// Return a pointer to the global track info, (includes the Info segm=
ent and Tag segments without a TrackUID)
- /// If a global track doesn't exist it will create one
- /// \return A MatroskaTrackInfo pointer to the 'Global' track
- //MatroskaTrackInfo *GetGlobalTrackInfo();
- /// Get the filename of the current Matroska file
- /// \return A char pointer to the open Matroska file's name including =
path
- /// \warning Do not free the memory used by the returned wchar_t *
- virtual const wchar_t *GetFilename();
- virtual const char *GetFilename_ASCII();
- /// Get the filesize in a nice format
- /// For example The file is 100,756,003 bytes, This function will retu=
rn "100.75MB"
- /// \return A char pointer to the a nicely formated size, Do not delet=
e =09
- virtual const char *GetNiceFileSize();
-
- /// Get the Muxing App of the file
- /// \return A char pointer to the Muxing App tag
- virtual const char *GetMuxingApp();
- /// Get the Writing App of the file
- /// \return A char pointer to the Writing App tag
- virtual const char *GetWritingApp();
- /// Returns the title for the file found in the Infos element
- virtual UTFstring &GetTitle();
- =09
- virtual UTFstring GetTagArtist(MatroskaTagInfo *tagTrack =3D NULL);
- virtual UTFstring GetTagTitle(MatroskaTagInfo *tagTrack =3D NULL);
- virtual UTFstring GetTagAlbum(MatroskaTagInfo *tagTrack =3D NULL);
- virtual uint32 GetTagDiscTrack(MatroskaTagInfo *tagTrack =3D NULL); =09
- virtual uint32 GetTagYear(MatroskaTagInfo *tagTrack =3D NULL);
- virtual std::string GetTagGenre(MatroskaTagInfo *tagTrack =3D NULL);
- virtual UTFstring GetTagComment(MatroskaTagInfo *tagTrack =3D NULL);
- virtual int32 GetTagRating(MatroskaTagInfo *tagTrack =3D NULL);
- virtual double GetTagBPM(MatroskaTagInfo *tagTrack =3D NULL);
-
- virtual int SetTagArtist(UTFstring artist, MatroskaTagInfo *tagTrack =3D=
NULL);
- virtual int SetTagTitle(UTFstring title, MatroskaTagInfo *tagTrack =3D=
NULL);
- virtual int SetTagAlbum(UTFstring album, MatroskaTagInfo *tagTrack =3D=
NULL);
- virtual int SetTagDiscTrack(uint32 discTrack, MatroskaTagInfo *tagTrac=
k =3D NULL); =09
- virtual int SetTagYear(uint32 year, MatroskaTagInfo *tagTrack =3D NULL=
);
- virtual int SetTagGenre(std::string genre, MatroskaTagInfo *tagTrack =3D=
NULL);
- virtual int SetTagComment(UTFstring comment, MatroskaTagInfo *tagTrack=
=3D NULL);
- virtual int SetTagRating(int32 rating, MatroskaTagInfo *tagTrack =3D N=
ULL);
- virtual int SetTagBPM(double bpm, MatroskaTagInfo *tagTrack =3D NULL);
-
- /// Create a text report of the file, inlcuding the track list
- /// \return A reference to the std::string report
- virtual std::string &GetTextReport();
-
- virtual uint32 GetMetaSeekSize() { return m_MetaSeekSize; };
- virtual uint32 GetCuesSize() { return m_CuesSize; };
- /// Convert a ASCII string to Unicode
- /// \param ansi_filename Input ASCII string
- /// \return Unicode string
- /// \warning You have to call delete on the returned string when done =
with it
- static wchar_t *ConvertCharToWchar_t(const char *ansi_filename);
- /// Multi-threaded safe
- virtual uint8 GetPercentComplete();
-
- virtual MatroskaSegmentInfo *GetSegmentInfo();
-#ifdef USING_TINYXML
- /// Save the tags in a XML file, readable by mkvmerge
- virtual int SaveTagsToXMLFile(JString &xmlFilename);
- virtual int SaveChaptersToXMLFile(JString &xmlFilename);
-#endif
-
- MatroskaTrackInfoList trackInfos;
- MatroskaAttachmentsList fileAttachments;
- MatroskaTagList tags;
- MatroskaChapterList chapters;
- MatroskaSegmentInfo m_segmentInfo;
-
- uint64 file_size;
-
- uint64 currentFilePos; =09
- bool keepProcessing;
-
- //Used when parsing the a Matroska file
- bool really_found_tags;
- bool found_tags;
- bool found_tracks;
- bool found_info;
- bool found_attachments;
-
- bool m_parseSeekHead;
- bool m_parseAttachments;
- bool m_parseTags;
- bool m_parseWholeFile;
-
- uint64 m_tagElementPos;
- uint64 m_tagElementSize;
-
- uint32 cluster_count;
- MatroskaTrackInfo *lastSelectedTrack;
-protected: =09
- /// An function used by ParseFile() to gather data from a Infomation e=
lement
- /// \param inputfile_stream Pointer to a EbmlStream of the opened Matr=
oska file
- /// \param infomation_element Pointer to a EbmlElement of the Info Ele=
ment =09
- /// \retval 0 if successful
- int Parse_InfomationSegment(EbmlStream *inputfile_stream, EbmlElement =
*infomation_element);
- /// An function used by ParseFile() to gather data from the Tracks ele=
ment
- /// \param inputfile_stream Pointer to a EbmlStream of the opened Matr=
oska file
- /// \param tracks_element Pointer to a EbmlElement of the Tracks Eleme=
nt
- /// \retval 0 if successful
- int Parse_Tracks(EbmlStream *inputfile_stream, EbmlElement *tracks_ele=
ment);
- /// An function used by ParseFile() to gather data from the Tags eleme=
nt
- /// \param inputfile_stream Pointer to a EbmlStream of the opened Matr=
oska file
- /// \param tags_element Pointer to a EbmlElement of the Tags Element
- /// \return The number of Tag(s) element found and parsed
- int Parse_Tags(EbmlStream *inputfile_stream, EbmlElement *tags_element=
);
- /// An function used by ParseFile() to gather data from the Attachment=
s element
- /// \param inputfile_stream Pointer to a EbmlStream of the opened Matr=
oska file
- /// \param attachments_element Pointer to a EbmlElement of the Attachm=
ent Element
- /// \return The number of Attachments found and parsed
- int Parse_Attachments(EbmlStream *inputfile_stream, EbmlElement *attac=
hments_element);
- int Parse_Chapters(EbmlStream *inputfile_stream, EbmlElement *chapter_=
element);
- int Parse_ChapterAtom(KaxChapterAtom &ChapterAtom, MatroskaChapterEntr=
y **entry);
- =20
- /// Updates the currentPercent locking the critcal section to be mult=
i-threaded safe
- inline void UpdatePercentComplete(uint8 newPercent);
-
- bool m_IsValid;
-
- std::string m_fileReport; =09
- UTFstring m_niceFileSize;
-
- UTFstring m_filename; =09
- =09
- //I've never used this
- //UTFstring m_fileTitle;
-
- //uint64 m_TimecodeScale;
- uint32 m_MetaSeekSize;
- uint32 m_TrackSize;
- uint32 m_CuesSize;
-
- //Multi-Threaded stuff
- JCCritSec m_CurrentPercent_cs;
- uint8 m_CurrentPercent;
-};
-
-#ifdef _DEBUG =09
-//Memory Debugging
-int YourAllocHook(int allocType, void *userData, size_t size, int blockT=
ype, long requestNumber, const unsigned char *filename, int lineNumber);
-#endif
-
-};
-
-#endif // _MATROSKA_UTILS_H_
-
-
+/**
+ * Part of The TCMP Matroska CDL, a plugin to access extra features of =
Matroska files with TCMP
+ *
+ * MatroskaUtils.h
+ *
+ * Copyright (C) Jory Stone - June 2003
+ * Copyright (C) John Cannon - 2003
+ *
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+*/
+
+/*!
+ \file MatroskaUtils.h
+ \version \$Id: MatroskaUtils.h,v 1.38 2004/03/20 05:08:31 jcsston Exp =
$
+ \brief Some general code to make working with Matroska easier
+ \author Jory Stone <jcsston @ toughguy.net>
+ \author John Cannon <spyder482 @ yahoo.com>
+ =09
+ Inspired by ;) John Cannon ([email protected]) (c) 2003
+*/
+
+#ifndef _MATROSKA_UTILS_H_
+#define _MATROSKA_UTILS_H_
+
+#include "MatroskaUtilsDebug.h"
+#include "MatroskaUtilsReader.h"
+#include "JCThread.h"
+#ifdef USING_BITRATE_INFO
+#include "MatroskaUtilsBitrate.h"
+#endif
+
+
+//standard includes
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <math.h>
+#include <vector>
+#include <time.h>
+#include <malloc.h>
+#include <process.h>
+
+#ifdef USING_TINYXML
+#include "tinyxml.h"
+#endif
+
+// libebml includes
+#include "ebml/StdIOCallback.h"
+#include "ebml/EbmlTypes.h"
+#include "ebml/EbmlHead.h"
+#include "ebml/EbmlVoid.h"
+#include "ebml/EbmlCrc32.h"
+#include "ebml/EbmlSubHead.h"
+#include "ebml/EbmlStream.h"
+#include "ebml/EbmlBinary.h"
+#include "ebml/EbmlString.h"
+#include "ebml/EbmlUnicodeString.h"
+#include "ebml/EbmlContexts.h"
+#include "ebml/EbmlVersion.h"
+
+// libmatroska includes
+#include "matroska/KaxConfig.h"
+#include "matroska/KaxBlock.h"
+#include "matroska/KaxSegment.h"
+#include "matroska/KaxContexts.h"
+#include "matroska/KaxSeekHead.h"
+#include "matroska/KaxTracks.h"
+#include "matroska/KaxInfo.h"
+#include "matroska/KaxInfoData.h"
+#include "matroska/KaxTags.h"
+#include "matroska/KaxTag.h"
+#include "matroska/KaxTagMulti.h"
+#include "matroska/KaxCluster.h"
+#include "matroska/KaxClusterData.h"
+#include "matroska/KaxTrackAudio.h"
+#include "matroska/KaxTrackVideo.h"
+#include "matroska/KaxAttachments.h"
+#include "matroska/KaxAttached.h"
+#include "matroska/KaxChapters.h"
+#include "matroska/KaxVersion.h"
+
+#include "MatroskaTrackData.h"
+#include "MatroskaChapterData.h"
+#include "JList.h"
+
+namespace MatroskaUtilsNamespace {
+
+using namespace LIBEBML_NAMESPACE;
+using namespace LIBMATROSKA_NAMESPACE;
+
+/// The working horse of the CDL, Shell Ext.
+/// /par Memory Usage test 08-27-2003
+/// For file "mew_mew_attachment.mkv" 19 tracks
+/// 20 parsers, 175,886 bytes
+/// For file "Copy (2) of Copy of tag_test_mkvmerge.mkv" video + lots of=
tags
+/// 20 parsers, 102,244 bytese
+/// For file "Voyager - Good Shepherd.mkv" Xvid video+Vorbis
+/// 20 parsers, 81,082 bytes
+/// For file "pink2.mka" MP3 + Some tags
+/// 10 Parsers, 47,025 bytes
+/// 20 parsers, 89,503 bytes
+class MatroskaInfoParser {
+ public:
+ /// Initializes the class
+ /// \param MatroskaFilename The filename of a Matroska file to parse
+ MatroskaInfoParser(const wchar_t *MatroskaFilename);
+ MatroskaInfoParser(const char *MatroskaFilename); =09
+ /// Reset values to defaults (not the filename)
+ virtual int Initialize();
+ /// Call this to check if the file is valid
+ bool IsValid() { TRACE("MatroskaInfoParser::IsValid()"); return m_IsVa=
lid;}
+ /// Destroys the class
+ virtual ~MatroskaInfoParser();
+ /// Detects if a file is a Matroska file or not
+ /// \param file_to_check The filename of the Matroska file to detect
+ /// \return True if the file is a Matroska file, false otherwise
+ // static bool CheckForMatroska(char* file_to_check);
+ virtual bool IsMatroska(JString file_to_check);
+ //bool IsMatroska(const wchar_t* file_to_check);
+ /// Controls if we try to read the tags or not.
+ /// If we do read the tags and the file doesn't have a SeekEntry for t=
he Tags element
+ /// or doesn't even have a Tags element it will take a long time depen=
ding on the file size
+ /// \param passed_readTags If set to true we will parse the tags
+ //void SetReadTags(bool passed_readTags =3D true);
+ /// Controls if we parse the whole file
+ /// This will need to be set to true in order to scan for Attachments
+ /// \param passed_parse_whole_file If set to true we will parse the wh=
ole file
+ //void SetParseWholeFile(bool passed_parse_whole_file =3D true); =09
+ /// Parses the file's contents to retrieve the data needed
+ /// \retval 0 if successful
+ /// \retval 1 if the file isn't a valid Matroska file
+ /// \retval 5 if the file is a EBML file but the DocType isn't Matrosk=
a
+ virtual int ParseFile();
+ /// NON-WORKING
+ /// \param output_filename The file to copy the current matroska file =
to
+ virtual int CopyFile(char *output_filename);
+ /// Write out the tags from memory to the opened Matroska file
+ virtual int WriteTags();
+ /// Updates the Display Size or AR in the currently opened Matroska f=
ile
+ /// \param track_no The track number of the video track to update
+ /// \param new_display_size_width The display width to write
+ /// \param new_display_size_height The display height to write
+ /// \retval 0 if the new Display Size was written successfully
+ /// \retval 1 if the file wasn't a Matroska file or couldn't be opened
+ /// \retval 2 if the file couldn't be opened for writing
+ /// \retval 3 if the file didn't have DisplaySize elements
+ virtual int WriteDisplaySize(uint8 track_no, uint16 new_display_size_w=
idth, uint16 new_display_size_height);
+ /// Updates the Language of a track in the currently opened Matroska f=
ile
+ /// \param track_no The track number of the video track to update
+ /// \param new_lang The Language Code to write
+ /// \retval 0 if the new Display Size was written successfully
+ /// \retval 1 if the file wasn't a Matroska file or couldn't be opened
+ /// \retval 2 if the file couldn't be opened for writing
+ /// \retval 3 if the file didn't have the Language of a track already =
written
+ /// \retval 4 if the Language of a track already written was too small=
to put the new value
+ virtual int WriteLanguage(uint8 track_no, std::string new_lang);
+
+ /// Get number of tracks found in the file
+ /// \return The number of tracks found in the currently opened Matrosk=
a file
+ virtual int GetNumberOfTracks();
+ /// Lookup a track by it's UID and returns a pointer to the track's in=
formation
+ /// \param trackUID The UID of the track you wish to find
+ /// \return A MatroskaTrackInfo pointer to the found track or NULL if =
the track couldn't be found =09
+ virtual MatroskaTrackInfo *GetTrackInfoByUID(uint64 trackUID);
+ /// Lookup a track by it's number and returns a pointer to the track's=
information
+ /// This isn't the best way to find a specfic track, use GetTrackInfoB=
yUID() instead
+ /// but this is a good way to go through each track, say if you were l=
isting all the track found
+ /// \param trackNumber The number of the track you wish to find, the v=
alid range is the return value of GetNumberOfTracks() to 1
+ /// \return A pointer to a MatroskaTrackInfo of the found track or NUL=
L if the track couldn't be found =09
+ virtual MatroskaTrackInfo *GetTrackInfo(int trackNumber);
+ /// Get the first Video track
+ virtual MatroskaTrackInfo *GetFirstVideoTrack();
+ /// Get the first Audio track
+ virtual MatroskaTrackInfo *GetFirstAudioTrack();
+ virtual MatroskaTrackInfo *GetFirstSubtitleTrack();
+ /// Return a pointer to the global track info, (includes the Info segm=
ent and Tag segments without a TrackUID)
+ /// If a global track doesn't exist it will create one
+ /// \return A MatroskaTrackInfo pointer to the 'Global' track
+ //MatroskaTrackInfo *GetGlobalTrackInfo();
+ /// Get the filename of the current Matroska file
+ /// \return A char pointer to the open Matroska file's name including =
path
+ /// \warning Do not free the memory used by the returned wchar_t *
+ virtual const wchar_t *GetFilename();
+ virtual const char *GetFilename_ASCII();
+ /// Get the filesize in a nice format
+ /// For example The file is 100,756,003 bytes, This function will retu=
rn "100.75MB"
+ /// \return A char pointer to the a nicely formated size, Do not delet=
e =09
+ virtual const char *GetNiceFileSize();
+
+ /// Get the Muxing App of the file
+ /// \return A char pointer to the Muxing App tag
+ virtual const char *GetMuxingApp();
+ /// Get the Writing App of the file
+ /// \return A char pointer to the Writing App tag
+ virtual const char *GetWritingApp();
+ /// Returns the title for the file found in the Infos element
+ virtual UTFstring &GetTitle();
+ =09
+ virtual UTFstring GetTagArtist(MatroskaTagInfo *tagTrack =3D NULL);
+ virtual UTFstring GetTagTitle(MatroskaTagInfo *tagTrack =3D NULL);
+ virtual UTFstring GetTagAlbum(MatroskaTagInfo *tagTrack =3D NULL);
+ virtual uint32 GetTagDiscTrack(MatroskaTagInfo *tagTrack =3D NULL); =09
+ virtual uint32 GetTagYear(MatroskaTagInfo *tagTrack =3D NULL);
+ virtual std::string GetTagGenre(MatroskaTagInfo *tagTrack =3D NULL);
+ virtual UTFstring GetTagComment(MatroskaTagInfo *tagTrack =3D NULL);
+ virtual int32 GetTagRating(MatroskaTagInfo *tagTrack =3D NULL);
+ virtual double GetTagBPM(MatroskaTagInfo *tagTrack =3D NULL);
+
+ virtual int SetTagArtist(UTFstring artist, MatroskaTagInfo *tagTrack =3D=
NULL);
+ virtual int SetTagTitle(UTFstring title, MatroskaTagInfo *tagTrack =3D=
NULL);
+ virtual int SetTagAlbum(UTFstring album, MatroskaTagInfo *tagTrack =3D=
NULL);
+ virtual int SetTagDiscTrack(uint32 discTrack, MatroskaTagInfo *tagTrac=
k =3D NULL); =09
+ virtual int SetTagYear(uint32 year, MatroskaTagInfo *tagTrack =3D NULL=
);
+ virtual int SetTagGenre(std::string genre, MatroskaTagInfo *tagTrack =3D=
NULL);
+ virtual int SetTagComment(UTFstring comment, MatroskaTagInfo *tagTrack=
=3D NULL);
+ virtual int SetTagRating(int32 rating, MatroskaTagInfo *tagTrack =3D N=
ULL);
+ virtual int SetTagBPM(double bpm, MatroskaTagInfo *tagTrack =3D NULL);
+
+ /// Create a text report of the file, inlcuding the track list
+ /// \return A reference to the std::string report
+ virtual std::string &GetTextReport();
+
+ virtual uint32 GetMetaSeekSize() { return m_MetaSeekSize; };
+ virtual uint32 GetCuesSize() { return m_CuesSize; };
+ /// Convert a ASCII string to Unicode
+ /// \param ansi_filename Input ASCII string
+ /// \return Unicode string
+ /// \warning You have to call delete on the returned string when done =
with it
+ static wchar_t *ConvertCharToWchar_t(const char *ansi_filename);
+ /// Multi-threaded safe
+ virtual uint8 GetPercentComplete();
+
+ virtual MatroskaSegmentInfo *GetSegmentInfo();
+#ifdef USING_TINYXML
+ /// Save the tags in a XML file, readable by mkvmerge
+ virtual int SaveTagsToXMLFile(JString &xmlFilename);
+ virtual int SaveChaptersToXMLFile(JString &xmlFilename);
+#endif
+
+ MatroskaTrackInfoList trackInfos;
+ MatroskaAttachmentsList fileAttachments;
+ MatroskaTagList tags;
+ MatroskaChapterList chapters;
+ MatroskaSegmentInfo m_segmentInfo;
+
+ uint64 file_size;
+
+ uint64 currentFilePos; =09
+ bool keepProcessing;
+
+ //Used when parsing the a Matroska file
+ bool really_found_tags;
+ bool found_tags;
+ bool found_tracks;
+ bool found_info;
+ bool found_attachments;
+
+ bool m_parseSeekHead;
+ bool m_parseAttachments;
+ bool m_parseTags;
+ bool m_parseWholeFile;
+
+ uint64 m_tagElementPos;
+ uint64 m_tagElementSize;
+
+ uint32 cluster_count;
+ MatroskaTrackInfo *lastSelectedTrack;
+protected: =09
+ /// An function used by ParseFile() to gather data from a Infomation e=
lement
+ /// \param inputfile_stream Pointer to a EbmlStream of the opened Matr=
oska file
+ /// \param infomation_element Pointer to a EbmlElement of the Info Ele=
ment =09
+ /// \retval 0 if successful
+ int Parse_InfomationSegment(EbmlStream *inputfile_stream, EbmlElement =
*infomation_element);
+ /// An function used by ParseFile() to gather data from the Tracks ele=
ment
+ /// \param inputfile_stream Pointer to a EbmlStream of the opened Matr=
oska file
+ /// \param tracks_element Pointer to a EbmlElement of the Tracks Eleme=
nt
+ /// \retval 0 if successful
+ int Parse_Tracks(EbmlStream *inputfile_stream, EbmlElement *tracks_ele=
ment);
+ /// An function used by ParseFile() to gather data from the Tags eleme=
nt
+ /// \param inputfile_stream Pointer to a EbmlStream of the opened Matr=
oska file
+ /// \param tags_element Pointer to a EbmlElement of the Tags Element
+ /// \return The number of Tag(s) element found and parsed
+ int Parse_Tags(EbmlStream *inputfile_stream, EbmlElement *tags_element=
);
+ /// An function used by ParseFile() to gather data from the Attachment=
s element
+ /// \param inputfile_stream Pointer to a EbmlStream of the opened Matr=
oska file
+ /// \param attachments_element Pointer to a EbmlElement of the Attachm=
ent Element
+ /// \return The number of Attachments found and parsed
+ int Parse_Attachments(EbmlStream *inputfile_stream, EbmlElement *attac=
hments_element);
+ int Parse_Chapters(EbmlStream *inputfile_stream, EbmlElement *chapter_=
element);
+ int Parse_ChapterAtom(KaxChapterAtom &ChapterAtom, MatroskaChapterEntr=
y **entry);
+ =20
+ /// Updates the currentPercent locking the critcal section to be mult=
i-threaded safe
+ inline void UpdatePercentComplete(uint8 newPercent);
+
+ bool m_IsValid;
+
+ std::string m_fileReport; =09
+ UTFstring m_niceFileSize;
+
+ UTFstring m_filename; =09
+ =09
+ //I've never used this
+ //UTFstring m_fileTitle;
+
+ //uint64 m_TimecodeScale;
+ uint32 m_MetaSeekSize;
+ uint32 m_TrackSize;
+ uint32 m_CuesSize;
+
+ //Multi-Threaded stuff
+ JCCritSec m_CurrentPercent_cs;
+ uint8 m_CurrentPercent;
+};
+
+#ifdef _DEBUG =09
+//Memory Debugging
+int YourAllocHook(int allocType, void *userData, size_t size, int blockT=
ype, long requestNumber, const unsigned char *filename, int lineNumber);
+#endif
+
+};
+
+#endif // _MATROSKA_UTILS_H_
+
+
Property changes on: trunk/MatroskaUtils/MatroskaUtils.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/MatroskaUtilsBitrate.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/MatroskaUtilsBitrate.h 2007-02-17 10:34:40 UTC (r=
ev 1276)
+++ trunk/MatroskaUtils/MatroskaUtilsBitrate.h 2007-02-17 10:55:54 UTC (r=
ev 1277)
@@ -1,149 +1,149 @@
-/**
- * Part of The TCMP Matroska CDL, a plugin to access extra features of =
Matroska files with TCMP
- *
- * MatroskaUtilsBitrate.h
- *
- * Copyright (C) Jory Stone - June 2003
- *
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
-*/
-
-/*!
- \file MatroskaUtilsBitrate.h
- \version \$Id: MatroskaUtilsBitrate.h,v 1.3 2004/03/08 07:56:51 jcssto=
n Exp $
- \brief Some code to get bitrate infomation about a Matroska file
- \author Jory Stone <jcsston @ toughguy.net> =09
- =09
-*/
-
-#ifndef _MATROSKA_UTILS_BITRATE_H_
-#define _MATROSKA_UTILS_BITRATE_H_
-
-#include "MatroskaUtilsDebug.h"
-#include "MatroskaUtilsReader.h"
-#include "JString.h"
-#include "JCThread.h"
-#include "MatroskaUtils.h"
-
-//standard includes
-// We use Win32 API to directly draw our graph
-#include <windows.h>
-#include <tchar.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <math.h>
-#include <vector>
-#include <time.h>
-#include <malloc.h>
-
-// libebml includes
-#include "ebml/StdIOCallback.h"
-#include "ebml/EbmlTypes.h"
-#include "ebml/EbmlHead.h"
-#include "ebml/EbmlVoid.h"
-#include "ebml/EbmlCrc32.h"
-#include "ebml/EbmlSubHead.h"
-#include "ebml/EbmlStream.h"
-#include "ebml/EbmlBinary.h"
-#include "ebml/EbmlString.h"
-#include "ebml/EbmlUnicodeString.h"
-#include "ebml/EbmlContexts.h"
-#include "ebml/EbmlVersion.h"
-
-// libmatroska includes
-#include "matroska/KaxConfig.h"
-#include "matroska/KaxBlock.h"
-#include "matroska/KaxSegment.h"
-#include "matroska/KaxContexts.h"
-#include "matroska/KaxCluster.h"
-#include "matroska/KaxClusterData.h"
-#include "matroska/KaxBlock.h"
-#include "matroska/KaxBlockData.h"
-#include "matroska/KaxVersion.h"
-
-#define TIMECODE_SCALE 1000000
-
-namespace MatroskaUtilsNamespace {
-
-class MatroskaBitrateInfoTrack {
-public:
- MatroskaBitrateInfoTrack();
- void ProcessBitrateVector();
-
- uint64 uid;
- float minBitrate;
- float avgBitrate;
- float maxBitrate;
- std::vector<float> bitrates;
- float bitrateLength;
- double duration;
-};
-
-class MatroskaBitrateInfo;
-
-class MatroskaBitrateInfoReader : public JCThread {
-public:
- MatroskaBitrateInfoReader(MatroskaBitrateInfo *info);
- ~MatroskaBitrateInfoReader();
-
- void *Entry();
-
-protected:
- MatroskaBitrateInfo *m_Info;
- //MatroskaUilsFileReader *m_Reader;
- uint64 m_TimecodeScale;
- std::basic_string<TCHAR> &m_TextOutput;
-};
-
-#ifndef MatroskaInfoParser
-class MatroskaInfoParser;
-#endif
-
-class MatroskaBitrateInfo {
-public:
- MatroskaBitrateInfo();
- ~MatroskaBitrateInfo();
-
- int Open(MatroskaInfoParser *parser);
- int Save();
-
- int Draw(HWND hWnd, DWORD x1, DWORD y1, DWORD x2, DWORD y2);
- void SetReportTextCtrl(HWND txtCtrl);
- const std::basic_string<TCHAR> &GetReport() { return m_TextOutput; };
- uint64 GetFilePos();
- uint8 GetCurrentPercent();
- void Stop();
-protected:
- HWND m_TargetTextCtrl;
- JString m_SourceFilename;
- std::vector<MatroskaBitrateInfoTrack> m_TrackList;
-=09
- JCCritSec m_FilePosCritSec;
- uint64 m_FilePos;
- uint64 m_FileSize;
- int hr;
- MatroskaInfoParser *m_Parser;
- MatroskaBitrateInfoReader *m_Reader;
- std::basic_string<TCHAR> m_TextOutput;
-
- friend MatroskaBitrateInfoReader;
-};
-
-};
-
-#endif // _MATROSKA_UTILS_BITRATE
+/**
+ * Part of The TCMP Matroska CDL, a plugin to access extra features of =
Matroska files with TCMP
+ *
+ * MatroskaUtilsBitrate.h
+ *
+ * Copyright (C) Jory Stone - June 2003
+ *
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+*/
+
+/*!
+ \file MatroskaUtilsBitrate.h
+ \version \$Id: MatroskaUtilsBitrate.h,v 1.3 2004/03/08 07:56:51 jcssto=
n Exp $
+ \brief Some code to get bitrate infomation about a Matroska file
+ \author Jory Stone <jcsston @ toughguy.net> =09
+ =09
+*/
+
+#ifndef _MATROSKA_UTILS_BITRATE_H_
+#define _MATROSKA_UTILS_BITRATE_H_
+
+#include "MatroskaUtilsDebug.h"
+#include "MatroskaUtilsReader.h"
+#include "JString.h"
+#include "JCThread.h"
+#include "MatroskaUtils.h"
+
+//standard includes
+// We use Win32 API to directly draw our graph
+#include <windows.h>
+#include <tchar.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <math.h>
+#include <vector>
+#include <time.h>
+#include <malloc.h>
+
+// libebml includes
+#include "ebml/StdIOCallback.h"
+#include "ebml/EbmlTypes.h"
+#include "ebml/EbmlHead.h"
+#include "ebml/EbmlVoid.h"
+#include "ebml/EbmlCrc32.h"
+#include "ebml/EbmlSubHead.h"
+#include "ebml/EbmlStream.h"
+#include "ebml/EbmlBinary.h"
+#include "ebml/EbmlString.h"
+#include "ebml/EbmlUnicodeString.h"
+#include "ebml/EbmlContexts.h"
+#include "ebml/EbmlVersion.h"
+
+// libmatroska includes
+#include "matroska/KaxConfig.h"
+#include "matroska/KaxBlock.h"
+#include "matroska/KaxSegment.h"
+#include "matroska/KaxContexts.h"
+#include "matroska/KaxCluster.h"
+#include "matroska/KaxClusterData.h"
+#include "matroska/KaxBlock.h"
+#include "matroska/KaxBlockData.h"
+#include "matroska/KaxVersion.h"
+
+#define TIMECODE_SCALE 1000000
+
+namespace MatroskaUtilsNamespace {
+
+class MatroskaBitrateInfoTrack {
+public:
+ MatroskaBitrateInfoTrack();
+ void ProcessBitrateVector();
+
+ uint64 uid;
+ float minBitrate;
+ float avgBitrate;
+ float maxBitrate;
+ std::vector<float> bitrates;
+ float bitrateLength;
+ double duration;
+};
+
+class MatroskaBitrateInfo;
+
+class MatroskaBitrateInfoReader : public JCThread {
+public:
+ MatroskaBitrateInfoReader(MatroskaBitrateInfo *info);
+ ~MatroskaBitrateInfoReader();
+
+ void *Entry();
+
+protected:
+ MatroskaBitrateInfo *m_Info;
+ //MatroskaUilsFileReader *m_Reader;
+ uint64 m_TimecodeScale;
+ std::basic_string<TCHAR> &m_TextOutput;
+};
+
+#ifndef MatroskaInfoParser
+class MatroskaInfoParser;
+#endif
+
+class MatroskaBitrateInfo {
+public:
+ MatroskaBitrateInfo();
+ ~MatroskaBitrateInfo();
+
+ int Open(MatroskaInfoParser *parser);
+ int Save();
+
+ int Draw(HWND hWnd, DWORD x1, DWORD y1, DWORD x2, DWORD y2);
+ void SetReportTextCtrl(HWND txtCtrl);
+ const std::basic_string<TCHAR> &GetReport() { return m_TextOutput; };
+ uint64 GetFilePos();
+ uint8 GetCurrentPercent();
+ void Stop();
+protected:
+ HWND m_TargetTextCtrl;
+ JString m_SourceFilename;
+ std::vector<MatroskaBitrateInfoTrack> m_TrackList;
+=09
+ JCCritSec m_FilePosCritSec;
+ uint64 m_FilePos;
+ uint64 m_FileSize;
+ int hr;
+ MatroskaInfoParser *m_Parser;
+ MatroskaBitrateInfoReader *m_Reader;
+ std::basic_string<TCHAR> m_TextOutput;
+
+ friend MatroskaBitrateInfoReader;
+};
+
+};
+
+#endif // _MATROSKA_UTILS_BITRATE
Property changes on: trunk/MatroskaUtils/MatroskaUtilsBitrate.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/MatroskaUtilsDebug.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/MatroskaUtilsDebug.h 2007-02-17 10:34:40 UTC (rev=
1276)
+++ trunk/MatroskaUtils/MatroskaUtilsDebug.h 2007-02-17 10:55:54 UTC (rev=
1277)
@@ -1,203 +1,203 @@
-/*
- * Part of The TCMP Matroska CDL, and Matroska Shell Extension
- *
- * MatroskaUtilsDebug.h
- *
- * Copyright (C) Jory Stone - June 2003
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
-*/
-
-/*!
- \file MatroskaUtilsDebug.h
- \version \$Id: MatroskaUtilsDebug.h,v 1.23 2004/02/20 06:12:32 jcsston=
Exp $
- \brief This is where the debugging defines go
- \author Jory Stone <jcsston @ toughguy.net>
-
-*/
-
-#ifndef _MATROSKA_UTILS_DEBUG_H_
-#define _MATROSKA_UTILS_DEBUG_H_
-
-#ifdef DEBUG_MEM
-#ifdef _DEBUG
- #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)
-#else
- #define DEBUG_CLIENTBLOCK
-#endif // _DEBUG
-
-#ifdef _DEBUG
-#define new DEBUG_CLIENTBLOCK
-#endif
-#endif
-
-#ifdef USING_GETTTEXT
-#define USE_SAFE_GETTEXT_DLL
-#include <libintl.h>
-#include "safe_gettext_dll.h"
-// Simple macro for faster typing
-#define _(String) gettext(String)
-#ifdef _UNICODE
-#define _W(String) gettextW(String)
-#else
-#define _W(String) gettext(String)
-#endif
-#else
-#define _(String) String
-#ifdef _UNICODE
-#define _W2(x) L ## x
-#define _W(x) _W2(x)
-#else
-#define _W(String) (String)
-#endif
-#endif
-
-#include <windows.h>
-#include <tchar.h>
-#include <sstream>
-#include <exception>
-#include "JString.h"
-
-#define MAX_MATROSKA_PATH MAX_PATH*2
-
-#ifdef DEBUG
-// The crash handling code can get in the way of debuggers
-#define CRASH_PROTECT_START
-#define CRASH_PROTECT_END
-#endif
-
-#ifdef MATROSKA_INFO
-// The info dll is stripped down for size
-#define CRASH_PROTECT_START
-#define CRASH_PROTECT_END
-#endif
-
-#define CRASH_PROTECT_BREAKPOINT
-
-#ifndef CRASH_PROTECT_BREAKPOINT
-#define CRASH_PROTECT_BREAKPOINT \
- { \
- std::ostringstream buf; \
- buf << ("Breakpoint,\nFile: " __FILE__ "\nFunction: " __FUNCTION__ "\n=
Line:"); \
- buf << __LINE__; \
- MessageBoxA(NULL, buf.str().c_str(), "Breakpoint", MB_TASKMODAL); \
- }
-#endif
-
-#ifndef CRASH_PROTECT_START
-#define CRASH_PROTECT_START try {
-#endif
-#ifndef CRASH_PROTECT_END
-#define CRASH_PROTECT_END \
- } catch (std::exception &ex) { \
- std::ostringstream buf; \
- buf << "Exception: "; \
- buf << ex.what(); \
- buf << ("\nFile: " __FILE__ "\nFunction: " __FUNCTION__ "\nLine:"); \
- buf << __LINE__; \
- buf << "\nTry to generate bug report?"; \
- int msgBoxRet =3D MessageBoxA(NULL, buf.str().c_str(), "Error", MB_YES=
NO|MB_TASKMODAL); \
- if (msgBoxRet =3D=3D IDYES) { \
- throw; \
- } \
- } catch (...) { \
- std::ostringstream buf; \
- buf << ("Unhandled Exception,\nFile: " __FILE__ "\nFunction: " __FUNCT=
ION__ "\nLine:"); \
- buf << __LINE__; \
- buf << "\nTry to generate bug report?"; \
- int msgBoxRet =3D MessageBoxA(NULL, buf.str().c_str(), "Error", MB_YES=
NO|MB_TASKMODAL); \
- if (msgBoxRet =3D=3D IDYES) { \
- throw; \
- } \
- };
-#define CRASH_PROTECT_END_EXTRA(extra_info) \
- } catch (std::exception &ex) { \
- std::ostringstream buf; \
- buf << "Exception: "; \
- buf << ex.what(); \
- buf << ("\nFile: " __FILE__ "\nFunction: " __FUNCTION__ "\nLine:"); \
- buf << __LINE__; \
- buf << ("\nExtra: "); \
- buf << extra_info; \
- buf << "\nTry to generate bug report?"; \
- int msgBoxRet =3D MessageBoxA(NULL, buf.str().c_str(), "Error", MB_YES=
NO|MB_TASKMODAL); \
- if (msgBoxRet =3D=3D IDYES) { \
- throw; \
- } \
- } catch (...) { \
- std::ostringstream buf; \
- buf << ("Unhandled Exception,\nFile: " __FILE__ "\nFunction: " __FUNCT=
ION__ "\nLine:"); \
- buf << __LINE__; \
- buf << ("\nExtra: "); \
- buf << extra_info; \
- buf << "\nTry to generate bug report?"; \
- int msgBoxRet =3D MessageBoxA(NULL, buf.str().c_str(), "Error", MB_YES=
NO|MB_TASKMODAL); \
- if (msgBoxRet =3D=3D IDYES) { \
- throw; \
- } \
- };
-#endif
-
-#include "DbgOut.h"
-
-#ifndef wcsicmp
-#define wcsicmp _wcsicmp
-#endif
-
-#ifndef snprintf
-#define snprintf _snprintf
-#endif
-
-#ifndef snwprintf
-#define snwprintf _snwprintf=20
-#endif
-
-#ifdef _atoi64
-#define atoi64(x) _atoi64(x)
-#else
-#ifdef strtoll=20
-#define atoi64(x) strtoll(x)
-#else
-#ifdef atoll
-#define atoi64(x) strtoll(x)
-#else
-#define atoi64(x) atol(x)
-#endif
-#endif
-#endif
-
-#ifndef stricmp
-#ifdef _stricmp
-#define stricmp _stricmp
-#else
-#ifdef strcmpi
-// Zen reported a strange problem with the Borland C++ Builder compiler
-// having the strcmpi and yet not having a strcmpi function
-#if !defined (__BORLANDC__)
-#define stricmp strcmpi
-#endif //__BORLANDC__
-#else
-#ifdef strcasecmp
-#define stricmp strcasecmp
-#else
-#define stricmp strcmp
-#endif
-#endif
-#endif
-#endif
-
-#endif // _MATROSKA_UTILS_DEBUG_H_
-
+/*
+ * Part of The TCMP Matroska CDL, and Matroska Shell Extension
+ *
+ * MatroskaUtilsDebug.h
+ *
+ * Copyright (C) Jory Stone - June 2003
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+*/
+
+/*!
+ \file MatroskaUtilsDebug.h
+ \version \$Id: MatroskaUtilsDebug.h,v 1.23 2004/02/20 06:12:32 jcsston=
Exp $
+ \brief This is where the debugging defines go
+ \author Jory Stone <jcsston @ toughguy.net>
+
+*/
+
+#ifndef _MATROSKA_UTILS_DEBUG_H_
+#define _MATROSKA_UTILS_DEBUG_H_
+
+#ifdef DEBUG_MEM
+#ifdef _DEBUG
+ #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)
+#else
+ #define DEBUG_CLIENTBLOCK
+#endif // _DEBUG
+
+#ifdef _DEBUG
+#define new DEBUG_CLIENTBLOCK
+#endif
+#endif
+
+#ifdef USING_GETTTEXT
+#define USE_SAFE_GETTEXT_DLL
+#include <libintl.h>
+#include "safe_gettext_dll.h"
+// Simple macro for faster typing
+#define _(String) gettext(String)
+#ifdef _UNICODE
+#define _W(String) gettextW(String)
+#else
+#define _W(String) gettext(String)
+#endif
+#else
+#define _(String) String
+#ifdef _UNICODE
+#define _W2(x) L ## x
+#define _W(x) _W2(x)
+#else
+#define _W(String) (String)
+#endif
+#endif
+
+#include <windows.h>
+#include <tchar.h>
+#include <sstream>
+#include <exception>
+#include "JString.h"
+
+#define MAX_MATROSKA_PATH MAX_PATH*2
+
+#ifdef DEBUG
+// The crash handling code can get in the way of debuggers
+#define CRASH_PROTECT_START
+#define CRASH_PROTECT_END
+#endif
+
+#ifdef MATROSKA_INFO
+// The info dll is stripped down for size
+#define CRASH_PROTECT_START
+#define CRASH_PROTECT_END
+#endif
+
+#define CRASH_PROTECT_BREAKPOINT
+
+#ifndef CRASH_PROTECT_BREAKPOINT
+#define CRASH_PROTECT_BREAKPOINT \
+ { \
+ std::ostringstream buf; \
+ buf << ("Breakpoint,\nFile: " __FILE__ "\nFunction: " __FUNCTION__ "\n=
Line:"); \
+ buf << __LINE__; \
+ MessageBoxA(NULL, buf.str().c_str(), "Breakpoint", MB_TASKMODAL); \
+ }
+#endif
+
+#ifndef CRASH_PROTECT_START
+#define CRASH_PROTECT_START try {
+#endif
+#ifndef CRASH_PROTECT_END
+#define CRASH_PROTECT_END \
+ } catch (std::exception &ex) { \
+ std::ostringstream buf; \
+ buf << "Exception: "; \
+ buf << ex.what(); \
+ buf << ("\nFile: " __FILE__ "\nFunction: " __FUNCTION__ "\nLine:"); \
+ buf << __LINE__; \
+ buf << "\nTry to generate bug report?"; \
+ int msgBoxRet =3D MessageBoxA(NULL, buf.str().c_str(), "Error", MB_YES=
NO|MB_TASKMODAL); \
+ if (msgBoxRet =3D=3D IDYES) { \
+ throw; \
+ } \
+ } catch (...) { \
+ std::ostringstream buf; \
+ buf << ("Unhandled Exception,\nFile: " __FILE__ "\nFunction: " __FUNCT=
ION__ "\nLine:"); \
+ buf << __LINE__; \
+ buf << "\nTry to generate bug report?"; \
+ int msgBoxRet =3D MessageBoxA(NULL, buf.str().c_str(), "Error", MB_YES=
NO|MB_TASKMODAL); \
+ if (msgBoxRet =3D=3D IDYES) { \
+ throw; \
+ } \
+ };
+#define CRASH_PROTECT_END_EXTRA(extra_info) \
+ } catch (std::exception &ex) { \
+ std::ostringstream buf; \
+ buf << "Exception: "; \
+ buf << ex.what(); \
+ buf << ("\nFile: " __FILE__ "\nFunction: " __FUNCTION__ "\nLine:"); \
+ buf << __LINE__; \
+ buf << ("\nExtra: "); \
+ buf << extra_info; \
+ buf << "\nTry to generate bug report?"; \
+ int msgBoxRet =3D MessageBoxA(NULL, buf.str().c_str(), "Error", MB_YES=
NO|MB_TASKMODAL); \
+ if (msgBoxRet =3D=3D IDYES) { \
+ throw; \
+ } \
+ } catch (...) { \
+ std::ostringstream buf; \
+ buf << ("Unhandled Exception,\nFile: " __FILE__ "\nFunction: " __FUNCT=
ION__ "\nLine:"); \
+ buf << __LINE__; \
+ buf << ("\nExtra: "); \
+ buf << extra_info; \
+ buf << "\nTry to generate bug report?"; \
+ int msgBoxRet =3D MessageBoxA(NULL, buf.str().c_str(), "Error", MB_YES=
NO|MB_TASKMODAL); \
+ if (msgBoxRet =3D=3D IDYES) { \
+ throw; \
+ } \
+ };
+#endif
+
+#include "DbgOut.h"
+
+#ifndef wcsicmp
+#define wcsicmp _wcsicmp
+#endif
+
+#ifndef snprintf
+#define snprintf _snprintf
+#endif
+
+#ifndef snwprintf
+#define snwprintf _snwprintf=20
+#endif
+
+#ifdef _atoi64
+#define atoi64(x) _atoi64(x)
+#else
+#ifdef strtoll=20
+#define atoi64(x) strtoll(x)
+#else
+#ifdef atoll
+#define atoi64(x) strtoll(x)
+#else
+#define atoi64(x) atol(x)
+#endif
+#endif
+#endif
+
+#ifndef stricmp
+#ifdef _stricmp
+#define stricmp _stricmp
+#else
+#ifdef strcmpi
+// Zen reported a strange problem with the Borland C++ Builder compiler
+// having the strcmpi and yet not having a strcmpi function
+#if !defined (__BORLANDC__)
+#define stricmp strcmpi
+#endif //__BORLANDC__
+#else
+#ifdef strcasecmp
+#define stricmp strcasecmp
+#else
+#define stricmp strcmp
+#endif
+#endif
+#endif
+#endif
+
+#endif // _MATROSKA_UTILS_DEBUG_H_
+
Property changes on: trunk/MatroskaUtils/MatroskaUtilsDebug.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/MatroskaUtilsReader.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/MatroskaUtilsReader.h 2007-02-17 10:34:40 UTC (re=
v 1276)
+++ trunk/MatroskaUtils/MatroskaUtilsReader.h 2007-02-17 10:55:54 UTC (re=
v 1277)
@@ -1,118 +1,118 @@
-/*
- * Part of The TCMP Matroska CDL, and Matroska Shell Extension
- *
- * MatroskaUtilsReader.h
- *
- * Copyright (C) Jory Stone - October 2003
- *
- * Parts of the XCD parsing code based on code from alexnoe's AVIMux-GU=
I
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file MatroskaUtilsReader.h
- \version \$Id: MatroskaUtilsReader.h,v 1.6 2004/02/18 06:52:18 jcsston=
Exp $
- \brief File IOCallback class Reader, supports XCD
- \author Jory Stone <jcsston @ toughguy.net>
-
-*/
-#ifndef _MATROSKAUTILS_READER_H_
-#define _MATROSKAUTILS_READER_H_
-
-#include "JString.h"
-#include "ebml/EbmlCrc32.h"
-#include "ebml/IOCallback.h"
-#include "ebml/StdIOCallback.h"
-#include "ebml/MemIOCallback.h"
-#ifdef WIN32
-#include "WinIOCallback.h"
-#endif // WIN32
-
-using namespace LIBEBML_NAMESPACE;
-
-namespace MatroskaUtilsNamespace {
-
-#define CHECK_XCD_HEADER(x) \
- (x[0] =3D=3D 0x00 && x[1] =3D=3D 0xFF && x[2] =3D=3D 0xFF && x[3] =3D=3D=
0xFF && \
- x[4] =3D=3D 0xFF && x[5] =3D=3D 0xFF && x[6] =3D=3D 0xFF && x[7] =3D=3D=
0xFF && \
- x[8] =3D=3D 0xFF && x[9] =3D=3D 0xFF && x[10] =3D=3D 0xFF && x[11] =3D=
=3D 0x00)
-
-#define XCD_SECTOR_SIZE 2352
-#define XCD_SECTOR_DATA_SIZE 2324
-
-#define MakeFourCC(chStr) \
- ((DWORD)(BYTE)(chStr[0]) | ((DWORD)(BYTE)(chStr[1]) << 8=
) | \
- ((DWORD)(BYTE)(chStr[2]) << 16) | ((DWORD)(BYTE)(chStr[3=
]) << 24 ))
-
-struct CHUNKHEADER
-{
- DWORD dwFourCC;
- DWORD dwLength;
-};
-
-struct LISTHEADER
-{
- DWORD dwListID;
- DWORD dwLength;
- DWORD dwFourCC;
-};
-
-struct XCDSECTOR {
- byte sync[12];
- byte header[4];
- byte subheader[8];
- byte data[2324];
- byte edc[4];
-};
-
-class MatroskaUilsFileReader : public IOCallback
-{
-public:
- MatroskaUilsFileReader(const char *Path, const open_mode Mode);
- MatroskaUilsFileReader(const wchar_t *Path, const open_mode Mode);
- ~MatroskaUilsFileReader();
-
- virtual uint32 read(void *Buffer, size_t Size);
- virtual size_t write(const void *Buffer, size_t Size);
- virtual void setFilePointer(int64 Offset, seek_mode Mode=3Dseek_beginni=
ng);
- virtual uint64 getFilePointer();
- virtual void close();
- =20
- virtual bool IsOk() { return m_fileHandle->IsOk(); };
- virtual bool IsXCD() { return m_IsXCD; };
- =20
- WinIOCallback *GetWinIOCallback() { return m_fileHandle; };
-protected:
- inline void Setup();
- inline bool ReadNextXCDSector();
- =20
- WinIOCallback *m_fileHandle;
- // XCD stuff
- bool m_IsXCD;
- bool b_bCheckCRC32;
- // The translated file size/pos if the source is a XCD
- uint64 m_VirtualFileSize;
- uint64 m_VirtualFilePos;
- uint32 m_SectorCount;
- uint32 m_CurrentSectorNo;
- uint16 m_CurrentSectorDataPos;
- XCDSECTOR m_CurrentSector;
-};
-
-}; //End MatroskaUtilsNamespace
-
-#endif // _MATROSKAUTILS_READER_H_
+/*
+ * Part of The TCMP Matroska CDL, and Matroska Shell Extension
+ *
+ * MatroskaUtilsReader.h
+ *
+ * Copyright (C) Jory Stone - October 2003
+ *
+ * Parts of the XCD parsing code based on code from alexnoe's AVIMux-GU=
I
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file MatroskaUtilsReader.h
+ \version \$Id: MatroskaUtilsReader.h,v 1.6 2004/02/18 06:52:18 jcsston=
Exp $
+ \brief File IOCallback class Reader, supports XCD
+ \author Jory Stone <jcsston @ toughguy.net>
+
+*/
+#ifndef _MATROSKAUTILS_READER_H_
+#define _MATROSKAUTILS_READER_H_
+
+#include "JString.h"
+#include "ebml/EbmlCrc32.h"
+#include "ebml/IOCallback.h"
+#include "ebml/StdIOCallback.h"
+#include "ebml/MemIOCallback.h"
+#ifdef WIN32
+#include "WinIOCallback.h"
+#endif // WIN32
+
+using namespace LIBEBML_NAMESPACE;
+
+namespace MatroskaUtilsNamespace {
+
+#define CHECK_XCD_HEADER(x) \
+ (x[0] =3D=3D 0x00 && x[1] =3D=3D 0xFF && x[2] =3D=3D 0xFF && x[3] =3D=3D=
0xFF && \
+ x[4] =3D=3D 0xFF && x[5] =3D=3D 0xFF && x[6] =3D=3D 0xFF && x[7] =3D=3D=
0xFF && \
+ x[8] =3D=3D 0xFF && x[9] =3D=3D 0xFF && x[10] =3D=3D 0xFF && x[11] =3D=
=3D 0x00)
+
+#define XCD_SECTOR_SIZE 2352
+#define XCD_SECTOR_DATA_SIZE 2324
+
+#define MakeFourCC(chStr) \
+ ((DWORD)(BYTE)(chStr[0]) | ((DWORD)(BYTE)(chStr[1]) << 8=
) | \
+ ((DWORD)(BYTE)(chStr[2]) << 16) | ((DWORD)(BYTE)(chStr[3=
]) << 24 ))
+
+struct CHUNKHEADER
+{
+ DWORD dwFourCC;
+ DWORD dwLength;
+};
+
+struct LISTHEADER
+{
+ DWORD dwListID;
+ DWORD dwLength;
+ DWORD dwFourCC;
+};
+
+struct XCDSECTOR {
+ byte sync[12];
+ byte header[4];
+ byte subheader[8];
+ byte data[2324];
+ byte edc[4];
+};
+
+class MatroskaUilsFileReader : public IOCallback
+{
+public:
+ MatroskaUilsFileReader(const char *Path, const open_mode Mode);
+ MatroskaUilsFileReader(const wchar_t *Path, const open_mode Mode);
+ ~MatroskaUilsFileReader();
+
+ virtual uint32 read(void *Buffer, size_t Size);
+ virtual size_t write(const void *Buffer, size_t Size);
+ virtual void setFilePointer(int64 Offset, seek_mode Mode=3Dseek_beginni=
ng);
+ virtual uint64 getFilePointer();
+ virtual void close();
+ =20
+ virtual bool IsOk() { return m_fileHandle->IsOk(); };
+ virtual bool IsXCD() { return m_IsXCD; };
+ =20
+ WinIOCallback *GetWinIOCallback() { return m_fileHandle; };
+protected:
+ inline void Setup();
+ inline bool ReadNextXCDSector();
+ =20
+ WinIOCallback *m_fileHandle;
+ // XCD stuff
+ bool m_IsXCD;
+ bool b_bCheckCRC32;
+ // The translated file size/pos if the source is a XCD
+ uint64 m_VirtualFileSize;
+ uint64 m_VirtualFilePos;
+ uint32 m_SectorCount;
+ uint32 m_CurrentSectorNo;
+ uint16 m_CurrentSectorDataPos;
+ XCDSECTOR m_CurrentSector;
+};
+
+}; //End MatroskaUtilsNamespace
+
+#endif // _MATROSKAUTILS_READER_H_
Property changes on: trunk/MatroskaUtils/MatroskaUtilsReader.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/ShellExtension/CheckUsage/CheckUsage.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/ShellExtension/CheckUsage/CheckUsage.h 2007-02-17=
10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/ShellExtension/CheckUsage/CheckUsage.h 2007-02-17=
10:55:54 UTC (rev 1277)
@@ -1,19 +1,19 @@
-
-#ifndef _CHECK_USAGE_H_
-#define _CHECK_USAGE_H_
-
-#include <windows.h>
-#include <commctrl.h>
-#include <Psapi.h>
-#include <tlhelp32.h>
-#include "resource.h"
-
-
-int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTST=
R lpCmdLine, int nCmdShow);
-BOOL CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa=
ram);
-void RefreshProcessList(HWND hWndListView);
-
-BOOL GetProcessList(HWND hWndListView);
-BOOL FindMatroskaPropModule(DWORD dwPID, LPMODULEENTRY32 lpMe32, DWORD c=
bMe32);
-
-#endif // _CHECK_USAGE_H_
+
+#ifndef _CHECK_USAGE_H_
+#define _CHECK_USAGE_H_
+
+#include <windows.h>
+#include <commctrl.h>
+#include <Psapi.h>
+#include <tlhelp32.h>
+#include "resource.h"
+
+
+int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTST=
R lpCmdLine, int nCmdShow);
+BOOL CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa=
ram);
+void RefreshProcessList(HWND hWndListView);
+
+BOOL GetProcessList(HWND hWndListView);
+BOOL FindMatroskaPropModule(DWORD dwPID, LPMODULEENTRY32 lpMe32, DWORD c=
bMe32);
+
+#endif // _CHECK_USAGE_H_
Property changes on: trunk/MatroskaUtils/ShellExtension/CheckUsage/CheckU=
sage.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/ShellExtension/CheckUsage/resource.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/ShellExtension/CheckUsage/resource.h 2007-02-17 1=
0:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/ShellExtension/CheckUsage/resource.h 2007-02-17 1=
0:55:54 UTC (rev 1277)
@@ -1,35 +1,35 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Developer Studio generated include file.
-// Used by CheckUsage.rc
-//
-#define IDC_MYICON 2
-#define IDD_CHECKUSAGE_DIALOG 102
-#define IDS_APP_TITLE 103
-#define IDD_ABOUTBOX 103
-#define IDM_ABOUT 104
-#define IDM_EXIT 105
-#define IDI_CHECKUSAGE 107
-#define IDI_SMALL 108
-#define IDC_CHECKUSAGE 109
-#define IDR_MAINFRAME 128
-#define IDD_DIALOG_USAGE 129
-#define IDI_ICON_WRENCH 130
-#define IDC_BUTTON_CLOSE 1000
-#define IDC_BUTTON_REFRESH 1001
-#define IDC_LIST_PROCESS_LIST 1002
-#define IDC_STATIC_GLOBAL_USAGE_COUNT 1004
-#define IDC_BUTTON_KILL_PROCESS 1005
-#define IDC_BUTTON_FORCE_UNLOAD 1006
-#define IDC_STATIC -1
-
-// Next default values for new objects
-//=20
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NO_MFC 1
-#define _APS_NEXT_RESOURCE_VALUE 131
-#define _APS_NEXT_COMMAND_VALUE 32771
-#define _APS_NEXT_CONTROL_VALUE 1007
-#define _APS_NEXT_SYMED_VALUE 110
-#endif
-#endif
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by CheckUsage.rc
+//
+#define IDC_MYICON 2
+#define IDD_CHECKUSAGE_DIALOG 102
+#define IDS_APP_TITLE 103
+#define IDD_ABOUTBOX 103
+#define IDM_ABOUT 104
+#define IDM_EXIT 105
+#define IDI_CHECKUSAGE 107
+#define IDI_SMALL 108
+#define IDC_CHECKUSAGE 109
+#define IDR_MAINFRAME 128
+#define IDD_DIALOG_USAGE 129
+#define IDI_ICON_WRENCH 130
+#define IDC_BUTTON_CLOSE 1000
+#define IDC_BUTTON_REFRESH 1001
+#define IDC_LIST_PROCESS_LIST 1002
+#define IDC_STATIC_GLOBAL_USAGE_COUNT 1004
+#define IDC_BUTTON_KILL_PROCESS 1005
+#define IDC_BUTTON_FORCE_UNLOAD 1006
+#define IDC_STATIC -1
+
+// Next default values for new objects
+//=20
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NO_MFC 1
+#define _APS_NEXT_RESOURCE_VALUE 131
+#define _APS_NEXT_COMMAND_VALUE 32771
+#define _APS_NEXT_CONTROL_VALUE 1007
+#define _APS_NEXT_SYMED_VALUE 110
+#endif
+#endif
Property changes on: trunk/MatroskaUtils/ShellExtension/CheckUsage/resour=
ce.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/ShellExtension/DShowTools/DShowTools.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/ShellExtension/DShowTools/DShowTools.h 2007-02-17=
10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/ShellExtension/DShowTools/DShowTools.h 2007-02-17=
10:55:54 UTC (rev 1277)
@@ -1,52 +1,52 @@
-/*
- * Part of the Matroska Shell Extension
- *
- * DShowTools.h
- *
- * Copyright (C) Jory Stone - June 2003
- *
- * The Matroska Shell Extension 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, or (at your option)
- * any later version.
- *
- * The Matroska Shell Extension 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 the Matroska Shell Extension; see the file COPYING. If n=
ot, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file CxImageRenderer.h
- \version \$Id: DShowTools.h,v 1.3 2004/03/08 07:56:51 jcsston Exp $
- \brief A DirectShow Video Renderer that renders the image to a CxIma=
ge
- \author Jory Stone <jcsston @ toughguy.net>
-
-*/
-
-#ifndef _CXIMAGE_RENDERER_H_
-#define _CXIMAGE_RENDERER_H_
-
-#include <windows.h>
-#include "CxImage/ximage.h"
-
-#define DSHOWTOOLS_DLL_EXPORT
-#ifndef DSHOWTOOLS_DLL_EXPORT
-#ifdef DSHOWTOOLS_DLL
-#define DSHOWTOOLS_DLL_EXPORT __declspec(dllexport)
-#else
-#define DSHOWTOOLS_DLL_EXPORT __declspec(dllimport)
-#endif
-#endif
-
-// Mode 1 =3D CxImageRenderer
-// Mode 2 =3D IMediaDet
-extern "C" HRESULT DSHOWTOOLS_DLL_EXPORT GetDShowPreview(LPCWSTR filenam=
e, DWORD second_offset, DWORD timeout, DWORD mode, CxImage *image);
-extern "C" HRESULT DSHOWTOOLS_DLL_EXPORT PlayFile(LPCWSTR filename, DWOR=
D mode);
-
-#endif // _CXIMAGE_RENDERER_H_
+/*
+ * Part of the Matroska Shell Extension
+ *
+ * DShowTools.h
+ *
+ * Copyright (C) Jory Stone - June 2003
+ *
+ * The Matroska Shell Extension 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, or (at your option)
+ * any later version.
+ *
+ * The Matroska Shell Extension 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 the Matroska Shell Extension; see the file COPYING. If n=
ot, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file CxImageRenderer.h
+ \version \$Id: DShowTools.h,v 1.3 2004/03/08 07:56:51 jcsston Exp $
+ \brief A DirectShow Video Renderer that renders the image to a CxIma=
ge
+ \author Jory Stone <jcsston @ toughguy.net>
+
+*/
+
+#ifndef _CXIMAGE_RENDERER_H_
+#define _CXIMAGE_RENDERER_H_
+
+#include <windows.h>
+#include "CxImage/ximage.h"
+
+#define DSHOWTOOLS_DLL_EXPORT
+#ifndef DSHOWTOOLS_DLL_EXPORT
+#ifdef DSHOWTOOLS_DLL
+#define DSHOWTOOLS_DLL_EXPORT __declspec(dllexport)
+#else
+#define DSHOWTOOLS_DLL_EXPORT __declspec(dllimport)
+#endif
+#endif
+
+// Mode 1 =3D CxImageRenderer
+// Mode 2 =3D IMediaDet
+extern "C" HRESULT DSHOWTOOLS_DLL_EXPORT GetDShowPreview(LPCWSTR filenam=
e, DWORD second_offset, DWORD timeout, DWORD mode, CxImage *image);
+extern "C" HRESULT DSHOWTOOLS_DLL_EXPORT PlayFile(LPCWSTR filename, DWOR=
D mode);
+
+#endif // _CXIMAGE_RENDERER_H_
Property changes on: trunk/MatroskaUtils/ShellExtension/DShowTools/DShowT=
ools.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/ShellExtension/DShowTools/convert.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/ShellExtension/DShowTools/convert.h 2007-02-17 10=
:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/ShellExtension/DShowTools/convert.h 2007-02-17 10=
:55:54 UTC (rev 1277)
@@ -1,67 +1,67 @@
-/*
- * Part of the Matroska Shell Extension
- *
- * convert.h
- *
- * Copyright (C) Jory Stone - March 2004
- *
- * The Matroska Shell Extension 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, or (at your option)
- * any later version.
- *
- * The Matroska Shell Extension 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 the Matroska Shell Extension; see the file COPYING. If n=
ot, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file convert.h
- \version \$Id: convert.h,v 1.2 2004/04/28 04:21:55 jcsston Exp $
- \brief YUV Image Conversion Code
- \author Jory Stone <jcsston @ toughguy.net>
-*/
-
-#ifndef _CONVERT_H_
-#define _CONVERT_H_
-
-#include <windows.h>
-
-extern "C" {
-//Declare for assembly YUV2->RGB32 conversion
-void _stdcall YUV422toRGB_MMX(void* lpIn,void* lpOut,DWORD dwFlags,DWORD=
dwWidth,DWORD dwHeight,DWORD dwSPitch,DWORD dwDPitch);
-void _stdcall YUV422toRGB24_MMX(void* lpIn,void* lpOut,DWORD dwFlags,DWO=
RD dwWidth,DWORD dwHeight,DWORD dwSPitch,DWORD dwDPitch);
-//I don't use these, but it's nice to have the declares
-void _stdcall RGBtoYCrCb_SSE2(void* lpIn,void* lpOut,DWORD dwFlags,DWORD=
dwWidth,DWORD dwHeight,DWORD dwSPitch,DWORD dwDPitch);=20
-void _stdcall RGBtoYUV422_SSE2(void* lpIn,void* lpOut,DWORD dwFlags,DWOR=
D dwWidth,DWORD dwHeight,DWORD dwSPitch,DWORD dwDPitch);=20
-};
-
-// from convert_yv12.cpp
-void mmx_yv12_to_yuy2(const BYTE* srcY, const BYTE* srcU, const BYTE* sr=
cV, int src_rowsize, int src_pitch, int src_pitch_uv,=20
- BYTE* dst, int dst_pitch,
- int height);
-
-// from convert_xvid.cpp
-void yv12_to_rgb32_mmx(BYTE *dst,=20
- int dst_stride,=20
- const BYTE *y_src,
- const BYTE *u_src,
- const BYTE *v_src,=20
- int y_stride, int uv_stride,
- int width, int height);
-void yv12_to_rgb24_mmx(BYTE *dst, //Currently not used (buggy!)
- int dst_stride,=20
- const BYTE *y_src,
- const BYTE *u_src,
- const BYTE *v_src,=20
- int y_stride, int uv_stride,
- int width, int height);
-
-
-#endif // _CONVERT_H_
+/*
+ * Part of the Matroska Shell Extension
+ *
+ * convert.h
+ *
+ * Copyright (C) Jory Stone - March 2004
+ *
+ * The Matroska Shell Extension 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, or (at your option)
+ * any later version.
+ *
+ * The Matroska Shell Extension 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 the Matroska Shell Extension; see the file COPYING. If n=
ot, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file convert.h
+ \version \$Id: convert.h,v 1.2 2004/04/28 04:21:55 jcsston Exp $
+ \brief YUV Image Conversion Code
+ \author Jory Stone <jcsston @ toughguy.net>
+*/
+
+#ifndef _CONVERT_H_
+#define _CONVERT_H_
+
+#include <windows.h>
+
+extern "C" {
+//Declare for assembly YUV2->RGB32 conversion
+void _stdcall YUV422toRGB_MMX(void* lpIn,void* lpOut,DWORD dwFlags,DWORD=
dwWidth,DWORD dwHeight,DWORD dwSPitch,DWORD dwDPitch);
+void _stdcall YUV422toRGB24_MMX(void* lpIn,void* lpOut,DWORD dwFlags,DWO=
RD dwWidth,DWORD dwHeight,DWORD dwSPitch,DWORD dwDPitch);
+//I don't use these, but it's nice to have the declares
+void _stdcall RGBtoYCrCb_SSE2(void* lpIn,void* lpOut,DWORD dwFlags,DWORD=
dwWidth,DWORD dwHeight,DWORD dwSPitch,DWORD dwDPitch);=20
+void _stdcall RGBtoYUV422_SSE2(void* lpIn,void* lpOut,DWORD dwFlags,DWOR=
D dwWidth,DWORD dwHeight,DWORD dwSPitch,DWORD dwDPitch);=20
+};
+
+// from convert_yv12.cpp
+void mmx_yv12_to_yuy2(const BYTE* srcY, const BYTE* srcU, const BYTE* sr=
cV, int src_rowsize, int src_pitch, int src_pitch_uv,=20
+ BYTE* dst, int dst_pitch,
+ int height);
+
+// from convert_xvid.cpp
+void yv12_to_rgb32_mmx(BYTE *dst,=20
+ int dst_stride,=20
+ const BYTE *y_src,
+ const BYTE *u_src,
+ const BYTE *v_src,=20
+ int y_stride, int uv_stride,
+ int width, int height);
+void yv12_to_rgb24_mmx(BYTE *dst, //Currently not used (buggy!)
+ int dst_stride,=20
+ const BYTE *y_src,
+ const BYTE *u_src,
+ const BYTE *v_src,=20
+ int y_stride, int uv_stride,
+ int width, int height);
+
+
+#endif // _CONVERT_H_
Property changes on: trunk/MatroskaUtils/ShellExtension/DShowTools/conver=
t.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/ShellExtension/Http.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/ShellExtension/Http.h 2007-02-17 10:34:40 UTC (re=
v 1276)
+++ trunk/MatroskaUtils/ShellExtension/Http.h 2007-02-17 10:55:54 UTC (re=
v 1277)
@@ -1,33 +1,33 @@
-#ifndef _HTTP_H_
-#define _HTTP_H_
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <winsock.h>
-#include <windows.h>
-#include <string>
-#include "JString.h"
-
-// try to tell linker where WinSock library is
-#if defined(_MSC_VER)
-# pragma comment(lib,"wsock32.lib")
-#elif defined(__BORLANDC__)
-# pragma comment(lib,"mswsock.lib")
-#endif
-
-
-class CHttp
-{
-public:
- CHttp();
- ~CHttp();
-
- std::string ReadPage(const std::string &Host, const std::string &Page)=
;
- =20
- static JString ConvertToValidURI(JString uri);
-private:
- WSADATA m_WsaData;
-};
-
+#ifndef _HTTP_H_
+#define _HTTP_H_
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <winsock.h>
+#include <windows.h>
+#include <string>
+#include "JString.h"
+
+// try to tell linker where WinSock library is
+#if defined(_MSC_VER)
+# pragma comment(lib,"wsock32.lib")
+#elif defined(__BORLANDC__)
+# pragma comment(lib,"mswsock.lib")
+#endif
+
+
+class CHttp
+{
+public:
+ CHttp();
+ ~CHttp();
+
+ std::string ReadPage(const std::string &Host, const std::string &Page)=
;
+ =20
+ static JString ConvertToValidURI(JString uri);
+private:
+ WSADATA m_WsaData;
+};
+
#endif // _HTTP_H_
\ No newline at end of file
Property changes on: trunk/MatroskaUtils/ShellExtension/Http.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/ShellExtension/MatroskaInfoParserCache.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/ShellExtension/MatroskaInfoParserCache.h 2007-02-=
17 10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/ShellExtension/MatroskaInfoParserCache.h 2007-02-=
17 10:55:54 UTC (rev 1277)
@@ -1,60 +1,60 @@
-/*
- * Matroska Shell Extension
- *
- * MatroskaInfoParserCache.h
- *
- * Copyright (C) Jory Stone - June 2003 - December 2004
- *
- * The Matroska Shell Extension 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, or (at your option)
- * any later version.
- *
- * The Matroska Shell Extension 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 the Matroska Shell Extension; see the file COPYING. If n=
ot, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file MatroskaInfoParserCache.h
- \version \$Id: MatroskaProp.cpp,v 1.39 2004/03/08 07:56:51 jcsston Exp=
$
- \brief Lightweight caching Matroska Parser object list
- \author Jory Stone <matroskaprop @ jory.info>
-
-*/
-
-#ifndef _MATROSKA_INFO_PARSER_CACHE_H_
-#define _MATROSKA_INFO_PARSER_CACHE_H_
-
-#include <windows.h>
-#include "MatroskaPages.h"
-
-class MatroskaInfoParserCache {
-public:
- MatroskaInfoParserCache();
- ~MatroskaInfoParserCache();
-=09
- void AddParser(MatroskaInfoParser *parser);
- MatroskaInfoParser *Lookup(const wchar_t *filename);
-
-#ifdef DEBUG
- void OutputList();
-#endif
-protected:
- int m_CacheCount;
- int m_CacheLimit;
- struct MatroskaInfoParserCacheEntry {
- MatroskaInfoParser *parser;
- MatroskaInfoParserCacheEntry *next;
- };
- MatroskaInfoParserCacheEntry *m_First;
- MatroskaInfoParserCacheEntry *m_Last;
-};
-
-#endif // _MATROSKA_INFO_PARSER_CACHE_H_
+/*
+ * Matroska Shell Extension
+ *
+ * MatroskaInfoParserCache.h
+ *
+ * Copyright (C) Jory Stone - June 2003 - December 2004
+ *
+ * The Matroska Shell Extension 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, or (at your option)
+ * any later version.
+ *
+ * The Matroska Shell Extension 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 the Matroska Shell Extension; see the file COPYING. If n=
ot, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file MatroskaInfoParserCache.h
+ \version \$Id: MatroskaProp.cpp,v 1.39 2004/03/08 07:56:51 jcsston Exp=
$
+ \brief Lightweight caching Matroska Parser object list
+ \author Jory Stone <matroskaprop @ jory.info>
+
+*/
+
+#ifndef _MATROSKA_INFO_PARSER_CACHE_H_
+#define _MATROSKA_INFO_PARSER_CACHE_H_
+
+#include <windows.h>
+#include "MatroskaPages.h"
+
+class MatroskaInfoParserCache {
+public:
+ MatroskaInfoParserCache();
+ ~MatroskaInfoParserCache();
+=09
+ void AddParser(MatroskaInfoParser *parser);
+ MatroskaInfoParser *Lookup(const wchar_t *filename);
+
+#ifdef DEBUG
+ void OutputList();
+#endif
+protected:
+ int m_CacheCount;
+ int m_CacheLimit;
+ struct MatroskaInfoParserCacheEntry {
+ MatroskaInfoParser *parser;
+ MatroskaInfoParserCacheEntry *next;
+ };
+ MatroskaInfoParserCacheEntry *m_First;
+ MatroskaInfoParserCacheEntry *m_Last;
+};
+
+#endif // _MATROSKA_INFO_PARSER_CACHE_H_
Property changes on: trunk/MatroskaUtils/ShellExtension/MatroskaInfoParse=
rCache.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/ShellExtension/MatroskaProp.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/ShellExtension/MatroskaProp.h 2007-02-17 10:34:40=
UTC (rev 1276)
+++ trunk/MatroskaUtils/ShellExtension/MatroskaProp.h 2007-02-17 10:55:54=
UTC (rev 1277)
@@ -1,501 +1,501 @@
-/*
- * Matroska Shell Extension
- *
- * MatroskaProp.h
- *
- * Copyright (C) Jory Stone - June 2003
- *
- * The Matroska Shell Extension 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, or (at your option)
- * any later version.
- *
- * The Matroska Shell Extension 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 the Matroska Shell Extension; see the file COPYING. If n=
ot, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file MatroskaProp.h
- \version \$Id: MatroskaProp.h,v 1.22 2004/03/07 08:08:49 jcsston Exp $
- \brief This is the meat code of the Matroska Shell Extension
- \author Jory Stone <jcsston @ toughguy.net>
-
-*/
-
-#ifndef _MATROSKAPROP_H
-#define _MATROSKAPROP_H
-
-#include "CxImage/ximage.h"
-
-#include "MatroskaPages.h"
-#include <list>
-#include <memory>
-//#include "streams.h"
-//#include "Dshow.h"
-//#include "Qedit.h"
-//#include "Dvdmedia.h"
-#include "MatroskaInfoParserCache.h"
-#include "MatroskaPropShellExtension.h"
-
-#ifdef USE_MUXER
-//Matroska Muxer CLISD
-//[uuid("1E1299A2-9D42-4F12-8791-D79E376F4143")]
-DEFINE_GUID(CLSID_MatroskaMuxer, 0x1E1299A2, 0x9D42, 0x4F12, 0x87, 0x91,=
0xD7, 0x9E, 0x37, 0x6F, 0x41, 0x43);
-#endif // USE_MUXER
-
-// The class ID of this Shell extension class:
-// {780BCB64-0CAF-473c-A9FC-E08C03D75515}
-#define MatroskaPageCLSID _T("{780BCB64-0CAF-473c-A9FC-E08C03D75515}")
-DEFINE_GUID(CLSID_MatroskaPage_ShellExtension, 0x780bcb64, 0xcaf, 0x473c=
, 0xa9, 0xfc, 0xe0, 0x8c, 0x3, 0xd7, 0x55, 0x15);
-
-// {78DC191E-EFC1-4532-9A71-224577A86A7D}
-#define MatroskaThumbnailCLSID _T("{78DC191E-EFC1-4532-9A71-224577A86A7D=
}")
-DEFINE_GUID(CLSID_MatroskaThumbnail_ShellExtension, 0x78dc191e, 0xefc1, =
0x4532, 0x9a, 0x71, 0x22, 0x45, 0x77, 0xa8, 0x6a, 0x7d);
-
-// {794D04CA-70AC-4020-80EB-FFD59DEF8027}
-#define MatroskaTooltipCLSID _T("{794D04CA-70AC-4020-80EB-FFD59DEF8027}"=
)
-DEFINE_GUID(CLSID_MatroskaTooltip_ShellExtension, 0x794d04ca, 0x70ac, 0x=
4020, 0x80, 0xeb, 0xff, 0xd5, 0x9d, 0xef, 0x80, 0x27);
-
-// {781395AF-A127-469f-A06F-59B482AF4F3F}
-#define MatroskaColumnProviderCLSID _T("{781395AF-A127-469f-A06F-59B482A=
F4F3F}")
-DEFINE_GUID(CLSID_MatroskaColumnProvider_ShellExtension, 0x781395af, 0xa=
127, 0x469f, 0xa0, 0x6f, 0x59, 0xb4, 0x82, 0xaf, 0x4f, 0x3f);
-
-// {789111D8-68A3-46a3-9663-145A3FF4C9C9}
-#define MatroskaContextMenuCLSID _T("{789111D8-68A3-46a3-9663-145A3FF4C9=
C9}")
-DEFINE_GUID(CLSID_MatroskaContextMenu_ShellExtension, 0x789111d8, 0x68a3=
, 0x46a3, 0x96, 0x63, 0x14, 0x5a, 0x3f, 0xf4, 0xc9, 0xc9);
-
-// {78678AF0-0E87-4958-A99B-A23FAFC0D92D}
-#define MatroskaShellIconCLSID _T("{78678AF0-0E87-4958-A99B-A23FAFC0D92D=
}")
-DEFINE_GUID(CLSID_MatroskaShellIcon_ShellExtension,=20
-0x78678af0, 0xe87, 0x4958, 0xa9, 0x9b, 0xa2, 0x3f, 0xaf, 0xc0, 0xd9, 0x2=
d);
-
-STDAPI DllRegisterServer(void);
-STDAPI DllUnregisterServer(void);
-STDAPI GetMatroskaPropVersion(void);
-STDAPI ConfigureOptions(void);
-STDAPI VistUnicowsWebsite(void);
-
-class MatroskaProp
-{
-public:
- MatroskaProp();
- ~MatroskaProp();=09
- int Install();
- int Uninstall();
-
- int ChooseIcon();
-
-protected:
- void SetupKeys();
- void LoadKeyList();
-
- bool m_Installed;
- bool m_Uninstalled;
- TCHAR dllFilename[MAX_MATROSKA_PATH];
- TCHAR *key_list[28][3];
- TCHAR *supported_ext[5];
- TCHAR *ext_key_list[4][3];
- TCHAR *approved_list[7][2];
- std::list<JString> m_keyList;
-};
-
-class CShellExtClassFactory : public IClassFactory
-{
-protected:
- ULONG m_cRef;
-
-public:
- CShellExtClassFactory();
- ~CShellExtClassFactory();
-
- //IUnknown members
- STDMETHODIMP QueryInterface(REFIID, LPVOID *);
- STDMETHODIMP_(ULONG) AddRef();
- STDMETHODIMP_(ULONG) Release();
-
- //IClassFactory members
- STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID *);
- STDMETHODIMP LockServer(BOOL);
-
-};
-typedef CShellExtClassFactory *LPCSHELLEXTCLASSFACTORY;
-
-class CShellExt : public IShellExtInit, IShellPropSheetExt, MatroskaProp=
ShellExtension
-{
-public:
- TCHAR szFile[MAX_MATROSKA_PATH];
- //VSAP
-
-protected:
- ULONG m_cRef;
- LPDATAOBJECT m_pDataObj;
- MatroskaPages *pageData;
-
-public:
- CShellExt();
- ~CShellExt();
-
- //IUnknown members
- STDMETHODIMP QueryInterface(REFIID, LPVOID *);
- STDMETHODIMP_(ULONG) AddRef();
- STDMETHODIMP_(ULONG) Release();
-
- //IShellExtInit methods
- STDMETHODIMP Initialize(LPCITEMIDLIST pIDFolder, LPDATAOBJEC=
T pDataObj, HKEY hKeyID);
-
- //IShellPropSheetExt methods
- STDMETHODIMP AddPages(LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam);
-
- STDMETHODIMP ReplacePage(UINT uPageID, LPFNADDPROPSHEETPAGE lpfnReplace=
With, LPARAM lParam);
-
-};
-typedef CShellExt *LPCSHELLEXT;
-
-class CToolTipClassFactory : public IClassFactory
-{
-protected:
- ULONG m_cRef;
-
-public:
- CToolTipClassFactory();
- ~CToolTipClassFactory();
-
- //IUnknown members
- STDMETHODIMP QueryInterface(REFIID, LPVOID *);
- STDMETHODIMP_(ULONG) AddRef();
- STDMETHODIMP_(ULONG) Release();
-
- //IClassFactory members
- STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID *);
- STDMETHODIMP LockServer(BOOL);
-
-};
-typedef CToolTipClassFactory *LPCTOOLTIPCLASSFACTORY;
-
-class CToolTip : public IQueryInfo, IPersistFile, MatroskaPropShellExten=
sion
-{
-public:=09
- CToolTip();
- ~CToolTip();
-
- //IUnknown members
- STDMETHODIMP QueryInterface(REFIID, LPVOID *);
- STDMETHODIMP_(ULONG) AddRef();
- STDMETHODIMP_(ULONG) Release();
-
- //IPersistFile methods
- STDMETHODIMP GetClassID(CLSID *pCLSID) {ODS("CToolTip::GetClassID()"); =
return E_NOTIMPL;};
- STDMETHODIMP Load(LPCOLESTR pOleStr, DWORD dwMode);
- STDMETHODIMP IsDirty(void) { ODS("CToolTip::IsDirty()"); return E_NOTIM=
PL;}; =20
- /// \param pszFileName [unique][in]
- /// \param fRemember [in]
- STDMETHODIMP Save(LPCOLESTR pszFileName, BOOL fRemember) { ODS("CToolT=
ip::Save()"); return E_NOTIMPL;}; =20
- /// \param pszFileName [unique][in]
- STDMETHODIMP SaveCompleted(LPCOLESTR pszFileName) { ODS("CToolTip::Sav=
eCompleted()"); return E_NOTIMPL;}; =20
- /// \param ppszFileName [out]
- STDMETHODIMP GetCurFile(LPOLESTR *ppszFileName) { ODS("CToolTip::GetCu=
rFile()"); return E_NOTIMPL;};
-
- //IToolTip methods
- STDMETHODIMP GetInfoFlags(DWORD *pdwFlags);
- STDMETHODIMP GetInfoTip(DWORD dwFlags, LPWSTR *ppwszTip);
-
- DWORD m_dwMode;=09
-
- wchar_t m_szFileName[MAX_MATROSKA_PATH];
-
-protected:
- ULONG m_cRef;
- LPDATAOBJECT m_pDataObj;
-};
-typedef CToolTip *LPCTOOLTIP;
-
-class CThumbnailClassFactory : public IClassFactory
-{
-protected:
- ULONG m_cRef;
-
-public:
- CThumbnailClassFactory();
- ~CThumbnailClassFactory();
-
- //IUnknown members
- STDMETHODIMP QueryInterface(REFIID, LPVOID *);
- STDMETHODIMP_(ULONG) AddRef();
- STDMETHODIMP_(ULONG) Release();
-
- //IClassFactory members
- STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID *);
- STDMETHODIMP LockServer(BOOL);
-
-};
-typedef CThumbnailClassFactory *LPCTHUMBNAILCLASSFACTORY;
-
-class CThumbnail : public IExtractImage, IPersistFile, IRunnableTask, Ma=
troskaPropShellExtension
-{
-public:=09
- CThumbnail();
- ~CThumbnail();
-
- //IUnknown members
- STDMETHODIMP QueryInterface(REFIID, LPVOID *);
- STDMETHODIMP_(ULONG) AddRef();
- STDMETHODIMP_(ULONG) Release();
-
- //IPersistFile methods
- STDMETHODIMP GetClassID(CLSID *pCLSID) {ODS("CThumbnail::GetClassID()")=
; return E_NOTIMPL;};
- STDMETHODIMP Load(LPCOLESTR pOleStr, DWORD dwMode);
- STDMETHODIMP IsDirty(void) { ODS("CThumbnail::IsDirty()"); return E_NOT=
IMPL;}; =20
- /// \param pszFileName [unique][in]
- /// \param fRemember [in]
- STDMETHODIMP Save(LPCOLESTR pszFileName, BOOL fRemember) { ODS("CThumb=
nail::Save()"); return E_NOTIMPL;}; =20
- /// \param pszFileName [unique][in]
- STDMETHODIMP SaveCompleted(LPCOLESTR pszFileName) { ODS("CThumbnail::S=
aveCompleted()"); return E_NOTIMPL;}; =20
- /// \param ppszFileName [out]
- STDMETHODIMP GetCurFile(LPOLESTR *ppszFileName) { ODS("CThumbnail::Get=
CurFile()"); return E_NOTIMPL;};
-
- //IRunnableTask methods
- STDMETHODIMP Run() { ODS("CThumbnail::Run()"); return E_NOTIMPL;}; =
=20
- STDMETHODIMP Kill(BOOL fWait) { ODS("CThumbnail::Kill()"); return E_NOT=
IMPL;};
- STDMETHODIMP Suspend() { ODS("CThumbnail::Suspend()"); return E_NOTIMPL=
;}; =20
- STDMETHODIMP Resume() { ODS("CThumbnail::Resume()"); return E_NOTIMPL;}=
;
- STDMETHODIMP_(ULONG) IsRunning() { ODS("CThumbnail::IsRunning()"); retu=
rn m_ThreadState;};
-
- //IExtractImage methods
- /// \param pszPathBuffer [size_is][out]
- /// \param cch [in]=20
- /// \param pdwPriority [unique][out][in]
- /// \param prgSize [in]=20
- /// \param dwRecClrDepth [in]
- /// \param pdwFlags [in]
- STDMETHODIMP GetLocation(LPWSTR pszPathBuffer, DWORD cch, DWORD *pdwPr=
iority, const SIZE *prgSize, DWORD dwRecClrDepth, DWORD *pdwFlags);
- /// \param phBmpThumbnail [out]
- STDMETHODIMP Extract(HBITMAP *phBmpThumbnail);
-
- DWORD m_dwMode;
- wchar_t m_szFileName[MAX_MATROSKA_PATH];
-
-protected:
- ULONG m_ThreadState;
- DWORD m_height;
- DWORD m_width;
- DWORD m_color_depth;
-
- ULONG m_cRef;
- LPDATAOBJECT m_pDataObj;
-};
-typedef CThumbnail *LPCTHUMBNAIL;
-
-class CColumnProviderClassFactory : public IClassFactory
-{
-protected:
- ULONG m_cRef;
-
-public:
- CColumnProviderClassFactory();
- ~CColumnProviderClassFactory();
-
- //IUnknown members
- STDMETHODIMP QueryInterface(REFIID, LPVOID *);
- STDMETHODIMP_(ULONG) AddRef();
- STDMETHODIMP_(ULONG) Release();
-
- //IClassFactory members
- STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID *);
- STDMETHODIMP LockServer(BOOL);
-
-};
-typedef CColumnProviderClassFactory *LPCCOLUMNPROVIDERCLASSFACTORY;
-
-class CColumnProvider : public IColumnProvider, MatroskaPropShellExtensi=
on
-{
-public:
- CColumnProvider();
- ~CColumnProvider();
-
- //IUnknown members
- STDMETHODIMP QueryInterface(REFIID, LPVOID *);
- STDMETHODIMP_(ULONG) AddRef();
- STDMETHODIMP_(ULONG) Release();
-
- // IColumnProvider methods
- STDMETHODIMP Initialize(LPCSHCOLUMNINIT psci);
- STDMETHODIMP GetColumnInfo(DWORD dwIndex, SHCOLUMNINFO *psci);
- STDMETHODIMP GetItemData(LPCSHCOLUMNID pscid, LPCSHCOLUMNDATA pscd, VA=
RIANT *pvarData);
-
-protected:=09
- /// Filename
- TCHAR m_szFile[MAX_MATROSKA_PATH];
- wchar_t m_szFolder[MAX_PATH];
-=09
- ULONG m_cRef;
- LPDATAOBJECT m_pDataObj;
-};
-typedef CColumnProvider *LPCCOLUMNPROVIDER;
-
-class CContextMenuClassFactory : public IClassFactory
-{
-protected:
- ULONG m_cRef;
-
-public:
- CContextMenuClassFactory();
- ~CContextMenuClassFactory();
-
- //IUnknown members
- STDMETHODIMP QueryInterface(REFIID, LPVOID *);
- STDMETHODIMP_(ULONG) AddRef();
- STDMETHODIMP_(ULONG) Release();
-
- //IClassFactory members
- STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID *);
- STDMETHODIMP LockServer(BOOL);
-
-};
-typedef CContextMenuClassFactory *LPCCONTEXTMENUCLASSFACTORY;
-
-struct MatroskaAttachmentMenuItem {
- HMENU hmAttachmentItem;
- UINT uPosition;
- UINT uIDNewItem;
- MatroskaAttachmentItem *attachmentSource;
-};
-
-struct MatroskaAttachmentMenuClickItem {
- UINT uItemID;
- MatroskaAttachmentItem *attachmentSource;
-};
-
-class CContextMenu : public IShellExtInit, IContextMenu3, MatroskaPropSh=
ellExtension
-{
-public:
- CContextMenu();
- ~CContextMenu();
-
- //IUnknown members
- STDMETHODIMP QueryInterface(REFIID, LPVOID *);
- STDMETHODIMP_(ULONG) AddRef();
- STDMETHODIMP_(ULONG) Release();
-
- //IShellExtInit methods
- STDMETHODIMP Initialize(LPCITEMIDLIST pIDFolder, LPDATAOBJEC=
T pDataObj, HKEY hKeyID);
-
- // IContextMenu methods
- STDMETHODIMP GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT *pwRese=
rved, LPSTR pszName, UINT cchMax);
- STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi);
- STDMETHODIMP QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFi=
rst, UINT idCmdLast, UINT uFlags);
-
- // IContextMenu2 methods
- STDMETHODIMP HandleMenuMsg(UINT uMsg, WPARAM wParam, LPARAM lParam);
-
- // IContextMenu3 methods
- STDMETHODIMP HandleMenuMsg2(UINT uMsg, WPARAM wParam, LPARAM lParam, LR=
ESULT *plResult);
-
- // Msg handler
- STDMETHODIMP MenuMessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam=
, LRESULT *plResult);
-protected:
- //Internal Functions
- void AddChapterItem_Menu(HMENU parent, MatroskaChapterEntry *chapter, s=
td::wstring chapterTitle, UINT &idCmd, UINT &indexMenu);
- std::vector<UINT> m_TrackCmdID;
- std::vector<MatroskaAttachmentMenuClickItem> m_AttachmentCmdID;
-=09
- std::vector<MatroskaAttachmentMenuItem *> m_Attachments;
- /// Filename
- TCHAR m_szFile[MAX_MATROSKA_PATH];
-=09
- ULONG m_cRef;
- LPDATAOBJECT m_pDataObj;
-
-};
-typedef CContextMenu *LPCCONTEXTMENU;
-
-class CShellIconClassFactory : public IClassFactory
-{
-protected:
- ULONG m_cRef;
-
-public:
- CShellIconClassFactory();
- ~CShellIconClassFactory();
-
- //IUnknown members
- STDMETHODIMP QueryInterface(REFIID, LPVOID *);
- STDMETHODIMP_(ULONG) AddRef();
- STDMETHODIMP_(ULONG) Release();
-
- //IClassFactory members
- STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID *);
- STDMETHODIMP LockServer(BOOL);
-
-};
-typedef CShellIconClassFactory *LPCSHELLICONCLASSFACTORY;
-
-class CShellIcon : public IPersistFile, IExtractIcon, MatroskaPropShellE=
xtension
-{
-public:
- CShellIcon();
- ~CShellIcon();
-
- //IUnknown members
- STDMETHODIMP QueryInterface(REFIID, LPVOID *);
- STDMETHODIMP_(ULONG) AddRef();
- STDMETHODIMP_(ULONG) Release();
-
- //IPersistFile methods
- STDMETHODIMP GetClassID(CLSID *pCLSID) {ODS("CShellIcon::GetClassID()")=
; return E_NOTIMPL;};
- STDMETHODIMP Load(LPCOLESTR pOleStr, DWORD dwMode);
- STDMETHODIMP IsDirty(void) { ODS("CShellIcon::IsDirty()"); return E_NOT=
IMPL;}; =20
- /// \param pszFileName [unique][in]
- /// \param fRemember [in]
- STDMETHODIMP Save(LPCOLESTR pszFileName, BOOL fRemember) { ODS("CShell=
Icon::Save()"); return E_NOTIMPL;}; =20
- /// \param pszFileName [unique][in]
- STDMETHODIMP SaveCompleted(LPCOLESTR pszFileName) { ODS("CShellIcon::S=
aveCompleted()"); return E_NOTIMPL;}; =20
- /// \param ppszFileName [out]
- STDMETHODIMP GetCurFile(LPOLESTR *ppszFileName) { ODS("CShellIcon::Get=
CurFile()"); return E_NOTIMPL;};
-
- // IExtractIcon methods =20
- STDMETHODIMP GetIconLocation(UINT uFlags, LPTSTR szIconFile, UINT cchMa=
x, int* piIndex, UINT* pwFlags);
- STDMETHODIMP Extract(LPCTSTR pszFile, UINT nIconIndex, HICON* phiconLa=
rge, HICON* phiconSmall, UINT nIconSize);
-
-protected:
- DWORD m_dwMode;
- wchar_t m_szFileName[MAX_MATROSKA_PATH];
-
-
- ULONG m_cRef;
- LPDATAOBJECT m_pDataObj;
-};
-typedef CShellIcon *LPCSHELLICON;
-
-#ifdef USE_MUXER
-enum MatroskaSimpleMuxerModes
-{
- MatroskaMux_DShow,
- MatroskaMux_mkvmerge
-};
-///This is a simple class to mux files into Matroska via DShow, mkvmerge
-class MatroskaSimpleMuxer
-{
-public:
- MatroskaSimpleMuxer(enum MatroskaSimpleMuxerModes type =3D MatroskaMux_=
DShow);
- ~MatroskaSimpleMuxer();
- HRESULT AddInputFile(JString &inputFilename);
- HRESULT MuxToMatroska();
-
-protected:
- HRESULT MuxViaDShow();
- HRESULT MuxViaMkvmerge();
-
- enum MatroskaSimpleMuxerModes muxerType;
- std::vector<JString> inputFilenames;
- JString outputFilename;
-};
-#endif // USE_MUXER
-
-#endif // _MATROSKAPROP_H
+/*
+ * Matroska Shell Extension
+ *
+ * MatroskaProp.h
+ *
+ * Copyright (C) Jory Stone - June 2003
+ *
+ * The Matroska Shell Extension 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, or (at your option)
+ * any later version.
+ *
+ * The Matroska Shell Extension 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 the Matroska Shell Extension; see the file COPYING. If n=
ot, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file MatroskaProp.h
+ \version \$Id: MatroskaProp.h,v 1.22 2004/03/07 08:08:49 jcsston Exp $
+ \brief This is the meat code of the Matroska Shell Extension
+ \author Jory Stone <jcsston @ toughguy.net>
+
+*/
+
+#ifndef _MATROSKAPROP_H
+#define _MATROSKAPROP_H
+
+#include "CxImage/ximage.h"
+
+#include "MatroskaPages.h"
+#include <list>
+#include <memory>
+//#include "streams.h"
+//#include "Dshow.h"
+//#include "Qedit.h"
+//#include "Dvdmedia.h"
+#include "MatroskaInfoParserCache.h"
+#include "MatroskaPropShellExtension.h"
+
+#ifdef USE_MUXER
+//Matroska Muxer CLISD
+//[uuid("1E1299A2-9D42-4F12-8791-D79E376F4143")]
+DEFINE_GUID(CLSID_MatroskaMuxer, 0x1E1299A2, 0x9D42, 0x4F12, 0x87, 0x91,=
0xD7, 0x9E, 0x37, 0x6F, 0x41, 0x43);
+#endif // USE_MUXER
+
+// The class ID of this Shell extension class:
+// {780BCB64-0CAF-473c-A9FC-E08C03D75515}
+#define MatroskaPageCLSID _T("{780BCB64-0CAF-473c-A9FC-E08C03D75515}")
+DEFINE_GUID(CLSID_MatroskaPage_ShellExtension, 0x780bcb64, 0xcaf, 0x473c=
, 0xa9, 0xfc, 0xe0, 0x8c, 0x3, 0xd7, 0x55, 0x15);
+
+// {78DC191E-EFC1-4532-9A71-224577A86A7D}
+#define MatroskaThumbnailCLSID _T("{78DC191E-EFC1-4532-9A71-224577A86A7D=
}")
+DEFINE_GUID(CLSID_MatroskaThumbnail_ShellExtension, 0x78dc191e, 0xefc1, =
0x4532, 0x9a, 0x71, 0x22, 0x45, 0x77, 0xa8, 0x6a, 0x7d);
+
+// {794D04CA-70AC-4020-80EB-FFD59DEF8027}
+#define MatroskaTooltipCLSID _T("{794D04CA-70AC-4020-80EB-FFD59DEF8027}"=
)
+DEFINE_GUID(CLSID_MatroskaTooltip_ShellExtension, 0x794d04ca, 0x70ac, 0x=
4020, 0x80, 0xeb, 0xff, 0xd5, 0x9d, 0xef, 0x80, 0x27);
+
+// {781395AF-A127-469f-A06F-59B482AF4F3F}
+#define MatroskaColumnProviderCLSID _T("{781395AF-A127-469f-A06F-59B482A=
F4F3F}")
+DEFINE_GUID(CLSID_MatroskaColumnProvider_ShellExtension, 0x781395af, 0xa=
127, 0x469f, 0xa0, 0x6f, 0x59, 0xb4, 0x82, 0xaf, 0x4f, 0x3f);
+
+// {789111D8-68A3-46a3-9663-145A3FF4C9C9}
+#define MatroskaContextMenuCLSID _T("{789111D8-68A3-46a3-9663-145A3FF4C9=
C9}")
+DEFINE_GUID(CLSID_MatroskaContextMenu_ShellExtension, 0x789111d8, 0x68a3=
, 0x46a3, 0x96, 0x63, 0x14, 0x5a, 0x3f, 0xf4, 0xc9, 0xc9);
+
+// {78678AF0-0E87-4958-A99B-A23FAFC0D92D}
+#define MatroskaShellIconCLSID _T("{78678AF0-0E87-4958-A99B-A23FAFC0D92D=
}")
+DEFINE_GUID(CLSID_MatroskaShellIcon_ShellExtension,=20
+0x78678af0, 0xe87, 0x4958, 0xa9, 0x9b, 0xa2, 0x3f, 0xaf, 0xc0, 0xd9, 0x2=
d);
+
+STDAPI DllRegisterServer(void);
+STDAPI DllUnregisterServer(void);
+STDAPI GetMatroskaPropVersion(void);
+STDAPI ConfigureOptions(void);
+STDAPI VistUnicowsWebsite(void);
+
+class MatroskaProp
+{
+public:
+ MatroskaProp();
+ ~MatroskaProp();=09
+ int Install();
+ int Uninstall();
+
+ int ChooseIcon();
+
+protected:
+ void SetupKeys();
+ void LoadKeyList();
+
+ bool m_Installed;
+ bool m_Uninstalled;
+ TCHAR dllFilename[MAX_MATROSKA_PATH];
+ TCHAR *key_list[28][3];
+ TCHAR *supported_ext[5];
+ TCHAR *ext_key_list[4][3];
+ TCHAR *approved_list[7][2];
+ std::list<JString> m_keyList;
+};
+
+class CShellExtClassFactory : public IClassFactory
+{
+protected:
+ ULONG m_cRef;
+
+public:
+ CShellExtClassFactory();
+ ~CShellExtClassFactory();
+
+ //IUnknown members
+ STDMETHODIMP QueryInterface(REFIID, LPVOID *);
+ STDMETHODIMP_(ULONG) AddRef();
+ STDMETHODIMP_(ULONG) Release();
+
+ //IClassFactory members
+ STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID *);
+ STDMETHODIMP LockServer(BOOL);
+
+};
+typedef CShellExtClassFactory *LPCSHELLEXTCLASSFACTORY;
+
+class CShellExt : public IShellExtInit, IShellPropSheetExt, MatroskaProp=
ShellExtension
+{
+public:
+ TCHAR szFile[MAX_MATROSKA_PATH];
+ //VSAP
+
+protected:
+ ULONG m_cRef;
+ LPDATAOBJECT m_pDataObj;
+ MatroskaPages *pageData;
+
+public:
+ CShellExt();
+ ~CShellExt();
+
+ //IUnknown members
+ STDMETHODIMP QueryInterface(REFIID, LPVOID *);
+ STDMETHODIMP_(ULONG) AddRef();
+ STDMETHODIMP_(ULONG) Release();
+
+ //IShellExtInit methods
+ STDMETHODIMP Initialize(LPCITEMIDLIST pIDFolder, LPDATAOBJEC=
T pDataObj, HKEY hKeyID);
+
+ //IShellPropSheetExt methods
+ STDMETHODIMP AddPages(LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam);
+
+ STDMETHODIMP ReplacePage(UINT uPageID, LPFNADDPROPSHEETPAGE lpfnReplace=
With, LPARAM lParam);
+
+};
+typedef CShellExt *LPCSHELLEXT;
+
+class CToolTipClassFactory : public IClassFactory
+{
+protected:
+ ULONG m_cRef;
+
+public:
+ CToolTipClassFactory();
+ ~CToolTipClassFactory();
+
+ //IUnknown members
+ STDMETHODIMP QueryInterface(REFIID, LPVOID *);
+ STDMETHODIMP_(ULONG) AddRef();
+ STDMETHODIMP_(ULONG) Release();
+
+ //IClassFactory members
+ STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID *);
+ STDMETHODIMP LockServer(BOOL);
+
+};
+typedef CToolTipClassFactory *LPCTOOLTIPCLASSFACTORY;
+
+class CToolTip : public IQueryInfo, IPersistFile, MatroskaPropShellExten=
sion
+{
+public:=09
+ CToolTip();
+ ~CToolTip();
+
+ //IUnknown members
+ STDMETHODIMP QueryInterface(REFIID, LPVOID *);
+ STDMETHODIMP_(ULONG) AddRef();
+ STDMETHODIMP_(ULONG) Release();
+
+ //IPersistFile methods
+ STDMETHODIMP GetClassID(CLSID *pCLSID) {ODS("CToolTip::GetClassID()"); =
return E_NOTIMPL;};
+ STDMETHODIMP Load(LPCOLESTR pOleStr, DWORD dwMode);
+ STDMETHODIMP IsDirty(void) { ODS("CToolTip::IsDirty()"); return E_NOTIM=
PL;}; =20
+ /// \param pszFileName [unique][in]
+ /// \param fRemember [in]
+ STDMETHODIMP Save(LPCOLESTR pszFileName, BOOL fRemember) { ODS("CToolT=
ip::Save()"); return E_NOTIMPL;}; =20
+ /// \param pszFileName [unique][in]
+ STDMETHODIMP SaveCompleted(LPCOLESTR pszFileName) { ODS("CToolTip::Sav=
eCompleted()"); return E_NOTIMPL;}; =20
+ /// \param ppszFileName [out]
+ STDMETHODIMP GetCurFile(LPOLESTR *ppszFileName) { ODS("CToolTip::GetCu=
rFile()"); return E_NOTIMPL;};
+
+ //IToolTip methods
+ STDMETHODIMP GetInfoFlags(DWORD *pdwFlags);
+ STDMETHODIMP GetInfoTip(DWORD dwFlags, LPWSTR *ppwszTip);
+
+ DWORD m_dwMode;=09
+
+ wchar_t m_szFileName[MAX_MATROSKA_PATH];
+
+protected:
+ ULONG m_cRef;
+ LPDATAOBJECT m_pDataObj;
+};
+typedef CToolTip *LPCTOOLTIP;
+
+class CThumbnailClassFactory : public IClassFactory
+{
+protected:
+ ULONG m_cRef;
+
+public:
+ CThumbnailClassFactory();
+ ~CThumbnailClassFactory();
+
+ //IUnknown members
+ STDMETHODIMP QueryInterface(REFIID, LPVOID *);
+ STDMETHODIMP_(ULONG) AddRef();
+ STDMETHODIMP_(ULONG) Release();
+
+ //IClassFactory members
+ STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID *);
+ STDMETHODIMP LockServer(BOOL);
+
+};
+typedef CThumbnailClassFactory *LPCTHUMBNAILCLASSFACTORY;
+
+class CThumbnail : public IExtractImage, IPersistFile, IRunnableTask, Ma=
troskaPropShellExtension
+{
+public:=09
+ CThumbnail();
+ ~CThumbnail();
+
+ //IUnknown members
+ STDMETHODIMP QueryInterface(REFIID, LPVOID *);
+ STDMETHODIMP_(ULONG) AddRef();
+ STDMETHODIMP_(ULONG) Release();
+
+ //IPersistFile methods
+ STDMETHODIMP GetClassID(CLSID *pCLSID) {ODS("CThumbnail::GetClassID()")=
; return E_NOTIMPL;};
+ STDMETHODIMP Load(LPCOLESTR pOleStr, DWORD dwMode);
+ STDMETHODIMP IsDirty(void) { ODS("CThumbnail::IsDirty()"); return E_NOT=
IMPL;}; =20
+ /// \param pszFileName [unique][in]
+ /// \param fRemember [in]
+ STDMETHODIMP Save(LPCOLESTR pszFileName, BOOL fRemember) { ODS("CThumb=
nail::Save()"); return E_NOTIMPL;}; =20
+ /// \param pszFileName [unique][in]
+ STDMETHODIMP SaveCompleted(LPCOLESTR pszFileName) { ODS("CThumbnail::S=
aveCompleted()"); return E_NOTIMPL;}; =20
+ /// \param ppszFileName [out]
+ STDMETHODIMP GetCurFile(LPOLESTR *ppszFileName) { ODS("CThumbnail::Get=
CurFile()"); return E_NOTIMPL;};
+
+ //IRunnableTask methods
+ STDMETHODIMP Run() { ODS("CThumbnail::Run()"); return E_NOTIMPL;}; =
=20
+ STDMETHODIMP Kill(BOOL fWait) { ODS("CThumbnail::Kill()"); return E_NOT=
IMPL;};
+ STDMETHODIMP Suspend() { ODS("CThumbnail::Suspend()"); return E_NOTIMPL=
;}; =20
+ STDMETHODIMP Resume() { ODS("CThumbnail::Resume()"); return E_NOTIMPL;}=
;
+ STDMETHODIMP_(ULONG) IsRunning() { ODS("CThumbnail::IsRunning()"); retu=
rn m_ThreadState;};
+
+ //IExtractImage methods
+ /// \param pszPathBuffer [size_is][out]
+ /// \param cch [in]=20
+ /// \param pdwPriority [unique][out][in]
+ /// \param prgSize [in]=20
+ /// \param dwRecClrDepth [in]
+ /// \param pdwFlags [in]
+ STDMETHODIMP GetLocation(LPWSTR pszPathBuffer, DWORD cch, DWORD *pdwPr=
iority, const SIZE *prgSize, DWORD dwRecClrDepth, DWORD *pdwFlags);
+ /// \param phBmpThumbnail [out]
+ STDMETHODIMP Extract(HBITMAP *phBmpThumbnail);
+
+ DWORD m_dwMode;
+ wchar_t m_szFileName[MAX_MATROSKA_PATH];
+
+protected:
+ ULONG m_ThreadState;
+ DWORD m_height;
+ DWORD m_width;
+ DWORD m_color_depth;
+
+ ULONG m_cRef;
+ LPDATAOBJECT m_pDataObj;
+};
+typedef CThumbnail *LPCTHUMBNAIL;
+
+class CColumnProviderClassFactory : public IClassFactory
+{
+protected:
+ ULONG m_cRef;
+
+public:
+ CColumnProviderClassFactory();
+ ~CColumnProviderClassFactory();
+
+ //IUnknown members
+ STDMETHODIMP QueryInterface(REFIID, LPVOID *);
+ STDMETHODIMP_(ULONG) AddRef();
+ STDMETHODIMP_(ULONG) Release();
+
+ //IClassFactory members
+ STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID *);
+ STDMETHODIMP LockServer(BOOL);
+
+};
+typedef CColumnProviderClassFactory *LPCCOLUMNPROVIDERCLASSFACTORY;
+
+class CColumnProvider : public IColumnProvider, MatroskaPropShellExtensi=
on
+{
+public:
+ CColumnProvider();
+ ~CColumnProvider();
+
+ //IUnknown members
+ STDMETHODIMP QueryInterface(REFIID, LPVOID *);
+ STDMETHODIMP_(ULONG) AddRef();
+ STDMETHODIMP_(ULONG) Release();
+
+ // IColumnProvider methods
+ STDMETHODIMP Initialize(LPCSHCOLUMNINIT psci);
+ STDMETHODIMP GetColumnInfo(DWORD dwIndex, SHCOLUMNINFO *psci);
+ STDMETHODIMP GetItemData(LPCSHCOLUMNID pscid, LPCSHCOLUMNDATA pscd, VA=
RIANT *pvarData);
+
+protected:=09
+ /// Filename
+ TCHAR m_szFile[MAX_MATROSKA_PATH];
+ wchar_t m_szFolder[MAX_PATH];
+=09
+ ULONG m_cRef;
+ LPDATAOBJECT m_pDataObj;
+};
+typedef CColumnProvider *LPCCOLUMNPROVIDER;
+
+class CContextMenuClassFactory : public IClassFactory
+{
+protected:
+ ULONG m_cRef;
+
+public:
+ CContextMenuClassFactory();
+ ~CContextMenuClassFactory();
+
+ //IUnknown members
+ STDMETHODIMP QueryInterface(REFIID, LPVOID *);
+ STDMETHODIMP_(ULONG) AddRef();
+ STDMETHODIMP_(ULONG) Release();
+
+ //IClassFactory members
+ STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID *);
+ STDMETHODIMP LockServer(BOOL);
+
+};
+typedef CContextMenuClassFactory *LPCCONTEXTMENUCLASSFACTORY;
+
+struct MatroskaAttachmentMenuItem {
+ HMENU hmAttachmentItem;
+ UINT uPosition;
+ UINT uIDNewItem;
+ MatroskaAttachmentItem *attachmentSource;
+};
+
+struct MatroskaAttachmentMenuClickItem {
+ UINT uItemID;
+ MatroskaAttachmentItem *attachmentSource;
+};
+
+class CContextMenu : public IShellExtInit, IContextMenu3, MatroskaPropSh=
ellExtension
+{
+public:
+ CContextMenu();
+ ~CContextMenu();
+
+ //IUnknown members
+ STDMETHODIMP QueryInterface(REFIID, LPVOID *);
+ STDMETHODIMP_(ULONG) AddRef();
+ STDMETHODIMP_(ULONG) Release();
+
+ //IShellExtInit methods
+ STDMETHODIMP Initialize(LPCITEMIDLIST pIDFolder, LPDATAOBJEC=
T pDataObj, HKEY hKeyID);
+
+ // IContextMenu methods
+ STDMETHODIMP GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT *pwRese=
rved, LPSTR pszName, UINT cchMax);
+ STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi);
+ STDMETHODIMP QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFi=
rst, UINT idCmdLast, UINT uFlags);
+
+ // IContextMenu2 methods
+ STDMETHODIMP HandleMenuMsg(UINT uMsg, WPARAM wParam, LPARAM lParam);
+
+ // IContextMenu3 methods
+ STDMETHODIMP HandleMenuMsg2(UINT uMsg, WPARAM wParam, LPARAM lParam, LR=
ESULT *plResult);
+
+ // Msg handler
+ STDMETHODIMP MenuMessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam=
, LRESULT *plResult);
+protected:
+ //Internal Functions
+ void AddChapterItem_Menu(HMENU parent, MatroskaChapterEntry *chapter, s=
td::wstring chapterTitle, UINT &idCmd, UINT &indexMenu);
+ std::vector<UINT> m_TrackCmdID;
+ std::vector<MatroskaAttachmentMenuClickItem> m_AttachmentCmdID;
+=09
+ std::vector<MatroskaAttachmentMenuItem *> m_Attachments;
+ /// Filename
+ TCHAR m_szFile[MAX_MATROSKA_PATH];
+=09
+ ULONG m_cRef;
+ LPDATAOBJECT m_pDataObj;
+
+};
+typedef CContextMenu *LPCCONTEXTMENU;
+
+class CShellIconClassFactory : public IClassFactory
+{
+protected:
+ ULONG m_cRef;
+
+public:
+ CShellIconClassFactory();
+ ~CShellIconClassFactory();
+
+ //IUnknown members
+ STDMETHODIMP QueryInterface(REFIID, LPVOID *);
+ STDMETHODIMP_(ULONG) AddRef();
+ STDMETHODIMP_(ULONG) Release();
+
+ //IClassFactory members
+ STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID *);
+ STDMETHODIMP LockServer(BOOL);
+
+};
+typedef CShellIconClassFactory *LPCSHELLICONCLASSFACTORY;
+
+class CShellIcon : public IPersistFile, IExtractIcon, MatroskaPropShellE=
xtension
+{
+public:
+ CShellIcon();
+ ~CShellIcon();
+
+ //IUnknown members
+ STDMETHODIMP QueryInterface(REFIID, LPVOID *);
+ STDMETHODIMP_(ULONG) AddRef();
+ STDMETHODIMP_(ULONG) Release();
+
+ //IPersistFile methods
+ STDMETHODIMP GetClassID(CLSID *pCLSID) {ODS("CShellIcon::GetClassID()")=
; return E_NOTIMPL;};
+ STDMETHODIMP Load(LPCOLESTR pOleStr, DWORD dwMode);
+ STDMETHODIMP IsDirty(void) { ODS("CShellIcon::IsDirty()"); return E_NOT=
IMPL;}; =20
+ /// \param pszFileName [unique][in]
+ /// \param fRemember [in]
+ STDMETHODIMP Save(LPCOLESTR pszFileName, BOOL fRemember) { ODS("CShell=
Icon::Save()"); return E_NOTIMPL;}; =20
+ /// \param pszFileName [unique][in]
+ STDMETHODIMP SaveCompleted(LPCOLESTR pszFileName) { ODS("CShellIcon::S=
aveCompleted()"); return E_NOTIMPL;}; =20
+ /// \param ppszFileName [out]
+ STDMETHODIMP GetCurFile(LPOLESTR *ppszFileName) { ODS("CShellIcon::Get=
CurFile()"); return E_NOTIMPL;};
+
+ // IExtractIcon methods =20
+ STDMETHODIMP GetIconLocation(UINT uFlags, LPTSTR szIconFile, UINT cchMa=
x, int* piIndex, UINT* pwFlags);
+ STDMETHODIMP Extract(LPCTSTR pszFile, UINT nIconIndex, HICON* phiconLa=
rge, HICON* phiconSmall, UINT nIconSize);
+
+protected:
+ DWORD m_dwMode;
+ wchar_t m_szFileName[MAX_MATROSKA_PATH];
+
+
+ ULONG m_cRef;
+ LPDATAOBJECT m_pDataObj;
+};
+typedef CShellIcon *LPCSHELLICON;
+
+#ifdef USE_MUXER
+enum MatroskaSimpleMuxerModes
+{
+ MatroskaMux_DShow,
+ MatroskaMux_mkvmerge
+};
+///This is a simple class to mux files into Matroska via DShow, mkvmerge
+class MatroskaSimpleMuxer
+{
+public:
+ MatroskaSimpleMuxer(enum MatroskaSimpleMuxerModes type =3D MatroskaMux_=
DShow);
+ ~MatroskaSimpleMuxer();
+ HRESULT AddInputFile(JString &inputFilename);
+ HRESULT MuxToMatroska();
+
+protected:
+ HRESULT MuxViaDShow();
+ HRESULT MuxViaMkvmerge();
+
+ enum MatroskaSimpleMuxerModes muxerType;
+ std::vector<JString> inputFilenames;
+ JString outputFilename;
+};
+#endif // USE_MUXER
+
+#endif // _MATROSKAPROP_H
Property changes on: trunk/MatroskaUtils/ShellExtension/MatroskaProp.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/ShellExtension/MatroskaPropShellExtension.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/ShellExtension/MatroskaPropShellExtension.h 2007-=
02-17 10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/ShellExtension/MatroskaPropShellExtension.h 2007-=
02-17 10:55:54 UTC (rev 1277)
@@ -1,43 +1,43 @@
-/*
- * Matroska Shell Extension
- *
- * MatroskaProp.h
- *
- * Copyright (C) Jory Stone - June 2003
- *
- * The Matroska Shell Extension 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, or (at your option)
- * any later version.
- *
- * The Matroska Shell Extension 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 the Matroska Shell Extension; see the file COPYING. If n=
ot, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file MatroskaProp.h
- \version \$Id: MatroskaProp.h,v 1.22 2004/03/07 08:08:49 jcsston Exp $
- \brief This is the meat code of the Matroska Shell Extension
- \author Jory Stone <jcsston @ toughguy.net>
-
-*/
-
-#ifndef _MATROSKA_PROP_SHELL_EXTENSION_H
-#define _MATROSKA_PROP_SHELL_EXTENSION_H
-
-#include <windows.h>
-
-class MatroskaPropShellExtension {
-public:
- MatroskaPropShellExtension();
- virtual ~MatroskaPropShellExtension();
-};
-
-#endif // _MATROSKA_PROP_SHELL_EXTENSION_H
+/*
+ * Matroska Shell Extension
+ *
+ * MatroskaProp.h
+ *
+ * Copyright (C) Jory Stone - June 2003
+ *
+ * The Matroska Shell Extension 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, or (at your option)
+ * any later version.
+ *
+ * The Matroska Shell Extension 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 the Matroska Shell Extension; see the file COPYING. If n=
ot, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file MatroskaProp.h
+ \version \$Id: MatroskaProp.h,v 1.22 2004/03/07 08:08:49 jcsston Exp $
+ \brief This is the meat code of the Matroska Shell Extension
+ \author Jory Stone <jcsston @ toughguy.net>
+
+*/
+
+#ifndef _MATROSKA_PROP_SHELL_EXTENSION_H
+#define _MATROSKA_PROP_SHELL_EXTENSION_H
+
+#include <windows.h>
+
+class MatroskaPropShellExtension {
+public:
+ MatroskaPropShellExtension();
+ virtual ~MatroskaPropShellExtension();
+};
+
+#endif // _MATROSKA_PROP_SHELL_EXTENSION_H
Property changes on: trunk/MatroskaUtils/ShellExtension/MatroskaPropShell=
Extension.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/TagReader.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/TagReader.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/TagReader.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,49 +1,49 @@
-/*
- * Part of The TCMP Matroska CDL, and Matroska Shell Extension
- *
- * TagReader.h
- *
- * Copyright (C) Jory Stone - 2003
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file TagReader.h
- \version \$Id: TagReader.h,v 1.2 2003/10/07 09:03:13 jcsston Exp $
- \brief Tag Importer Base class
- \author Jory Stone <jcsston @ toughguy.net>
-
-*/
-
-#ifndef _TAG_READER_H_
-#define _TAG_READER_H_
-
-#include "JString.h"
-#include <string>
-#include <string.h>
-#include "MatroskaTagData.h"
-
-using namespace MatroskaUtilsNamespace;
-
-class TagReader {
-public:
- virtual void ReadFile(const JString &filename) =3D 0;
- virtual bool HasTags() =3D 0;
- virtual void ImportTags(MatroskaTagInfo *target) =3D 0;
-};
-
-#endif // _TAG_READER_H_
+/*
+ * Part of The TCMP Matroska CDL, and Matroska Shell Extension
+ *
+ * TagReader.h
+ *
+ * Copyright (C) Jory Stone - 2003
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file TagReader.h
+ \version \$Id: TagReader.h,v 1.2 2003/10/07 09:03:13 jcsston Exp $
+ \brief Tag Importer Base class
+ \author Jory Stone <jcsston @ toughguy.net>
+
+*/
+
+#ifndef _TAG_READER_H_
+#define _TAG_READER_H_
+
+#include "JString.h"
+#include <string>
+#include <string.h>
+#include "MatroskaTagData.h"
+
+using namespace MatroskaUtilsNamespace;
+
+class TagReader {
+public:
+ virtual void ReadFile(const JString &filename) =3D 0;
+ virtual bool HasTags() =3D 0;
+ virtual void ImportTags(MatroskaTagInfo *target) =3D 0;
+};
+
+#endif // _TAG_READER_H_
Property changes on: trunk/MatroskaUtils/TagReader.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/ZipArchive.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/ZipArchive.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/ZipArchive.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,177 +1,177 @@
-/*
- * Part of The TCMP Matroska CDL, and Matroska Shell Extension
- *
- * ZipArchive.h
- *
- * Copyright (C) Jory Stone - 2003
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file ZipArchive.h
- \version \$Id: ZipArchive.h,v 1.3 2003/10/08 03:30:42 jcsston Exp $
- \brief A lightwight Zip Archive class
- \author Jory Stone <jcsston @ toughguy.net>
-*/
-
-#ifndef _ZIP_ARCHIVE_H_
-#define _ZIP_ARCHIVE_H_
-
-#include <windows.h>
-#include <stdio.h>
-#include <vector>
-#include <string>
-#include <string.h>
-#include <time.h>
-#include "zlib.h"
-
-#pragma pack(push, 1)
-struct zip_local_file_header
-{
- DWORD header_sig;// 4bytes (0x04034b50)
- WORD version;// needed to extract 2 bytes
- WORD general_flags;// purpose bit flag 2 bytes
- WORD compression_method;// 2 bytes
- WORD last_mod_file_time;// 2 bytes
- WORD last_mod_file_date;// 2 bytes
- DWORD crc32;//-32 4 bytes
- DWORD compressed_size; // 4 bytes
- DWORD uncompressed_size; // 4 bytes
- WORD file_name_length; // 2 bytes
- WORD extra_field_length; // 2 bytes
- //char *file_name; // (variable size)
- //char *extra_field; // (variable size)
-};
-
-// Only used if bit 3 is set on zip_local_file_header::general_flags
-struct zip_data_footer
-{
- DWORD crc32;//-32 4 bytes
- DWORD compressed_size; // 4 bytes
- DWORD uncompressed_size; // 4 bytes
-};
-
-struct zip_central_dir_header
-{
- DWORD header_sig; // 4 bytes (0x02014b50)
- WORD version_by; // 2 bytes
- WORD version_needed; // to extract 2 bytes
- WORD general_flags;// purpose bit flag 2 bytes
- WORD compression_method;// 2 bytes
- WORD last_mod_file_time;// 2 bytes
- WORD last_mod_file_date;// 2 bytes
- DWORD crc32;//-32 4 bytes
- DWORD compressed_size; // 4 bytes
- DWORD uncompressed_size; // 4 bytes
- WORD file_name_length; // 2 bytes
- WORD extra_field_length; // 2 bytes
- WORD comment_length; // 2 bytes
- WORD disk_number_start; // 2 bytes
- WORD internal_file_attributes; // 2 bytes
- DWORD external_file_attributes; // 4 bytes
- DWORD relative_offset_of_local_header; // 4 bytes
- //char *file_name; // (variable size)
- //char *extra_field; // (variable size)
- //char *file_comment; // (variable size)
-};
-
-/*Digital signature:
-header signature 4 bytes (0x05054b50)
-size of data 2 bytes
-signature data (variable size)*/
-
-struct zip_central_dir_footer
-{
- DWORD header_sig; // 4 bytes (0x06054b50)
- WORD disk_number; //number of this disk 2 bytes
- WORD disk_number_dir; // 2 bytes
- WORD entry_count_disk_total; //WORD total number of entries in the cent=
ral directory on this disk 2 bytes
- WORD entry_count_total; //; the central directory 2 bytes
- DWORD size_central_dir;// 4 bytes
- DWORD dir_offset; //ectory_with_respect_to_the_starting disk number;// =
4 bytes
- WORD file_comment_length;// 2 bytes
- //char *file_comment;// (variable size)
-};
-#pragma pack(pop)
-
-class CZip_local_file_header {
-public:
- CZip_local_file_header() {
- memset(&data, 0, sizeof(zip_local_file_header));=20
- data.header_sig =3D 0x04034b50;
- };
-
- zip_local_file_header data;
- std::string file_name;
- std::string extra_field;
-};
-
-
-class CZip_central_dir_header {
-public:
- CZip_central_dir_header() {=20
- memset(&data, 0, sizeof(zip_central_dir_header));
- data.header_sig =3D 0x02014b50;
- data.version_by =3D 20;
- };
- void Write(FILE *targetFile) {
- fwrite(&data, 1, sizeof(zip_central_dir_header), targetFile);
- =09
- fwrite(file_name.c_str(), 1, file_name.length(), targetFile);
- fwrite(extra_field.c_str(), 1, extra_field.length(), targetFile);
- fwrite(file_comment.c_str(), 1, file_comment.length(), targetFile);
- }
-
- zip_central_dir_header data;
- std::string file_name;
- std::string extra_field;
- std::string file_comment;
-};
-
-class ZipArchiveWriter {
-public:
- ZipArchiveWriter(const wchar_t *outputArchive);
- ZipArchiveWriter(const std::string &outputArchive);
- ~ZipArchiveWriter();
-
- bool IsOk();
- void SetComment(const std::string &newComment) { m_ZipComment =3D newCo=
mment; };=09
- void AddFile(const wchar_t *sourceFilename);
- void AddFile(const std::string &sourceFilename);
- void AddFile(const std::string &newFile, const unsigned char *data, uns=
igned long size);
- void Close();
-
-protected:
- bool m_bClosed;
- FILE *m_OutputFile;
- std::string m_OutputFilename;
- std::string m_ZipComment;
- struct DosDate {
- WORD nMonthDay : 5,
- nMonth : 4,
- nYear : 7;
- };
- struct DosTime {
- WORD nSecond : 5,
- nMinute : 6,
- nHour : 5;
- };
-
- std::vector<CZip_central_dir_header> m_FileList;
-};
-
-#endif // _ZIP_ARCHIVE_H_
+/*
+ * Part of The TCMP Matroska CDL, and Matroska Shell Extension
+ *
+ * ZipArchive.h
+ *
+ * Copyright (C) Jory Stone - 2003
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file ZipArchive.h
+ \version \$Id: ZipArchive.h,v 1.3 2003/10/08 03:30:42 jcsston Exp $
+ \brief A lightwight Zip Archive class
+ \author Jory Stone <jcsston @ toughguy.net>
+*/
+
+#ifndef _ZIP_ARCHIVE_H_
+#define _ZIP_ARCHIVE_H_
+
+#include <windows.h>
+#include <stdio.h>
+#include <vector>
+#include <string>
+#include <string.h>
+#include <time.h>
+#include "zlib.h"
+
+#pragma pack(push, 1)
+struct zip_local_file_header
+{
+ DWORD header_sig;// 4bytes (0x04034b50)
+ WORD version;// needed to extract 2 bytes
+ WORD general_flags;// purpose bit flag 2 bytes
+ WORD compression_method;// 2 bytes
+ WORD last_mod_file_time;// 2 bytes
+ WORD last_mod_file_date;// 2 bytes
+ DWORD crc32;//-32 4 bytes
+ DWORD compressed_size; // 4 bytes
+ DWORD uncompressed_size; // 4 bytes
+ WORD file_name_length; // 2 bytes
+ WORD extra_field_length; // 2 bytes
+ //char *file_name; // (variable size)
+ //char *extra_field; // (variable size)
+};
+
+// Only used if bit 3 is set on zip_local_file_header::general_flags
+struct zip_data_footer
+{
+ DWORD crc32;//-32 4 bytes
+ DWORD compressed_size; // 4 bytes
+ DWORD uncompressed_size; // 4 bytes
+};
+
+struct zip_central_dir_header
+{
+ DWORD header_sig; // 4 bytes (0x02014b50)
+ WORD version_by; // 2 bytes
+ WORD version_needed; // to extract 2 bytes
+ WORD general_flags;// purpose bit flag 2 bytes
+ WORD compression_method;// 2 bytes
+ WORD last_mod_file_time;// 2 bytes
+ WORD last_mod_file_date;// 2 bytes
+ DWORD crc32;//-32 4 bytes
+ DWORD compressed_size; // 4 bytes
+ DWORD uncompressed_size; // 4 bytes
+ WORD file_name_length; // 2 bytes
+ WORD extra_field_length; // 2 bytes
+ WORD comment_length; // 2 bytes
+ WORD disk_number_start; // 2 bytes
+ WORD internal_file_attributes; // 2 bytes
+ DWORD external_file_attributes; // 4 bytes
+ DWORD relative_offset_of_local_header; // 4 bytes
+ //char *file_name; // (variable size)
+ //char *extra_field; // (variable size)
+ //char *file_comment; // (variable size)
+};
+
+/*Digital signature:
+header signature 4 bytes (0x05054b50)
+size of data 2 bytes
+signature data (variable size)*/
+
+struct zip_central_dir_footer
+{
+ DWORD header_sig; // 4 bytes (0x06054b50)
+ WORD disk_number; //number of this disk 2 bytes
+ WORD disk_number_dir; // 2 bytes
+ WORD entry_count_disk_total; //WORD total number of entries in the cent=
ral directory on this disk 2 bytes
+ WORD entry_count_total; //; the central directory 2 bytes
+ DWORD size_central_dir;// 4 bytes
+ DWORD dir_offset; //ectory_with_respect_to_the_starting disk number;// =
4 bytes
+ WORD file_comment_length;// 2 bytes
+ //char *file_comment;// (variable size)
+};
+#pragma pack(pop)
+
+class CZip_local_file_header {
+public:
+ CZip_local_file_header() {
+ memset(&data, 0, sizeof(zip_local_file_header));=20
+ data.header_sig =3D 0x04034b50;
+ };
+
+ zip_local_file_header data;
+ std::string file_name;
+ std::string extra_field;
+};
+
+
+class CZip_central_dir_header {
+public:
+ CZip_central_dir_header() {=20
+ memset(&data, 0, sizeof(zip_central_dir_header));
+ data.header_sig =3D 0x02014b50;
+ data.version_by =3D 20;
+ };
+ void Write(FILE *targetFile) {
+ fwrite(&data, 1, sizeof(zip_central_dir_header), targetFile);
+ =09
+ fwrite(file_name.c_str(), 1, file_name.length(), targetFile);
+ fwrite(extra_field.c_str(), 1, extra_field.length(), targetFile);
+ fwrite(file_comment.c_str(), 1, file_comment.length(), targetFile);
+ }
+
+ zip_central_dir_header data;
+ std::string file_name;
+ std::string extra_field;
+ std::string file_comment;
+};
+
+class ZipArchiveWriter {
+public:
+ ZipArchiveWriter(const wchar_t *outputArchive);
+ ZipArchiveWriter(const std::string &outputArchive);
+ ~ZipArchiveWriter();
+
+ bool IsOk();
+ void SetComment(const std::string &newComment) { m_ZipComment =3D newCo=
mment; };=09
+ void AddFile(const wchar_t *sourceFilename);
+ void AddFile(const std::string &sourceFilename);
+ void AddFile(const std::string &newFile, const unsigned char *data, uns=
igned long size);
+ void Close();
+
+protected:
+ bool m_bClosed;
+ FILE *m_OutputFile;
+ std::string m_OutputFilename;
+ std::string m_ZipComment;
+ struct DosDate {
+ WORD nMonthDay : 5,
+ nMonth : 4,
+ nYear : 7;
+ };
+ struct DosTime {
+ WORD nSecond : 5,
+ nMinute : 6,
+ nHour : 5;
+ };
+
+ std::vector<CZip_central_dir_header> m_FileList;
+};
+
+#endif // _ZIP_ARCHIVE_H_
Property changes on: trunk/MatroskaUtils/ZipArchive.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/mdump.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/mdump.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/mdump.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,105 +1,105 @@
-/*
- * Part of The TCMP Matroska CDL, and Matroska Shell Extension
- *
- * mdump.h
- *
- * Copyright (C) Jory Stone - 2003
- *
- * Based from sample code from http://www.eptacom.net/pubblicazioni/pub_=
eng/except.html
- *
- * The TCMP Matroska CDL 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, or (at your option)
- * any later version.
- *
- * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
- * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
- *
- */
-
-/*!
- \file mdump.h
- \version \$Id: mdump.h,v 1.11 2004/03/08 07:56:51 jcsston Exp $
- \brief Crash Catcher
- \author Jory Stone <jcsston @ toughguy.net>
-*/
-
-#ifndef _MDUMP_H_
-#define _MDUMP_H_
-
-#include <stdio.h>
-#include <windows.h>
-#include <TCHAR.h>
-#include <assert.h>
-#include <Shlwapi.h>
-#include <string>
-#include <vector>
-#include <string.h>
-#include "resource.h"
-#include "ZipArchive.h"
-
-#if _MSC_VER < 1300
-#define DECLSPEC_DEPRECATED
-// VC6: change this path to your Platform SDK headers
-#include "M:\\dev7\\vs\\devtools\\common\\win32sdk\\include\\dbghelp.h" =
// must be XP version of file
-#else
-// VC7: ships with updated headers
-#include "dbghelp.h"
-#endif
-
-// based on dbghelp.h
-typedef BOOL (WINAPI *MINIDUMPWRITEDUMP)(HANDLE hProcess, DWORD dwPid, H=
ANDLE hFile, MINIDUMP_TYPE DumpType,
- CONST PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
- CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
- CONST PMINIDUMP_CALLBACK_INFORMATION CallbackParam
- );
-
-struct CrashInfo {
- std::basic_string<TCHAR> title;
- std::basic_string<TCHAR> report;
- std::basic_string<TCHAR> user_text;
- std::basic_string<TCHAR> filename;
-};
-
-#ifdef USING_MAPPING_FILE=09
-struct MappingFileEntry {
- DWORD functionAddress;
- std::string functionName;
-};
-#endif
-
-class CrashCatcher
-{
-public:
- CrashCatcher(const TCHAR *szAppName);
- ~CrashCatcher();
-
-protected:
- static LONG WINAPI TopLevelFilter(struct _EXCEPTION_POINTERS *pExceptio=
nInfo);
- static std::basic_string<TCHAR> ProcessExceptionRecord(EXCEPTION_RECORD=
*pExceptionRecord);=09
-
- static std::basic_string<TCHAR> DumpRegisters(CONTEXT *pContext);
- static std::basic_string<TCHAR> StackDump(DWORD EBP, DWORD EIP); =09
- static LPCTSTR GetAddressInfo(const BYTE* caller, HINSTANCE hInstance);
-#ifdef USING_MAPPING_FILE=09
- static void LoadMapping(std::vector<MappingFileEntry> &targetMap);
- static std::basic_string<TCHAR> LookupMapping(std::vector<MappingFileEn=
try> &sourceMap, void *address);
-#endif
- static std::basic_string<TCHAR> GetSystemInfomation();
- static LPCTSTR GetDllVersion(LPCTSTR lpszDllName);
-=09
- static BOOL CALLBACK CrashDlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,=
LPARAM lParam);
-
- // A 'scratch' string buffer for rendering strings
- static TCHAR szScratchPad[256];
- static const TCHAR *m_szAppName;=09
- LPTOP_LEVEL_EXCEPTION_FILTER m_prevFilter;
-};
-
-#endif // _MDUMP_H_
+/*
+ * Part of The TCMP Matroska CDL, and Matroska Shell Extension
+ *
+ * mdump.h
+ *
+ * Copyright (C) Jory Stone - 2003
+ *
+ * Based from sample code from http://www.eptacom.net/pubblicazioni/pub_=
eng/except.html
+ *
+ * The TCMP Matroska CDL 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, or (at your option)
+ * any later version.
+ *
+ * The TCMP Matroska CDL is distributed in the hope that it will be use=
ful,
+ * 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 The TCMP Matroska CDL; see the file COPYING. If not, wri=
te to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA=
.
+ *
+ */
+
+/*!
+ \file mdump.h
+ \version \$Id: mdump.h,v 1.11 2004/03/08 07:56:51 jcsston Exp $
+ \brief Crash Catcher
+ \author Jory Stone <jcsston @ toughguy.net>
+*/
+
+#ifndef _MDUMP_H_
+#define _MDUMP_H_
+
+#include <stdio.h>
+#include <windows.h>
+#include <TCHAR.h>
+#include <assert.h>
+#include <Shlwapi.h>
+#include <string>
+#include <vector>
+#include <string.h>
+#include "resource.h"
+#include "ZipArchive.h"
+
+#if _MSC_VER < 1300
+#define DECLSPEC_DEPRECATED
+// VC6: change this path to your Platform SDK headers
+#include "M:\\dev7\\vs\\devtools\\common\\win32sdk\\include\\dbghelp.h" =
// must be XP version of file
+#else
+// VC7: ships with updated headers
+#include "dbghelp.h"
+#endif
+
+// based on dbghelp.h
+typedef BOOL (WINAPI *MINIDUMPWRITEDUMP)(HANDLE hProcess, DWORD dwPid, H=
ANDLE hFile, MINIDUMP_TYPE DumpType,
+ CONST PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
+ CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
+ CONST PMINIDUMP_CALLBACK_INFORMATION CallbackParam
+ );
+
+struct CrashInfo {
+ std::basic_string<TCHAR> title;
+ std::basic_string<TCHAR> report;
+ std::basic_string<TCHAR> user_text;
+ std::basic_string<TCHAR> filename;
+};
+
+#ifdef USING_MAPPING_FILE=09
+struct MappingFileEntry {
+ DWORD functionAddress;
+ std::string functionName;
+};
+#endif
+
+class CrashCatcher
+{
+public:
+ CrashCatcher(const TCHAR *szAppName);
+ ~CrashCatcher();
+
+protected:
+ static LONG WINAPI TopLevelFilter(struct _EXCEPTION_POINTERS *pExceptio=
nInfo);
+ static std::basic_string<TCHAR> ProcessExceptionRecord(EXCEPTION_RECORD=
*pExceptionRecord);=09
+
+ static std::basic_string<TCHAR> DumpRegisters(CONTEXT *pContext);
+ static std::basic_string<TCHAR> StackDump(DWORD EBP, DWORD EIP); =09
+ static LPCTSTR GetAddressInfo(const BYTE* caller, HINSTANCE hInstance);
+#ifdef USING_MAPPING_FILE=09
+ static void LoadMapping(std::vector<MappingFileEntry> &targetMap);
+ static std::basic_string<TCHAR> LookupMapping(std::vector<MappingFileEn=
try> &sourceMap, void *address);
+#endif
+ static std::basic_string<TCHAR> GetSystemInfomation();
+ static LPCTSTR GetDllVersion(LPCTSTR lpszDllName);
+=09
+ static BOOL CALLBACK CrashDlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,=
LPARAM lParam);
+
+ // A 'scratch' string buffer for rendering strings
+ static TCHAR szScratchPad[256];
+ static const TCHAR *m_szAppName;=09
+ LPTOP_LEVEL_EXCEPTION_FILTER m_prevFilter;
+};
+
+#endif // _MDUMP_H_
Property changes on: trunk/MatroskaUtils/mdump.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/MatroskaUtils/resource.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/MatroskaUtils/resource.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/MatroskaUtils/resource.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,240 +1,240 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by MatroskaCDL.rc
-//
-#define RESOURCE_VERSION_MAJOR 2
-#define RESOURCE_VERSION_MINOR 8
-#define IDD_CFGDIALOG 101
-#define IDD_TREEDIALOG 102
-#define IDD_DIALOG1 104
-#define IDD_DIALOG2 105
-#define IDD_DIALOG_ABOUT 105
-#define IDD_PROPPAGE 106
-#define IDB_BITMAP1 106
-#define IDD_TAG_TAB 107
-#define IDD_TAG_SIMPLE_TAB 108
-#define IDB_BITMAP_LOGO 110
-#define IDD_DIALOG_ADDTAG 115
-#define IDD_DIALOG_DISPLAY_SIZE 117
-#define IDD_DIALOG_DISPLAY_TEXT 118
-#define IDI_ICON_WRENCH 120
-#define IDI_ICON_MKV1 122
-#define IDD_DIALOG_SHELL_OPTIONS 125
-#define IDD_PROPPAGE_ATTACHMENT 126
-#define IDI_ICON_MKV_BLUE 130
-#define IDR_MENU_CLIPBOARD 131
-#define IDI_ICON_MONKEY 133
-#define IDD_DIALOG_PROGRESS 135
-#define IDD_DIALOG_MUXER 136
-#define IDD_DIALOG_ICONS 137
-#define IDR_PNG_MATROSKA_CDL 140
-#define IDR_PNG_MATROSKA_INFO 142
-#define IDD_DIALOG_SELECT_LANGUAGE 144
-#define IDI_ICON_MKV6 146
-#define IDI_ICON_MKV_DOLL_4 147
-#define IDD_DIALOG_CRASH 148
-#define IDI_ICON_MKV_DOLL_5 148
-#define IDI_ICON_AUDIO 149
-#define IDI_ICON_SUBTITLE 150
-#define IDI_ICON_VIDEO 151
-#define IDI_ICON_COW 152
-#define IDD_DIALOG_ADD_SIMPLE_TAG 154
-#define IDD_DIALOG_BITRATE 155
-#define IDD_DIALOG_ADD_UID 156
-#define IDD_PROPPAGE_CHAPTER 157
-#define IDR_MP31 158
-#define IDI_ICON1 159
-#define IDI_ICON_SETUP 159
-#define IDC_EDIT_TITLE 1001
-#define IDC_LIST_TAGS 1003
-#define IDC_BUTTON_SAVE 1004
-#define IDC_EDIT_SELECTED_TAG_TEXT 1005
-#define IDC_EDIT_SELECTED_TAG_TYPE 1006
-#define IDC_LIST_TRACKS 1009
-#define IDC_STATIC_TRACK_UID 1010
-#define IDC_STATIC_TRACK_NUMBER 1011
-#define IDC_STATIC_TRACK_TYPE 1012
-#define IDC_STATIC_TRACK_INFO 1013
-#define IDC_COMBO_TAG_TYPE 1016
-#define IDC_CHECK_DAR 1017
-#define IDC_CHECK_TAG_TAB 1018
-#define IDC_COMBO1 1019
-#define IDC_CHECK_TAG_TAB_SIMPLE 1019
-#define IDC_COMBO_TAG_SIMPLE_TRACKS 1019
-#define IDC_COMBO_PROP_CHANGE 1019
-#define IDC_COMBO_LANGUAGE_SELECTION 1019
-#define IDC_COMBO_CONFIG_LANGUAGE 1019
-#define IDC_COMBO_TAG_NAME 1019
-#define IDC_COMBO_TAG_FIELD 1020
-#define IDC_EDIT1 1021
-#define IDC_EDIT_TAG_TITLE 1021
-#define IDC_EDIT_CACHE_LIMIT 1021
-#define IDC_EDIT_CRASH_REPORT 1021
-#define IDC_EDIT_TAG_VALUE 1021
-#define IDC_EDIT_BITRATE_DISPLAY 1021
-#define IDC_EDIT_ADD_UID 1021
-#define IDC_EDIT_TAG_ALBUM 1022
-#define IDC_EDIT_TAG_ARTIST 1023
-#define IDC_COMBO_TAG_TRACKS 1024
-#define IDC_STATIC_TAG_NAME 1025
-#define IDC_EDIT_TAG_YEAR 1025
-#define IDC_BUTTON_ADDTAG 1026
-#define IDC_EDIT_TAG_BPM 1026
-#define IDC_LIST_ADDTAG 1027
-#define IDC_EDIT_TAG_TRACKNO 1027
-#define IDC_BUTTON_DELETETAG 1027
-#define IDC_BUTTON_ADDTAG_CANCEL 1028
-#define IDC_BUTTON_ADDTAG_OK 1029
-#define IDC_STATIC_TAGADD_INFO 1030
-#define IDC_STATIC_ABOUT 1031
-#define IDC_BUTTON_PROP_ABOUT 1033
-#define IDC_BUTTON_TAGS_RELOAD 1035
-#define IDC_STATIC_ATTACHMENTS_LIST 1037
-#define IDC_BUTTON_VIEW_ATTACHMENT 1038
-#define IDC_STATIC_ATTACHMENT_INFO 1039
-#define IDC_COMBO_ATTACHMENT 1040
-#define IDC_STATIC_ATTACHMENT_FRAME 1041
-#define IDC_BUTTON_CHANGE_DISPLAY_SIZE 1042
-#define IDC_BUTTON_PROP_CHANGE 1042
-#define IDC_BUTTON_LOAD_ATTACHMENTS 1043
-#define IDC_EDIT_HEIGHT 1044
-#define IDC_EDIT_WIDTH 1045
-#define IDC_BUTTON_DISPLAY_SIZE_OK 1046
-#define IDC_BUTTON_DISPLAY_SIZE_CANCEL 1047
-#define IDC_RADIO_BASIC_INFOMATION 1048
-#define IDC_RADIO_ADVANCED_INFO 1049
-#define IDC_LIST_INFOMATION 1050
-#define IDC_EDIT_ATTACHED_TEXT 1051
-#define IDC_CHECK_ENABLE_TOOLTIPS 1052
-#define IDC_CHECK_ENABLE_THUMBNAILS 1053
-#define IDC_LIST_THUMBNAIL_ORDER 1058
-#define IDC_SPIN_THUMBNAIL_ORDER 1061
-#define IDC_COMBO_THUMBNAIL_RESIZE 1062
-#define IDC_CHECK_DISPLAY_INFO 1065
-#define IDC_CHECK_DISPLAY_TAG 1066
-#define IDC_BUTTON_CONFIG 1066
-#define IDC_CHECK_DISPLAY_ATTACHMENTS 1067
-#define IDC_LIST_ATTACHMENT 1067
-#define IDC_PROGRESS_BAR 1069
-#define IDC_BUTTON_ABORT 1070
-#define IDC_STATIC_PROGRESS 1071
-#define IDC_CHECK_USE_SHORT_TOOLTIPS 1072
-#define IDC_SPIN_FRAMETIME 1074
-#define IDC_EDIT_FRAMETIME 1075
-#define IDC_SPIN_DISPLAY_HEIGHT 1076
-#define IDC_EDIT_THUMBNAIL_TIMEOUT 1076
-#define IDC_SPIN_DISPLAY_WIDTH 1077
-#define IDC_SPIN_FRAMETIME2 1077
-#define IDC_PROGRESS_MUXING 1078
-#define IDC_STATIC_MUXING 1079
-#define IDC_BUTTON_CANCEL_MUXING 1080
-#define IDC_RADIO_NO_ICON 1081
-#define IDC_RADIO_MKV_JORY 1082
-#define IDC_RADIO_MONKEY 1083
-#define IDC_RADIO_MKV_BLUE 1084
-#define IDC_BUTTON_SELECT_ICON 1085
-#define IDC_CHECK_ENABLE_CONTEXT_MENU 1086
-#define IDC_CHECK_ENABLE_TASK_THUMBNAILS 1087
-#define IDC_CONFIG_OK 1088
-#define IDC_CONFIG_CANCEL 1089
-#define IDC_REG_FILENAME 1090
-#define IDC_TAG_DATETIMEPICKER_TIME 1091
-#define IDC_STATIC_TAG_FOUND 1092
-#define IDC_TAG_DATETIMEPICKER_DATE 1093
-#define IDC_CHECK_ENABLE_DSHOW_FALLBACK 1095
-#define IDC_CHECK_ENABLE_IMEDIADET_DSHOW_FALLBACK 1096
-#define IDC_CHECK_ENABLE_COLUMN 1097
-#define IDC_EDIT_ATTACHMENT 1098
-#define IDC_SAVE_ATTACHMENT 1099
-#define IDC_COMBO_TAG_GENRE 1104
-#define IDC_EDIT_TAG_RATING 1106
-#define IDC_EDIT_TAG_COMMENT 1107
-#define IDC_SPIN_TAG_RATING 1108
-#define IDC_SPIN_TAG_BPM 1109
-#define IDC_BUTTON_SIMPLE_TAG_SAVE 1110
-#define IDC_BUTTON_EXPORT_XML 1111
-#define IDC_STATIC_ABOUT_IMAGE 1112
-#define IDC_BUTTON_LANGUAGE_OK 1114
-#define IDC_BUTTON_LANGUAGE_CANCEL 1115
-#define IDC_BUTTON_CHOOSE_ICON 1116
-#define IDC_SPIN_CACHE_LIMIT 1117
-#define IDC_BUTTON_TAG_IMPORT 1118
-#define IDC_LIST_VIEW_TRACKS 1119
-#define IDC_BUTTON_SAVE_DUMP 1120
-#define IDC_STATIC_CRASH_TITLE 1121
-#define IDC_EDIT_CRASH_USER_TEXT 1123
-#define IDC_BUTTON_CRASH_ME 1124
-#define IDC_STATIC_ADD_TAG_1 1125
-#define IDC_STATIC_DISPLAY_SIZE_1 1126
-#define IDC_STATIC_DISPLAY_SIZE_2 1127
-#define IDC_STATIC_DISPLAY_SIZE_3 1128
-#define IDC_STATIC_LANGUAGE_1 1129
-#define IDC_STATIC_CONFIG_1 1130
-#define IDC_STATIC_CONFIG_2 1131
-#define IDC_STATIC_CONFIG_4 1132
-#define IDC_STATIC_CONFIG_3 1133
-#define IDC_STATIC_CONFIG_10 1134
-#define IDC_STATIC_CONFIG_6 1135
-#define IDC_STATIC_CONFIG_7 1136
-#define IDC_STATIC_CONFIG_9 1137
-#define IDC_STATIC_CONFIG_8 1138
-#define IDC_STATIC_CONFIG_5 1139
-#define IDC_STATIC_CONFIG_11 1140
-#define IDC_BUTTON_ABOUT_OK 1141
-#define IDC_BUTTON_CONFIG_SET_TRANSLATION 1142
-#define IDC_STATIC_PROGRESS_TITLE 1143
-#define IDC_STATIC_ATTACHMENT_BORDER 1144
-#define IDC_STATIC_ATTACHMENT_PREVIEW 1145
-#define IDC_STATIC_INFO_BORDER 1146
-#define IDC_STATIC_INFO_TRACK_BORDER 1147
-#define IDC_STATIC_INFO_TRACKS 1148
-#define IDC_STATIC_TAG_1 1149
-#define IDC_STATIC_TAG_2 1150
-#define IDC_STATIC_TAG_3 1151
-#define IDC_STATIC_TAG_4 1152
-#define IDC_STATIC_TAG_FRAME_BORDER 1153
-#define IDC_STATIC_TAG_5 1154
-#define IDC_LIST_VIEW_ICON_CHOICE 1155
-#define IDC_STATIC_TRANSLATION_BY 1156
-#define IDC_CHECK_ENABLE_CRASH_CATCHER 1158
-#define IDC_BUTTON_ADD_SIMPLE_TAG_OK 1159
-#define IDC_BUTTON_ADD_SIMPLE_TAG_CANCEL 1160
-#define IDC_STATIC_NAME 1161
-#define IDC_STATIC_VALUE 1162
-#define IDC_BUTTON_BITRATE 1163
-#define IDC_BUTTON_BITRATE_OK 1165
-#define IDC_STATIC_BITRATE_USAGE 1166
-#define IDC_PROGRESS_BAR_BITRATE 1167
-#define IDC_CHECK_AUTO_RELOAD_TAGS 1168
-#define IDC_TAB_CONFIG 1169
-#define IDC_LIST_TAG_ASSIGNED_UID 1170
-#define IDC_BUTTON_TAG_UID_ADD 1171
-#define IDC_BUTTON_TAG_UID_DELETE 1172
-#define IDC_LIST_TAG_ENTRIES 1173
-#define IDC_BUTTON_TAG_ENTRY_ADD 1174
-#define IDC_STATIC_TAG_ASSIGNED_UID 1175
-#define IDC_BUTTON_TAG_ENTRY_DELETE 1176
-#define IDC_BUTTON_ADD_UID_OK 1176
-#define IDC_STATIC_TAG_ENTRIES 1177
-#define IDC_BUTTON_ADD_UID_CANCEL 1177
-#define IDC_STATIC_ADD_UID_1 1178
-#define IDC_LIST_ADD_UID 1179
-#define IDC_STATIC_CHAPTER_BORDER 1180
-#define IDC_TREE_CHAPTER 1181
-#define IDC_BUTTON1 1182
-#define IDC_BUTTON_ABOUT_LISTEN 1182
-#define IDC_BUTTON_BITRATE_SAVE 1182
-#define IDC_BUTTON_EXPORT_CHAPTERS_XML 1182
-#define RESOURCE_VERSION_BUILD 2219
-#define IDC_MENU_COPY_CLIPBOARD 40001
-
-// Next default values for new objects
-//=20
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 160
-#define _APS_NEXT_COMMAND_VALUE 40002
-#define _APS_NEXT_CONTROL_VALUE 1183
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by MatroskaCDL.rc
+//
+#define RESOURCE_VERSION_MAJOR 2
+#define RESOURCE_VERSION_MINOR 8
+#define IDD_CFGDIALOG 101
+#define IDD_TREEDIALOG 102
+#define IDD_DIALOG1 104
+#define IDD_DIALOG2 105
+#define IDD_DIALOG_ABOUT 105
+#define IDD_PROPPAGE 106
+#define IDB_BITMAP1 106
+#define IDD_TAG_TAB 107
+#define IDD_TAG_SIMPLE_TAB 108
+#define IDB_BITMAP_LOGO 110
+#define IDD_DIALOG_ADDTAG 115
+#define IDD_DIALOG_DISPLAY_SIZE 117
+#define IDD_DIALOG_DISPLAY_TEXT 118
+#define IDI_ICON_WRENCH 120
+#define IDI_ICON_MKV1 122
+#define IDD_DIALOG_SHELL_OPTIONS 125
+#define IDD_PROPPAGE_ATTACHMENT 126
+#define IDI_ICON_MKV_BLUE 130
+#define IDR_MENU_CLIPBOARD 131
+#define IDI_ICON_MONKEY 133
+#define IDD_DIALOG_PROGRESS 135
+#define IDD_DIALOG_MUXER 136
+#define IDD_DIALOG_ICONS 137
+#define IDR_PNG_MATROSKA_CDL 140
+#define IDR_PNG_MATROSKA_INFO 142
+#define IDD_DIALOG_SELECT_LANGUAGE 144
+#define IDI_ICON_MKV6 146
+#define IDI_ICON_MKV_DOLL_4 147
+#define IDD_DIALOG_CRASH 148
+#define IDI_ICON_MKV_DOLL_5 148
+#define IDI_ICON_AUDIO 149
+#define IDI_ICON_SUBTITLE 150
+#define IDI_ICON_VIDEO 151
+#define IDI_ICON_COW 152
+#define IDD_DIALOG_ADD_SIMPLE_TAG 154
+#define IDD_DIALOG_BITRATE 155
+#define IDD_DIALOG_ADD_UID 156
+#define IDD_PROPPAGE_CHAPTER 157
+#define IDR_MP31 158
+#define IDI_ICON1 159
+#define IDI_ICON_SETUP 159
+#define IDC_EDIT_TITLE 1001
+#define IDC_LIST_TAGS 1003
+#define IDC_BUTTON_SAVE 1004
+#define IDC_EDIT_SELECTED_TAG_TEXT 1005
+#define IDC_EDIT_SELECTED_TAG_TYPE 1006
+#define IDC_LIST_TRACKS 1009
+#define IDC_STATIC_TRACK_UID 1010
+#define IDC_STATIC_TRACK_NUMBER 1011
+#define IDC_STATIC_TRACK_TYPE 1012
+#define IDC_STATIC_TRACK_INFO 1013
+#define IDC_COMBO_TAG_TYPE 1016
+#define IDC_CHECK_DAR 1017
+#define IDC_CHECK_TAG_TAB 1018
+#define IDC_COMBO1 1019
+#define IDC_CHECK_TAG_TAB_SIMPLE 1019
+#define IDC_COMBO_TAG_SIMPLE_TRACKS 1019
+#define IDC_COMBO_PROP_CHANGE 1019
+#define IDC_COMBO_LANGUAGE_SELECTION 1019
+#define IDC_COMBO_CONFIG_LANGUAGE 1019
+#define IDC_COMBO_TAG_NAME 1019
+#define IDC_COMBO_TAG_FIELD 1020
+#define IDC_EDIT1 1021
+#define IDC_EDIT_TAG_TITLE 1021
+#define IDC_EDIT_CACHE_LIMIT 1021
+#define IDC_EDIT_CRASH_REPORT 1021
+#define IDC_EDIT_TAG_VALUE 1021
+#define IDC_EDIT_BITRATE_DISPLAY 1021
+#define IDC_EDIT_ADD_UID 1021
+#define IDC_EDIT_TAG_ALBUM 1022
+#define IDC_EDIT_TAG_ARTIST 1023
+#define IDC_COMBO_TAG_TRACKS 1024
+#define IDC_STATIC_TAG_NAME 1025
+#define IDC_EDIT_TAG_YEAR 1025
+#define IDC_BUTTON_ADDTAG 1026
+#define IDC_EDIT_TAG_BPM 1026
+#define IDC_LIST_ADDTAG 1027
+#define IDC_EDIT_TAG_TRACKNO 1027
+#define IDC_BUTTON_DELETETAG 1027
+#define IDC_BUTTON_ADDTAG_CANCEL 1028
+#define IDC_BUTTON_ADDTAG_OK 1029
+#define IDC_STATIC_TAGADD_INFO 1030
+#define IDC_STATIC_ABOUT 1031
+#define IDC_BUTTON_PROP_ABOUT 1033
+#define IDC_BUTTON_TAGS_RELOAD 1035
+#define IDC_STATIC_ATTACHMENTS_LIST 1037
+#define IDC_BUTTON_VIEW_ATTACHMENT 1038
+#define IDC_STATIC_ATTACHMENT_INFO 1039
+#define IDC_COMBO_ATTACHMENT 1040
+#define IDC_STATIC_ATTACHMENT_FRAME 1041
+#define IDC_BUTTON_CHANGE_DISPLAY_SIZE 1042
+#define IDC_BUTTON_PROP_CHANGE 1042
+#define IDC_BUTTON_LOAD_ATTACHMENTS 1043
+#define IDC_EDIT_HEIGHT 1044
+#define IDC_EDIT_WIDTH 1045
+#define IDC_BUTTON_DISPLAY_SIZE_OK 1046
+#define IDC_BUTTON_DISPLAY_SIZE_CANCEL 1047
+#define IDC_RADIO_BASIC_INFOMATION 1048
+#define IDC_RADIO_ADVANCED_INFO 1049
+#define IDC_LIST_INFOMATION 1050
+#define IDC_EDIT_ATTACHED_TEXT 1051
+#define IDC_CHECK_ENABLE_TOOLTIPS 1052
+#define IDC_CHECK_ENABLE_THUMBNAILS 1053
+#define IDC_LIST_THUMBNAIL_ORDER 1058
+#define IDC_SPIN_THUMBNAIL_ORDER 1061
+#define IDC_COMBO_THUMBNAIL_RESIZE 1062
+#define IDC_CHECK_DISPLAY_INFO 1065
+#define IDC_CHECK_DISPLAY_TAG 1066
+#define IDC_BUTTON_CONFIG 1066
+#define IDC_CHECK_DISPLAY_ATTACHMENTS 1067
+#define IDC_LIST_ATTACHMENT 1067
+#define IDC_PROGRESS_BAR 1069
+#define IDC_BUTTON_ABORT 1070
+#define IDC_STATIC_PROGRESS 1071
+#define IDC_CHECK_USE_SHORT_TOOLTIPS 1072
+#define IDC_SPIN_FRAMETIME 1074
+#define IDC_EDIT_FRAMETIME 1075
+#define IDC_SPIN_DISPLAY_HEIGHT 1076
+#define IDC_EDIT_THUMBNAIL_TIMEOUT 1076
+#define IDC_SPIN_DISPLAY_WIDTH 1077
+#define IDC_SPIN_FRAMETIME2 1077
+#define IDC_PROGRESS_MUXING 1078
+#define IDC_STATIC_MUXING 1079
+#define IDC_BUTTON_CANCEL_MUXING 1080
+#define IDC_RADIO_NO_ICON 1081
+#define IDC_RADIO_MKV_JORY 1082
+#define IDC_RADIO_MONKEY 1083
+#define IDC_RADIO_MKV_BLUE 1084
+#define IDC_BUTTON_SELECT_ICON 1085
+#define IDC_CHECK_ENABLE_CONTEXT_MENU 1086
+#define IDC_CHECK_ENABLE_TASK_THUMBNAILS 1087
+#define IDC_CONFIG_OK 1088
+#define IDC_CONFIG_CANCEL 1089
+#define IDC_REG_FILENAME 1090
+#define IDC_TAG_DATETIMEPICKER_TIME 1091
+#define IDC_STATIC_TAG_FOUND 1092
+#define IDC_TAG_DATETIMEPICKER_DATE 1093
+#define IDC_CHECK_ENABLE_DSHOW_FALLBACK 1095
+#define IDC_CHECK_ENABLE_IMEDIADET_DSHOW_FALLBACK 1096
+#define IDC_CHECK_ENABLE_COLUMN 1097
+#define IDC_EDIT_ATTACHMENT 1098
+#define IDC_SAVE_ATTACHMENT 1099
+#define IDC_COMBO_TAG_GENRE 1104
+#define IDC_EDIT_TAG_RATING 1106
+#define IDC_EDIT_TAG_COMMENT 1107
+#define IDC_SPIN_TAG_RATING 1108
+#define IDC_SPIN_TAG_BPM 1109
+#define IDC_BUTTON_SIMPLE_TAG_SAVE 1110
+#define IDC_BUTTON_EXPORT_XML 1111
+#define IDC_STATIC_ABOUT_IMAGE 1112
+#define IDC_BUTTON_LANGUAGE_OK 1114
+#define IDC_BUTTON_LANGUAGE_CANCEL 1115
+#define IDC_BUTTON_CHOOSE_ICON 1116
+#define IDC_SPIN_CACHE_LIMIT 1117
+#define IDC_BUTTON_TAG_IMPORT 1118
+#define IDC_LIST_VIEW_TRACKS 1119
+#define IDC_BUTTON_SAVE_DUMP 1120
+#define IDC_STATIC_CRASH_TITLE 1121
+#define IDC_EDIT_CRASH_USER_TEXT 1123
+#define IDC_BUTTON_CRASH_ME 1124
+#define IDC_STATIC_ADD_TAG_1 1125
+#define IDC_STATIC_DISPLAY_SIZE_1 1126
+#define IDC_STATIC_DISPLAY_SIZE_2 1127
+#define IDC_STATIC_DISPLAY_SIZE_3 1128
+#define IDC_STATIC_LANGUAGE_1 1129
+#define IDC_STATIC_CONFIG_1 1130
+#define IDC_STATIC_CONFIG_2 1131
+#define IDC_STATIC_CONFIG_4 1132
+#define IDC_STATIC_CONFIG_3 1133
+#define IDC_STATIC_CONFIG_10 1134
+#define IDC_STATIC_CONFIG_6 1135
+#define IDC_STATIC_CONFIG_7 1136
+#define IDC_STATIC_CONFIG_9 1137
+#define IDC_STATIC_CONFIG_8 1138
+#define IDC_STATIC_CONFIG_5 1139
+#define IDC_STATIC_CONFIG_11 1140
+#define IDC_BUTTON_ABOUT_OK 1141
+#define IDC_BUTTON_CONFIG_SET_TRANSLATION 1142
+#define IDC_STATIC_PROGRESS_TITLE 1143
+#define IDC_STATIC_ATTACHMENT_BORDER 1144
+#define IDC_STATIC_ATTACHMENT_PREVIEW 1145
+#define IDC_STATIC_INFO_BORDER 1146
+#define IDC_STATIC_INFO_TRACK_BORDER 1147
+#define IDC_STATIC_INFO_TRACKS 1148
+#define IDC_STATIC_TAG_1 1149
+#define IDC_STATIC_TAG_2 1150
+#define IDC_STATIC_TAG_3 1151
+#define IDC_STATIC_TAG_4 1152
+#define IDC_STATIC_TAG_FRAME_BORDER 1153
+#define IDC_STATIC_TAG_5 1154
+#define IDC_LIST_VIEW_ICON_CHOICE 1155
+#define IDC_STATIC_TRANSLATION_BY 1156
+#define IDC_CHECK_ENABLE_CRASH_CATCHER 1158
+#define IDC_BUTTON_ADD_SIMPLE_TAG_OK 1159
+#define IDC_BUTTON_ADD_SIMPLE_TAG_CANCEL 1160
+#define IDC_STATIC_NAME 1161
+#define IDC_STATIC_VALUE 1162
+#define IDC_BUTTON_BITRATE 1163
+#define IDC_BUTTON_BITRATE_OK 1165
+#define IDC_STATIC_BITRATE_USAGE 1166
+#define IDC_PROGRESS_BAR_BITRATE 1167
+#define IDC_CHECK_AUTO_RELOAD_TAGS 1168
+#define IDC_TAB_CONFIG 1169
+#define IDC_LIST_TAG_ASSIGNED_UID 1170
+#define IDC_BUTTON_TAG_UID_ADD 1171
+#define IDC_BUTTON_TAG_UID_DELETE 1172
+#define IDC_LIST_TAG_ENTRIES 1173
+#define IDC_BUTTON_TAG_ENTRY_ADD 1174
+#define IDC_STATIC_TAG_ASSIGNED_UID 1175
+#define IDC_BUTTON_TAG_ENTRY_DELETE 1176
+#define IDC_BUTTON_ADD_UID_OK 1176
+#define IDC_STATIC_TAG_ENTRIES 1177
+#define IDC_BUTTON_ADD_UID_CANCEL 1177
+#define IDC_STATIC_ADD_UID_1 1178
+#define IDC_LIST_ADD_UID 1179
+#define IDC_STATIC_CHAPTER_BORDER 1180
+#define IDC_TREE_CHAPTER 1181
+#define IDC_BUTTON1 1182
+#define IDC_BUTTON_ABOUT_LISTEN 1182
+#define IDC_BUTTON_BITRATE_SAVE 1182
+#define IDC_BUTTON_EXPORT_CHAPTERS_XML 1182
+#define RESOURCE_VERSION_BUILD 2219
+#define IDC_MENU_COPY_CLIPBOARD 40001
+
+// Next default values for new objects
+//=20
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 160
+#define _APS_NEXT_COMMAND_VALUE 40002
+#define _APS_NEXT_CONTROL_VALUE 1183
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
Property changes on: trunk/MatroskaUtils/resource.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/MatroskaUtils/tinyxml/tinystr.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/config.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/config.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/config.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,31 +1,31 @@
-//#define CONFIG_STATIC
-#define CONFIG_UNICODE
-#define CONFIG_MULTITHREAD
-#define OSX_UNIVERSAL
-
-//-----------
-// failsafes
-
-#if !defined(ARM) || defined(TARGET_SYMBIAN)
-#undef CONFIG_WMMX
-#endif
-
-#if !defined(IX86) || defined(TARGET_SYMBIAN)
-#undef CONFIG_MMX
-#endif
-
-#if !defined(CONFIG_UNICODE) && (defined(TARGET_WINCE) || defined(TARGET=
_SYMBIAN))
-#define CONFIG_UNICODE
-#endif
-
-#if defined(CONFIG_MULTITHREAD) && (defined(TARGET_SYMBIAN) || defined(T=
ARGET_PALMOS))
-#undef CONFIG_MULTITHREAD
-#endif
-
-#if defined(CONFIG_UNICODE) && (defined(TARGET_PALMOS) || defined(TARGET=
_LINUX))
-#undef CONFIG_UNICODE
-#endif
-
-#if !defined(CONFIG_STATIC) && defined(TARGET_PALMOS) && defined(IX86)
-#define CONFIG_STATIC
-#endif
+//#define CONFIG_STATIC
+#define CONFIG_UNICODE
+#define CONFIG_MULTITHREAD
+#define OSX_UNIVERSAL
+
+//-----------
+// failsafes
+
+#if !defined(ARM) || defined(TARGET_SYMBIAN)
+#undef CONFIG_WMMX
+#endif
+
+#if !defined(IX86) || defined(TARGET_SYMBIAN)
+#undef CONFIG_MMX
+#endif
+
+#if !defined(CONFIG_UNICODE) && (defined(TARGET_WINCE) || defined(TARGET=
_SYMBIAN))
+#define CONFIG_UNICODE
+#endif
+
+#if defined(CONFIG_MULTITHREAD) && (defined(TARGET_SYMBIAN) || defined(T=
ARGET_PALMOS))
+#undef CONFIG_MULTITHREAD
+#endif
+
+#if defined(CONFIG_UNICODE) && (defined(TARGET_PALMOS) || defined(TARGET=
_LINUX))
+#undef CONFIG_UNICODE
+#endif
+
+#if !defined(CONFIG_STATIC) && defined(TARGET_PALMOS) && defined(IX86)
+#define CONFIG_STATIC
+#endif
Property changes on: trunk/config.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/foo_input_matroska/DbgOut.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/foo_input_matroska/DbgOut.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/foo_input_matroska/DbgOut.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,105 +1,105 @@
-/**
- * Part of the foobar2000 Matroska plugin
- *
- * Copyright (C) Jory Stone - 2003
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING=
THE
- * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PU=
RPOSE.
- *
-*/
-
-#ifndef _DBG_OUT_H_
-#define _DBG_OUT_H_
-
-#define STRICT
-#define WINDOWS_LEAN_AND_MEAN
-#include <windows.h>
-#include <windowsx.h>
-#include <tchar.h>
-
-#ifdef _DEBUG
-//#define DEBUG_OUT_PUT
-#include <tchar.h>
-#include <stdarg.h>
-#include <fstream>
-#include <string>
-#include <locale>
-namespace win32
-{
- typedef std::basic_string< _TCHAR > string;
- typedef std::basic_fstream< _TCHAR > fstream;
-}
-#define HPRINTF_MES_LENGTH 256
-inline void hprintf( const _TCHAR * format, ... )
-{
- _TCHAR buff[HPRINTF_MES_LENGTH];
- va_list vl;
- va_start(vl, format);
- _vsntprintf(buff, HPRINTF_MES_LENGTH, format, vl);
- va_end(vl);
- OutputDebugString(buff);
- //*
- win32::string basicstring(buff);
- win32::fstream f("foo_input_matroska.debug.txt", std::ios::out|std::=
ios::app);
- f << basicstring.c_str();
- f.close();
- //*/
-}
-#include <boost/timer.hpp>
-#define TIMER boost::timer t
-#define RETIMER t.restart()
-#define _TIMER(x) hprintf(L"%S: %f sec.\n",x,t.elapsed())
-#else
-#define TIMER __noop
-#define RETIMER __noop
-#define _TIMER(x) __noop
-#define hprintf __noop
-#endif
-
-#ifdef DEBUG_OUT_PUT
-void WINAPI DbgStringOut(const TCHAR *pFormat,...);
-#ifdef UNICODE
-void WINAPI DbgLogInfo(const CHAR *pFormat,...)
-#endif
-#define NOTE(x) DbgStringOut(x)
-#define NOTE1(x, y1) DbgStringOut(x, y1)
-#define NOTE2(x, y1, y2) DbgStringOut(x, y1, y2)
-#define NOTE3(x, y1, y2, y3) DbgStringOut(x, y1, y2, y3)
-#define NOTE4(x, y1, y2, y3, y4) DbgStringOut(x, y1, y2, y3, y4)
-#define NOTE5(x, y1, y2, y3, y4, y5) DbgStringOut(x, y1, y2, y3, y4, y5)
-#define NOTE6(x, y1, y2, y3, y4, y5, y6) DbgStringOut(x, y1, y2, y3, y4,=
y5, y6)
-#define NOTE10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10) DbgStringOut(=
x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
-#define ODS(x) DbgStringOut(x)
-#define ODS1(x, y1) DbgStringOut(x, y1)
-#define ODS2(x, y1, y2) DbgStringOut(x, y1, y2)
-#define ODS3(x, y1, y2, y3) DbgStringOut(x, y1, y2, y3)
-#define ODS4(x, y1, y2, y3, y4) DbgStringOut(x, y1, y2, y3, y4)
-#define ODS5(x, y1, y2, y3, y4, y5) DbgStringOut(x, y1, y2, y3, y4, y5)
-#define ODS6(x, y1, y2, y3, y4, y5, y6) DbgStringOut(x, y1, y2, y3, y4, =
y5, y6)
-#define ODS10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10) DbgStringOut(x=
, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
-#else
-#define NOTE(x)
-#define NOTE1(x, y1)
-#define NOTE2(x, y1, y2)
-#define NOTE3(x, y1, y2, y3)
-#define NOTE4(x, y1, y2, y3, y4)
-#define NOTE5(x, y1, y2, y3, y4, y5)
-#define NOTE6(x, y1, y2, y3, y4, y5, y6)
-#define NOTE10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
-#define ODS(x)
-#define ODS1(x, y1)
-#define ODS2(x, y1, y2)
-#define ODS3(x, y1, y2, y3)
-#define ODS4(x, y1, y2, y3, y4)
-#define ODS5(x, y1, y2, y3, y4, y5)
-#define ODS6(x, y1, y2, y3, y4, y5, y6)
-#define ODS10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
-#endif
-
-
-#endif // _DBG_OUT_H_
+/**
+ * Part of the foobar2000 Matroska plugin
+ *
+ * Copyright (C) Jory Stone - 2003
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING=
THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PU=
RPOSE.
+ *
+*/
+
+#ifndef _DBG_OUT_H_
+#define _DBG_OUT_H_
+
+#define STRICT
+#define WINDOWS_LEAN_AND_MEAN
+#include <windows.h>
+#include <windowsx.h>
+#include <tchar.h>
+
+#ifdef _DEBUG
+//#define DEBUG_OUT_PUT
+#include <tchar.h>
+#include <stdarg.h>
+#include <fstream>
+#include <string>
+#include <locale>
+namespace win32
+{
+ typedef std::basic_string< _TCHAR > string;
+ typedef std::basic_fstream< _TCHAR > fstream;
+}
+#define HPRINTF_MES_LENGTH 256
+inline void hprintf( const _TCHAR * format, ... )
+{
+ _TCHAR buff[HPRINTF_MES_LENGTH];
+ va_list vl;
+ va_start(vl, format);
+ _vsntprintf(buff, HPRINTF_MES_LENGTH, format, vl);
+ va_end(vl);
+ OutputDebugString(buff);
+ //*
+ win32::string basicstring(buff);
+ win32::fstream f("foo_input_matroska.debug.txt", std::ios::out|std::=
ios::app);
+ f << basicstring.c_str();
+ f.close();
+ //*/
+}
+#include <boost/timer.hpp>
+#define TIMER boost::timer t
+#define RETIMER t.restart()
+#define _TIMER(x) hprintf(L"%S: %f sec.\n",x,t.elapsed())
+#else
+#define TIMER __noop
+#define RETIMER __noop
+#define _TIMER(x) __noop
+#define hprintf __noop
+#endif
+
+#ifdef DEBUG_OUT_PUT
+void WINAPI DbgStringOut(const TCHAR *pFormat,...);
+#ifdef UNICODE
+void WINAPI DbgLogInfo(const CHAR *pFormat,...)
+#endif
+#define NOTE(x) DbgStringOut(x)
+#define NOTE1(x, y1) DbgStringOut(x, y1)
+#define NOTE2(x, y1, y2) DbgStringOut(x, y1, y2)
+#define NOTE3(x, y1, y2, y3) DbgStringOut(x, y1, y2, y3)
+#define NOTE4(x, y1, y2, y3, y4) DbgStringOut(x, y1, y2, y3, y4)
+#define NOTE5(x, y1, y2, y3, y4, y5) DbgStringOut(x, y1, y2, y3, y4, y5)
+#define NOTE6(x, y1, y2, y3, y4, y5, y6) DbgStringOut(x, y1, y2, y3, y4,=
y5, y6)
+#define NOTE10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10) DbgStringOut(=
x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
+#define ODS(x) DbgStringOut(x)
+#define ODS1(x, y1) DbgStringOut(x, y1)
+#define ODS2(x, y1, y2) DbgStringOut(x, y1, y2)
+#define ODS3(x, y1, y2, y3) DbgStringOut(x, y1, y2, y3)
+#define ODS4(x, y1, y2, y3, y4) DbgStringOut(x, y1, y2, y3, y4)
+#define ODS5(x, y1, y2, y3, y4, y5) DbgStringOut(x, y1, y2, y3, y4, y5)
+#define ODS6(x, y1, y2, y3, y4, y5, y6) DbgStringOut(x, y1, y2, y3, y4, =
y5, y6)
+#define ODS10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10) DbgStringOut(x=
, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
+#else
+#define NOTE(x)
+#define NOTE1(x, y1)
+#define NOTE2(x, y1, y2)
+#define NOTE3(x, y1, y2, y3)
+#define NOTE4(x, y1, y2, y3, y4)
+#define NOTE5(x, y1, y2, y3, y4, y5)
+#define NOTE6(x, y1, y2, y3, y4, y5, y6)
+#define NOTE10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
+#define ODS(x)
+#define ODS1(x, y1)
+#define ODS2(x, y1, y2)
+#define ODS3(x, y1, y2, y3)
+#define ODS4(x, y1, y2, y3, y4)
+#define ODS5(x, y1, y2, y3, y4, y5)
+#define ODS6(x, y1, y2, y3, y4, y5, y6)
+#define ODS10(x, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)
+#endif
+
+
+#endif // _DBG_OUT_H_
Property changes on: trunk/foo_input_matroska/DbgOut.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/foo_input_matroska/Foobar2000ReaderIOCallback.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/foo_input_matroska/Foobar2000ReaderIOCallback.h 2007-02-17 10:3=
4:40 UTC (rev 1276)
+++ trunk/foo_input_matroska/Foobar2000ReaderIOCallback.h 2007-02-17 10:5=
5:54 UTC (rev 1277)
@@ -1,91 +1,91 @@
-/*
- * Part of the foobar2000 Matroska plugin
- *
- * Copyright (C) Jory Stone (jcsston at toughguy net) - 2003
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING =
THE
- * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PUR=
POSE.
- *
- */
-=20
-#ifndef _FOOBAR2000_IO_CALLBACK_H_
-#define _FOOBAR2000_IO_CALLBACK_H_
-
-#include "../SDK/foobar2000.h"
-#include "ebml/IOCallback.h"
-
-using namespace LIBEBML_NAMESPACE;
-
-class Foobar2000ReaderIOCallback : public IOCallback {
-public:
- Foobar2000ReaderIOCallback(service_ptr_t<file> & source, abort_callback=
& p_abort)
- : m_abort(p_abort)
- {
- m_Reader =3D source;
- if (!m_Reader->can_seek()) {
- m_NoSeekReader =3D source;
- }
- };
-
- virtual ~Foobar2000ReaderIOCallback() {
- close();
- };
-
- virtual uint32 read(void*Buffer, size_t Size) {
- return m_Reader->read(Buffer, Size, m_abort);
- };
-
- virtual void setFilePointer(int64 Offset, seek_mode Mode=3Dseek_beginni=
ng) {
- switch (Mode)
- {
- case seek_beginning:
- m_Reader->seek(Offset, m_abort);
- break;
- case seek_current:
- m_Reader->seek_ex(Offset, file::seek_from_current, m_abort);
- break;
- case seek_end:
- m_Reader->seek_ex(Offset, file::seek_from_eof, m_abort);
- break;
- default:
- //throw "Invalid Seek Mode!!!";
- ;
- };
- }
-
- virtual size_t write(const void*Buffer, size_t Size) {
- m_Reader->write(Buffer, Size, m_abort);
- return Size;
- }
-
- virtual uint64 getFilePointer() {
- return m_Reader->get_position(m_abort);
- };
-
- virtual void close() {
- }
-
- bool seekable() {
- if (m_NoSeekReader =3D=3D NULL)
- return true;
- return false;
- };
-
- bool truncate()
- {
- m_Reader->set_eof(m_abort);
- return true;
- }
-
-protected:
- service_ptr_t<file> m_Reader;
- service_ptr_t<file> m_NoSeekReader;
- abort_callback & m_abort;
-};
-
-#endif // _FOOBAR2000_IO_CALLBACK_H_
+/*
+ * Part of the foobar2000 Matroska plugin
+ *
+ * Copyright (C) Jory Stone (jcsston at toughguy net) - 2003
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING =
THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PUR=
POSE.
+ *
+ */
+=20
+#ifndef _FOOBAR2000_IO_CALLBACK_H_
+#define _FOOBAR2000_IO_CALLBACK_H_
+
+#include "../SDK/foobar2000.h"
+#include "ebml/IOCallback.h"
+
+using namespace LIBEBML_NAMESPACE;
+
+class Foobar2000ReaderIOCallback : public IOCallback {
+public:
+ Foobar2000ReaderIOCallback(service_ptr_t<file> & source, abort_callback=
& p_abort)
+ : m_abort(p_abort)
+ {
+ m_Reader =3D source;
+ if (!m_Reader->can_seek()) {
+ m_NoSeekReader =3D source;
+ }
+ };
+
+ virtual ~Foobar2000ReaderIOCallback() {
+ close();
+ };
+
+ virtual uint32 read(void*Buffer, size_t Size) {
+ return m_Reader->read(Buffer, Size, m_abort);
+ };
+
+ virtual void setFilePointer(int64 Offset, seek_mode Mode=3Dseek_beginni=
ng) {
+ switch (Mode)
+ {
+ case seek_beginning:
+ m_Reader->seek(Offset, m_abort);
+ break;
+ case seek_current:
+ m_Reader->seek_ex(Offset, file::seek_from_current, m_abort);
+ break;
+ case seek_end:
+ m_Reader->seek_ex(Offset, file::seek_from_eof, m_abort);
+ break;
+ default:
+ //throw "Invalid Seek Mode!!!";
+ ;
+ };
+ }
+
+ virtual size_t write(const void*Buffer, size_t Size) {
+ m_Reader->write(Buffer, Size, m_abort);
+ return Size;
+ }
+
+ virtual uint64 getFilePointer() {
+ return m_Reader->get_position(m_abort);
+ };
+
+ virtual void close() {
+ }
+
+ bool seekable() {
+ if (m_NoSeekReader =3D=3D NULL)
+ return true;
+ return false;
+ };
+
+ bool truncate()
+ {
+ m_Reader->set_eof(m_abort);
+ return true;
+ }
+
+protected:
+ service_ptr_t<file> m_Reader;
+ service_ptr_t<file> m_NoSeekReader;
+ abort_callback & m_abort;
+};
+
+#endif // _FOOBAR2000_IO_CALLBACK_H_
Property changes on: trunk/foo_input_matroska/Foobar2000ReaderIOCallback.=
h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/foo_input_matroska/container_matroska.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/foo_input_matroska/container_matroska.h 2007-02-17 10:34:40 UTC=
(rev 1276)
+++ trunk/foo_input_matroska/container_matroska.h 2007-02-17 10:55:54 UTC=
(rev 1277)
@@ -1,99 +1,99 @@
-#ifndef _CONTAINER_MATROSKA_H_
-#define _CONTAINER_MATROSKA_H_
-
-namespace foobar2000_io {
-
- namespace matroska {
- class attachment;
-
- typedef pfc::list_base_const_t<attachment> attachment_list;
- }
- =20
- class NOVTABLE container_matroska : public service_base {
- public:
- virtual void open(const char * p_path, bool p_info_only, abort_c=
allback & p_abort)=3D0;
- virtual void open_file(service_ptr_t<file> & p_out, const filesy=
stem::t_open_mode p_mode =3D filesystem::open_mode_read) const =3D0;
- virtual void get_display_path(pfc::string_base & p_out) const =3D=
0;
- virtual bool is_our_path(const char * p_path) const =3D0;
- virtual const matroska::attachment_list * get_attachment_list() =
const =3D0;
-
- public:
- static void g_open(service_ptr_t<container_matroska> & p_out, co=
nst char * p_path, bool p_info_only, abort_callback & p_abort) {
- service_enum_t<container_matroska> e;
- service_ptr_t<container_matroska> ptr;
- while(e.next(ptr)) {
- if (ptr->is_our_path(p_path)) {
- ptr->open(p_path, p_info_only, p_abort);
- p_out =3D ptr;
- return;
- }
- }
- throw exception_io_unsupported_format();
- }
- static bool g_is_our_path(const char * p_path) {
- service_enum_t<container_matroska> e;
- service_ptr_t<container_matroska> ptr;
- while(e.next(ptr)) {
- if (ptr->is_our_path(p_path)) {
- return true;
- }
- }
- return false;
- }
-
- FB2K_MAKE_SERVICE_INTERFACE_ENTRYPOINT(container_matroska);
- };
-
- typedef service_ptr_t<container_matroska> container_matroska_ptr;
-
- namespace matroska {
- class attachment {
- private:
- container_matroska * m_owner;
- abort_callback * m_abort;
- pfc::string8 m_name, m_mime_type, m_description;
- t_size m_size;
- t_sfilesize m_position;
-
- public:
- attachment() : m_owner(0), m_abort(0) {};
- attachment(const container_matroska_ptr & p_owner, abort_cal=
lback & p_abort, const char * p_name, const char * p_mime_type,
- const char * p_description, const t_size p_size,=
const t_sfilesize p_position)
- : m_name(p_name), m_mime_type(p_mime_type), m_descriptio=
n(p_description), m_size(p_size), m_position(p_position)
- {
- m_owner =3D p_owner.get_ptr();
- m_abort =3D &p_abort;
- };
- ~attachment() {};
- void get_name(pfc::string_base & p_out) const { p_out =3D m_=
name; };
- void get_mime_type(pfc::string_base & p_out) const { p_out =3D=
m_mime_type; };
- void get_description(pfc::string_base & p_out) const { p_out=
=3D m_description; };
- t_size get_size() const { return m_size; };
- t_sfilesize get_position() const { return m_position; };
- void get(void * p_buffer, t_sfilesize p_position, t_size p_s=
ize) const {
- service_ptr_t<file> file_ptr;
- m_owner->open_file(file_ptr);
- file_ptr->seek_ex(p_position, file::seek_from_beginning,=
*m_abort);
- file_ptr->read(p_buffer, p_size, *m_abort);
- };
- void get(void * p_buffer, t_size p_size =3D 0) const {
- if (!p_size) {
- p_size =3D get_size();
- }
- get(p_buffer, get_position(), p_size);
- };
- };
- };
-
-};
-
-using namespace foobar2000_io;
-
-template<typename T>
-class container_matroska_factory_t : public service_factory_t<T> {};
-
-// {32491C6C-F941-42cf-8519-EBF5061BB088}
-FOOGUIDDECL const GUID container_matroska::class_guid =3D=20
-{ 0x32491c6c, 0xf941, 0x42cf, { 0x85, 0x19, 0xeb, 0xf5, 0x6, 0x1b, 0xb0,=
0x88 } };
-
+#ifndef _CONTAINER_MATROSKA_H_
+#define _CONTAINER_MATROSKA_H_
+
+namespace foobar2000_io {
+
+ namespace matroska {
+ class attachment;
+
+ typedef pfc::list_base_const_t<attachment> attachment_list;
+ }
+ =20
+ class NOVTABLE container_matroska : public service_base {
+ public:
+ virtual void open(const char * p_path, bool p_info_only, abort_c=
allback & p_abort)=3D0;
+ virtual void open_file(service_ptr_t<file> & p_out, const filesy=
stem::t_open_mode p_mode =3D filesystem::open_mode_read) const =3D0;
+ virtual void get_display_path(pfc::string_base & p_out) const =3D=
0;
+ virtual bool is_our_path(const char * p_path) const =3D0;
+ virtual const matroska::attachment_list * get_attachment_list() =
const =3D0;
+
+ public:
+ static void g_open(service_ptr_t<container_matroska> & p_out, co=
nst char * p_path, bool p_info_only, abort_callback & p_abort) {
+ service_enum_t<container_matroska> e;
+ service_ptr_t<container_matroska> ptr;
+ while(e.next(ptr)) {
+ if (ptr->is_our_path(p_path)) {
+ ptr->open(p_path, p_info_only, p_abort);
+ p_out =3D ptr;
+ return;
+ }
+ }
+ throw exception_io_unsupported_format();
+ }
+ static bool g_is_our_path(const char * p_path) {
+ service_enum_t<container_matroska> e;
+ service_ptr_t<container_matroska> ptr;
+ while(e.next(ptr)) {
+ if (ptr->is_our_path(p_path)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ FB2K_MAKE_SERVICE_INTERFACE_ENTRYPOINT(container_matroska);
+ };
+
+ typedef service_ptr_t<container_matroska> container_matroska_ptr;
+
+ namespace matroska {
+ class attachment {
+ private:
+ container_matroska * m_owner;
+ abort_callback * m_abort;
+ pfc::string8 m_name, m_mime_type, m_description;
+ t_size m_size;
+ t_sfilesize m_position;
+
+ public:
+ attachment() : m_owner(0), m_abort(0) {};
+ attachment(const container_matroska_ptr & p_owner, abort_cal=
lback & p_abort, const char * p_name, const char * p_mime_type,
+ const char * p_description, const t_size p_size,=
const t_sfilesize p_position)
+ : m_name(p_name), m_mime_type(p_mime_type), m_descriptio=
n(p_description), m_size(p_size), m_position(p_position)
+ {
+ m_owner =3D p_owner.get_ptr();
+ m_abort =3D &p_abort;
+ };
+ ~attachment() {};
+ void get_name(pfc::string_base & p_out) const { p_out =3D m_=
name; };
+ void get_mime_type(pfc::string_base & p_out) const { p_out =3D=
m_mime_type; };
+ void get_description(pfc::string_base & p_out) const { p_out=
=3D m_description; };
+ t_size get_size() const { return m_size; };
+ t_sfilesize get_position() const { return m_position; };
+ void get(void * p_buffer, t_sfilesize p_position, t_size p_s=
ize) const {
+ service_ptr_t<file> file_ptr;
+ m_owner->open_file(file_ptr);
+ file_ptr->seek_ex(p_position, file::seek_from_beginning,=
*m_abort);
+ file_ptr->read(p_buffer, p_size, *m_abort);
+ };
+ void get(void * p_buffer, t_size p_size =3D 0) const {
+ if (!p_size) {
+ p_size =3D get_size();
+ }
+ get(p_buffer, get_position(), p_size);
+ };
+ };
+ };
+
+};
+
+using namespace foobar2000_io;
+
+template<typename T>
+class container_matroska_factory_t : public service_factory_t<T> {};
+
+// {32491C6C-F941-42cf-8519-EBF5061BB088}
+FOOGUIDDECL const GUID container_matroska::class_guid =3D=20
+{ 0x32491c6c, 0xf941, 0x42cf, { 0x85, 0x19, 0xeb, 0xf5, 0x6, 0x1b, 0xb0,=
0x88 } };
+
#endif // _CONTAINER_MATROSKA_H_
\ No newline at end of file
Property changes on: trunk/foo_input_matroska/container_matroska.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/foo_input_matroska/container_matroska_impl.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/foo_input_matroska/container_matroska_impl.h 2007-02-17 10:34:4=
0 UTC (rev 1276)
+++ trunk/foo_input_matroska/container_matroska_impl.h 2007-02-17 10:55:5=
4 UTC (rev 1277)
@@ -1,45 +1,45 @@
-#ifndef _CONTAINER_MATROSKA_IMPL_H_
-#define _CONTAINER_MATROSKA_IMPL_H_
-
-#include "matroska_parser.h"
-#include "container_matroska.h"
-
-typedef boost::shared_ptr<MatroskaAudioParser> matroska_parser_ptr;
-
-class container_matroska_impl : public container_matroska
-{
-private:
- typedef pfc::list_t<matroska::attachment> attachment_list_impl;
-
- abort_callback * m_abort;
- pfc::string8 m_path;
- attachment_list_impl m_attachment_list;
-
- void cleanup() {
- m_path.reset();
- m_attachment_list.remove_all();
- };
-
-protected:
- container_matroska_impl() {
- };
- ~container_matroska_impl() {
- cleanup();
- };
-
-public:
- virtual void open(const char * p_path, bool p_info_only, abort_callb=
ack & p_abort);
- virtual void open_file(service_ptr_t<file> & p_out, const filesystem=
::t_open_mode p_mode =3D filesystem::open_mode_read) const;
- virtual void get_display_path(pfc::string_base & p_out) const;
- virtual bool is_our_path(const char * p_path) const {
- if (stricmp_utf8(pfc::string_extension(p_path), "mka") !=3D 0 &&=
stricmp_utf8(pfc::string_extension(p_path), "mkv") !=3D 0) {
- return false;
- }
- return true;
- }
- virtual const matroska::attachment_list * get_attachment_list() cons=
t;
-};
-
-static container_matroska_factory_t<container_matroska_impl> g_container=
_matroska_impl_factory;
-
+#ifndef _CONTAINER_MATROSKA_IMPL_H_
+#define _CONTAINER_MATROSKA_IMPL_H_
+
+#include "matroska_parser.h"
+#include "container_matroska.h"
+
+typedef boost::shared_ptr<MatroskaAudioParser> matroska_parser_ptr;
+
+class container_matroska_impl : public container_matroska
+{
+private:
+ typedef pfc::list_t<matroska::attachment> attachment_list_impl;
+
+ abort_callback * m_abort;
+ pfc::string8 m_path;
+ attachment_list_impl m_attachment_list;
+
+ void cleanup() {
+ m_path.reset();
+ m_attachment_list.remove_all();
+ };
+
+protected:
+ container_matroska_impl() {
+ };
+ ~container_matroska_impl() {
+ cleanup();
+ };
+
+public:
+ virtual void open(const char * p_path, bool p_info_only, abort_callb=
ack & p_abort);
+ virtual void open_file(service_ptr_t<file> & p_out, const filesystem=
::t_open_mode p_mode =3D filesystem::open_mode_read) const;
+ virtual void get_display_path(pfc::string_base & p_out) const;
+ virtual bool is_our_path(const char * p_path) const {
+ if (stricmp_utf8(pfc::string_extension(p_path), "mka") !=3D 0 &&=
stricmp_utf8(pfc::string_extension(p_path), "mkv") !=3D 0) {
+ return false;
+ }
+ return true;
+ }
+ virtual const matroska::attachment_list * get_attachment_list() cons=
t;
+};
+
+static container_matroska_factory_t<container_matroska_impl> g_container=
_matroska_impl_factory;
+
#endif // _CONTAINER_MATROSKA_IMPL_H_
\ No newline at end of file
Property changes on: trunk/foo_input_matroska/container_matroska_impl.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/foo_input_matroska/filesystem_matroska.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/foo_input_matroska/filesystem_matroska.h 2007-02-17 10:34:40 UT=
C (rev 1276)
+++ trunk/foo_input_matroska/filesystem_matroska.h 2007-02-17 10:55:54 UT=
C (rev 1277)
@@ -1,90 +1,90 @@
-#ifndef _FOO_INPUT_MATROSKA_FILESYSTEM_MATROSKA_H_
-#define _FOO_INPUT_MATROSKA_FILESYSTEM_MATROSKA_H_
-
-#include "../SDK/foobar2000.h"
-#include "container_matroska.h"
-
-class NOVTABLE filesystem_matroska : public filesystem {
-public:
- virtual bool get_canonical_path(const char * p_path,pfc::string_base & =
p_out);
- virtual bool is_our_path(const char * p_path);
- virtual bool get_display_path(const char * p_path,pfc::string_base & p_=
out);
-
- virtual void open(service_ptr_t<file> & p_out,const char * p_path, t_op=
en_mode p_mode,abort_callback & p_abort);
- virtual void remove(const char * p_path,abort_callback & p_abort);
- virtual void move(const char * p_src,const char * p_dst,abort_callba=
ck & p_abort);
- //! Queries whether a file at specified path belonging to this filesyst=
em is a remove object or not.
- virtual bool is_remote(const char * p_src);
-
- //! Retrieves stats of a file at specified path.
- virtual void get_stats(const char * p_path,t_filestats & p_stats,bool &=
p_is_writeable,abort_callback & p_abort);
-=09
- virtual bool relative_path_create(const char * file_path,const char * p=
laylist_path,pfc::string_base & out) {return 0;}
- virtual bool relative_path_parse(const char * relative_path,const char =
* playlist_path,pfc::string_base & out) {return 0;}
-
- //! Creates a directory.
- virtual void create_directory(const char * p_path,abort_callback & p_ab=
ort);
-
- virtual void list_directory(const char * p_path,directory_callback & p_=
out,abort_callback & p_abort);
-
- //! Hint; returns whether this filesystem supports mime types.
- virtual bool supports_content_types();
-
-private:
- inline bool get_source_file_path(const char * p_path, pfc::string_ba=
se & p_out)
- {
- pfc::string8 path, file;
- if (archive_impl::g_parse_unpack_path(p_path, path, file)) {
- path << "|" << file;
- } else {
- path =3D p_path;
- }
- path.remove_chars(0, 11);
- path.truncate(path.find_last('|'));
- pfc::string8 ext(pfc::string_extension(path).get_ptr());
- if (filesystem::g_is_recognized_path(path)) {
- p_out =3D path;
- return true;
- }
- return false;
- }
- inline bool get_attachment_file_name(const char * p_path, pfc::strin=
g_base & p_out)
- {
- pfc::string8 path, file;
- if (archive_impl::g_parse_unpack_path(p_path, path, file)) {
- path << "|" << file;
- } else {
- path =3D p_path;
- }
- path.remove_chars(0, 11);
- if (path.find_last('|') !=3D infinite) {
- path.remove_chars(0, path.find_last('|')+1);
- } else {
- path.remove_chars(0, path.find_last('\\')+1);
- }
- if (path.find_first('\\') =3D=3D 0) {
- path.remove_chars(0, 1);
- }
- if (path.length() !=3D 0) {
- p_out =3D path;
- return true;
- }
- return false;
- }
-
-public:
- static void g_make_matroska_path(pfc::string_base & path, const char=
* file, const char * name)
- {
- path =3D "matroska://";
- path +=3D file;
- path +=3D "|";
- path +=3D name;
- }
-};
-
-template<typename T>
-class filesystem_matroska_factory_t : public service_factory_single_t<T>=
{};
-
-static filesystem_matroska_factory_t<filesystem_matroska> g_filesystem_m=
atroska_factory;
-
-#endif//_FOO_INPUT_MATROSKA_FILESYSTEM_MATROSKA_H_
+#ifndef _FOO_INPUT_MATROSKA_FILESYSTEM_MATROSKA_H_
+#define _FOO_INPUT_MATROSKA_FILESYSTEM_MATROSKA_H_
+
+#include "../SDK/foobar2000.h"
+#include "container_matroska.h"
+
+class NOVTABLE filesystem_matroska : public filesystem {
+public:
+ virtual bool get_canonical_path(const char * p_path,pfc::string_base & =
p_out);
+ virtual bool is_our_path(const char * p_path);
+ virtual bool get_display_path(const char * p_path,pfc::string_base & p_=
out);
+
+ virtual void open(service_ptr_t<file> & p_out,const char * p_path, t_op=
en_mode p_mode,abort_callback & p_abort);
+ virtual void remove(const char * p_path,abort_callback & p_abort);
+ virtual void move(const char * p_src,const char * p_dst,abort_callba=
ck & p_abort);
+ //! Queries whether a file at specified path belonging to this filesyst=
em is a remove object or not.
+ virtual bool is_remote(const char * p_src);
+
+ //! Retrieves stats of a file at specified path.
+ virtual void get_stats(const char * p_path,t_filestats & p_stats,bool &=
p_is_writeable,abort_callback & p_abort);
+=09
+ virtual bool relative_path_create(const char * file_path,const char * p=
laylist_path,pfc::string_base & out) {return 0;}
+ virtual bool relative_path_parse(const char * relative_path,const char =
* playlist_path,pfc::string_base & out) {return 0;}
+
+ //! Creates a directory.
+ virtual void create_directory(const char * p_path,abort_callback & p_ab=
ort);
+
+ virtual void list_directory(const char * p_path,directory_callback & p_=
out,abort_callback & p_abort);
+
+ //! Hint; returns whether this filesystem supports mime types.
+ virtual bool supports_content_types();
+
+private:
+ inline bool get_source_file_path(const char * p_path, pfc::string_ba=
se & p_out)
+ {
+ pfc::string8 path, file;
+ if (archive_impl::g_parse_unpack_path(p_path, path, file)) {
+ path << "|" << file;
+ } else {
+ path =3D p_path;
+ }
+ path.remove_chars(0, 11);
+ path.truncate(path.find_last('|'));
+ pfc::string8 ext(pfc::string_extension(path).get_ptr());
+ if (filesystem::g_is_recognized_path(path)) {
+ p_out =3D path;
+ return true;
+ }
+ return false;
+ }
+ inline bool get_attachment_file_name(const char * p_path, pfc::strin=
g_base & p_out)
+ {
+ pfc::string8 path, file;
+ if (archive_impl::g_parse_unpack_path(p_path, path, file)) {
+ path << "|" << file;
+ } else {
+ path =3D p_path;
+ }
+ path.remove_chars(0, 11);
+ if (path.find_last('|') !=3D infinite) {
+ path.remove_chars(0, path.find_last('|')+1);
+ } else {
+ path.remove_chars(0, path.find_last('\\')+1);
+ }
+ if (path.find_first('\\') =3D=3D 0) {
+ path.remove_chars(0, 1);
+ }
+ if (path.length() !=3D 0) {
+ p_out =3D path;
+ return true;
+ }
+ return false;
+ }
+
+public:
+ static void g_make_matroska_path(pfc::string_base & path, const char=
* file, const char * name)
+ {
+ path =3D "matroska://";
+ path +=3D file;
+ path +=3D "|";
+ path +=3D name;
+ }
+};
+
+template<typename T>
+class filesystem_matroska_factory_t : public service_factory_single_t<T>=
{};
+
+static filesystem_matroska_factory_t<filesystem_matroska> g_filesystem_m=
atroska_factory;
+
+#endif//_FOO_INPUT_MATROSKA_FILESYSTEM_MATROSKA_H_
Property changes on: trunk/foo_input_matroska/filesystem_matroska.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/foo_input_matroska/matroska_parser.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/foo_input_matroska/matroska_parser.h 2007-02-17 10:34:40 UTC (r=
ev 1276)
+++ trunk/foo_input_matroska/matroska_parser.h 2007-02-17 10:55:54 UTC (r=
ev 1277)
@@ -1,416 +1,416 @@
-/*
- * Part of the foobar2000 Matroska plugin
- *
- * Copyright (C) Jory Stone (jcsston at toughguy net) - 2003-2004
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING =
THE
- * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PUR=
POSE.
- *
- */
-
-/*!
- \file matroska_parser.h
- \version $Id$
- \brief An audio slated Matroska Reader+Parser
- \author Jory Stone <jcsston @ toughguy.net>
-*/
-
-#ifndef _MATROSKA_PARSER_H_
-#define _MATROSKA_PARSER_H_
-
-#define MULTITRACK 1
-
-#include "../SDK/foobar2000.h"
-#include "../helpers/helpers.h"
-#include "../../pfc/pfc.h"
-#include "Foobar2000ReaderIOCallback.h"
-#include "DbgOut.h"
-#include <queue>
-#include <deque>
-#include <boost/shared_ptr.hpp>
-
-// libebml includes
-#include "ebml/StdIOCallback.h"
-#include "ebml/EbmlTypes.h"
-#include "ebml/EbmlHead.h"
-#include "ebml/EbmlVoid.h"
-#include "ebml/EbmlCrc32.h"
-#include "ebml/EbmlSubHead.h"
-#include "ebml/EbmlStream.h"
-#include "ebml/EbmlBinary.h"
-#include "ebml/EbmlString.h"
-#include "ebml/EbmlUnicodeString.h"
-#include "ebml/EbmlContexts.h"
-#include "ebml/EbmlVersion.h"
-
-// libmatroska includes
-#include "matroska/KaxConfig.h"
-#include "matroska/KaxBlock.h"
-#include "matroska/KaxSegment.h"
-#include "matroska/KaxContexts.h"
-#include "matroska/KaxSeekHead.h"
-#include "matroska/KaxTracks.h"
-#include "matroska/KaxInfo.h"
-#include "matroska/KaxInfoData.h"
-#include "matroska/KaxTags.h"
-#include "matroska/KaxTag.h"
-#include "matroska/KaxTagMulti.h"
-#include "matroska/KaxCluster.h"
-#include "matroska/KaxClusterData.h"
-#include "matroska/KaxTrackAudio.h"
-#include "matroska/KaxTrackVideo.h"
-#include "matroska/KaxAttachments.h"
-#include "matroska/KaxAttached.h"
-#include "matroska/KaxChapters.h"
-#include "matroska/KaxVersion.h"
-
-#define TIMECODE_SCALE 1000000
-#define MAX_UINT64 0xFFFFFFFFFFFFFFFF
-#define _DELETE(__x) if (__x) { delete __x; __x =3D NULL; }
-
-//Memory Leak Debuging define
-#ifdef _DEBUG
-#define _CRTDBG_MAP_ALLOC=20
-#include <stdlib.h>
-#include <crtdbg.h>
-#endif
-
-#ifdef _DEBUG
- #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)
-#else
- #define DEBUG_CLIENTBLOCK
-#endif // _DEBUG
-
-#ifdef _DEBUG
-#define new DEBUG_CLIENTBLOCK
-#endif
-
-#ifdef _DEBUG
-#endif
-
-using namespace LIBEBML_NAMESPACE;
-using namespace LIBMATROSKA_NAMESPACE;
-
-typedef std::vector<uint8> ByteArray;
-typedef boost::shared_ptr<EbmlElement> ElementPtr;
-
-class MatroskaVersion {
-public:
- static const char * lib_ebml() { return EbmlCodeVersion.c_str(); };
- static const char * lib_matroska() { return KaxCodeVersion.c_str(); =
};
-};
-
-class MatroskaAttachment {
-public:
- MatroskaAttachment();
-
- UTFstring FileName;
- std::string MimeType;
- UTFstring Description;
- UTFstring SourceFilename;
- uint64 SourceStartPos;
- uint64 SourceDataLength;
-};
-
-class MatroskaAudioFrame {
-public:
- MatroskaAudioFrame();
- void Reset();
- double get_duration() {
- return static_cast<double>(duration / 1000000000.0);
- }
-
- uint64 timecode;
- uint64 duration;
- std::vector<ByteArray> dataBuffer;
- /// Linked-list for laced frames
- uint64 add_id;
- ByteArray additional_data_buffer;
-};
-
-
-struct MatroskaMetaSeekClusterEntry {
- uint32 clusterNo;
- uint64 filePos;
- uint64 timecode;
-};
-
-class MatroskaSimpleTag {
-public:
- MatroskaSimpleTag();
-
- UTFstring name;
- UTFstring value;
- uint32 defaultFlag;
- std::string language;
-
- bool hidden;
- bool removalPending;
-};
-
-class MatroskaTagInfo {
-public:
- MatroskaTagInfo();
- void SetTagValue(const char *name, const char *value, int index =3D 0);
- void MarkAllAsRemovalPending();
- void RemoveMarkedTags();
-=09
- uint64 targetTrackUID;
- uint64 targetEditionUID;
- uint64 targetChapterUID;
- uint64 targetAttachmentUID;
- uint32 targetTypeValue;
- std::string targetType;
-
- std::vector<MatroskaSimpleTag> tags;
-};
-
-struct MatroskaChapterDisplayInfo {
- MatroskaChapterDisplayInfo();
-
- UTFstring string;
- std::string lang;
- std::string country;
-};
-
-class MatroskaChapterInfo {
-public:
- MatroskaChapterInfo();
-
- uint64 chapterUID;
- uint64 timeStart;
- uint64 timeEnd;
- /// Vector of all the tracks this chapter applies to
- /// if it's empty then this chapter applies to all tracks
- std::vector<uint64> tracks;
- /// Vector of strings we can display for chapter
- std::vector<MatroskaChapterDisplayInfo> display;
- std::vector<MatroskaChapterInfo> subChapters;
-};
-
-class MatroskaEditionInfo {
-public:
- MatroskaEditionInfo();
-
- uint64 editionUID;
- /// Vector of all the tracks this edition applies to
- /// if it's empty then this edition applies to all tracks
- std::vector<uint64> tracks;
-};
-
-class MatroskaTrackInfo {
- public:
- /// Initializes the class
- MatroskaTrackInfo();
- /// Initializes the class with a UID
- /// \param trackUID The UID to use for the new MatroskaTrackInfo
- //MatroskaTrackInfo(uint64 trackUID);
- /// Destroys the class
- //~MatroskaTrackInfo();
-
-
- uint16 trackNumber;
- uint64 trackUID; =09
- std::string codecID;
- std::vector<BYTE> codecPrivate;
- bool codecPrivateReady;
- =09
- UTFstring name;
- std::string language;
- double duration;
-
- uint8 channels;=20
- double samplesPerSec;=20
- double samplesOutputPerSec; =20
- uint8 bitsPerSample;
- uint32 avgBytesPerSec;=20
- uint64 defaultDuration;
-};
-
-typedef boost::shared_ptr<MatroskaMetaSeekClusterEntry> cluster_entry_pt=
r;
-
-class MatroskaAudioParser {
-public:
- MatroskaAudioParser(service_ptr_t<file> input, abort_callback & p_abort=
);
- ~MatroskaAudioParser();
-
- /// The main header parsing function
- /// \return 0 File parsed ok
- /// \return 1 Failed
- int Parse(bool bInfoOnly =3D false, bool bBreakAtClusters =3D true);
- /// Writes the tags to the current matroska file
- /// \param info All the tags we need to write
- /// \return 0 Tags written A OK
- /// \return 1 Failed to write tags
- int WriteTags();
- /// Set the info tags to the current tags file in memory
- void SetTags(const file_info &info);
-
- MatroskaTrackInfo &GetTrack(uint16 trackNo) { return m_Tracks.at(trackN=
o); };
- uint64 GetTimecodeScale() { return m_TimecodeScale; };
- /// Returns an adjusted duration of the file
- double GetDuration();
- /// Returns the track index of the first decodable track
- int32 GetFirstAudioTrack();
-
- double TimecodeToSeconds(uint64 code,unsigned samplerate_hint =3D 44100=
);
- uint64 SecondsToTimecode(double seconds);
-
- /// Set the fb2k info from the matroska file
- /// \param info This will be filled up with tags ;)
- bool SetFB2KInfo(file_info &info, t_uint32 p_subsong);
-
- /// Get the foobar2000 style format string
-// const char *GetFoobar2000Format(uint16 trackNo, bool bSetupCodecPriva=
te =3D true);
-
- /// Set the current track to read data from
- void SetCurrentTrack(uint32 newTrackNo);
- /// Set the subsong to play, this adjusts all the duration/timecodes=20
- /// reported in public functions. So only use this if you are expecting=
that to happen
- /// \param subsong This should be within the range of the chapters vect=
or
- void SetSubSong(int subsong);
-
- std::vector<MatroskaEditionInfo> &GetEditions() { return m_Editions; };
- std::vector<MatroskaChapterInfo> &GetChapters() { return m_Chapters; };
- std::vector<MatroskaTrackInfo> &GetTracks() { return m_Tracks; };
- uint32 GetAudioTrackCount();
- uint32 GetAudioTrackIndex(uint32 index);
-
- int32 GetAvgBitrate();
- /// Seek to a position
- /// \param seconds The absolute position to seek to, in seconds =09
- /// \return Current postion offset from where it was requested
- /// If you request to seek to 2.0 and we can only seek to 1.9
- /// the return value would be 100 * m_TimcodeScale
-
- bool skip_frames_until(double destination,unsigned & frames,double & la=
st_timecode_delta,unsigned hint_samplerate);
- void flush_queue();
- uint64 get_current_frame_timecode();
- bool Seek(double seconds,unsigned & frames_to_skip,double & time_to_ski=
p,unsigned samplerate_hint);
-
- /// Seek to a position
- /// \param frame The MatroskaAudioFrame struct to store the frame=09
- /// \return 0 If read ok=09
- /// \return 1 If file could not be read or it not open=09
- /// \return 2 End of track (EOT)
- MatroskaAudioFrame * ReadSingleFrame();
- MatroskaAudioFrame * ReadFirstFrame();
-
- UTFstring GetSegmentFileName() { return m_SegmentFilename; }
- typedef pfc::list_t<MatroskaAttachment> attachment_list;
- attachment_list &GetAttachmentList() { return m_AttachmentList; }
-
-protected:
- void Parse_MetaSeek(ElementPtr metaSeekElement, bool bInfoOnly);
- void Parse_Chapters(KaxChapters *chaptersElement);
- void Parse_Chapter_Atom(KaxChapterAtom *ChapterAtom);
- void Parse_Chapter_Atom(KaxChapterAtom *ChapterAtom, std::vector<Matros=
kaChapterInfo> &p_chapters);
- void Parse_Tags(KaxTags *tagsElement);
- int FillQueue();
- uint64 GetClusterTimecode(uint64 filePos);
- cluster_entry_ptr FindCluster(uint64 timecode);
- void CountClusters();
- void FixChapterEndTimes();
- // See if the edition uid is already in our vector
- // \return true Yes, we already have this uid
- // \return false Nope
- bool FindEditionUID(uint64 uid);
- // See if the chapter uid is already in our vector
- // \return true Yes, we already have this uid
- // \return false Nope
- bool FindChapterUID(uint64 uid);
- /// Adds the info tags to the current file in memory=20
- void AddTags(file_info &info);
-=09
- MatroskaTagInfo *FindTagWithTrackUID(uint64 trackUID);
- MatroskaTagInfo *FindTagWithEditionUID(uint64 editionUID, uint64 trackU=
ID =3D 0);
- MatroskaTagInfo *FindTagWithChapterUID(uint64 chapterUID, uint64 trackU=
ID =3D 0);
- bool AreTagsIdenticalAtAllLevels(const char * name);
- bool AreTagsIdenticalAtEditionLevel(const char * name);
- bool AreTagsIdenticalAtChapterLevel(const char * name);
- void MarkHiddenTags();
-
- void SetAlbumTags(file_info &info, MatroskaTagInfo* AlbumTags, Matroska=
TagInfo* TrackTags);
- void SetTrackTags(file_info &info, MatroskaTagInfo* TrackTags);
- =09
-
- Foobar2000ReaderIOCallback m_IOCallback;
- EbmlStream m_InputStream;
- /// The main/base/master element, should be the segment
- ElementPtr m_ElementLevel0;
-
- MatroskaEditionInfo *m_CurrentEdition;
- MatroskaChapterInfo *m_CurrentChapter;
- uint32 m_CurrentTrackNo;
- std::vector<MatroskaTrackInfo> m_Tracks;
- std::vector<MatroskaEditionInfo> m_Editions;
- std::vector<MatroskaChapterInfo> m_Chapters;
- std::vector<MatroskaTagInfo> m_Tags;
-=09
- /// This is the queue of buffered frames to deliver
- std::queue<MatroskaAudioFrame *> m_Queue;
-
- /// This is the index of clusters in the file, it's used to seek in the=
file
- // std::vector<MatroskaMetaSeekClusterEntry> m_ClusterIndex;
- std::vector<cluster_entry_ptr> m_ClusterIndex;
-
- attachment_list m_AttachmentList;
-
- uint64 m_CurrentTimecode;
- double m_Duration;
- uint64 m_TimecodeScale;
- UTFstring m_WritingApp;
- UTFstring m_MuxingApp;
- UTFstring m_FileTitle;
- int32 m_FileDate;
- UTFstring m_SegmentFilename;
-
- uint64 m_FileSize;
- uint64 m_TagPos;
- uint32 m_TagSize;
- uint32 m_TagScanRange;
-
- //pfc::alloc_fast<BYTE> m_framebuffer;
- //mem_block_factalloc<BYTE> m_framebuffer;
- //int UpperElementLevel;
-private:
- // We have no need for these
- //MatroskaAudioParser(const MatroskaAudioParser &refParser) { };
- //MatroskaAudioParser &operator=3D(const MatroskaAudioParser &refParser=
) { return *this; };
-};
-
-typedef boost::shared_ptr<MatroskaAudioParser> matroska_parser_ptr;
-
-void PrintChapters(std::vector<MatroskaChapterInfo> &theChapters);
-
-class MatroskaSearch
-{
-private:
- static const int SEARCH_SOURCE_SIZE =3D 1024*64;
- static const int SEARCH_TABLE_SIZE =3D SEARCH_SOURCE_SIZE;
- static const int SEARCH_PATTERN_SIZE =3D 3;
- binary * source, * pattern;
- int pos;
- int next[SEARCH_TABLE_SIZE], skip[SEARCH_TABLE_SIZE];
- bool Skip();
- bool Next();
-public:
- MatroskaSearch(binary * p_source, binary * p_pattern)
- {
- ZeroMemory(next, sizeof(next));
- ZeroMemory(skip, sizeof(skip));
- source =3D p_source;
- pattern =3D p_pattern;
- Skip();
- Next();
- }
- ~MatroskaSearch() {};
- int Match(unsigned int start =3D 0);
-};
-
-#endif // _MATROSKA_PARSER_H_
+/*
+ * Part of the foobar2000 Matroska plugin
+ *
+ * Copyright (C) Jory Stone (jcsston at toughguy net) - 2003-2004
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING =
THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PUR=
POSE.
+ *
+ */
+
+/*!
+ \file matroska_parser.h
+ \version $Id$
+ \brief An audio slated Matroska Reader+Parser
+ \author Jory Stone <jcsston @ toughguy.net>
+*/
+
+#ifndef _MATROSKA_PARSER_H_
+#define _MATROSKA_PARSER_H_
+
+#define MULTITRACK 1
+
+#include "../SDK/foobar2000.h"
+#include "../helpers/helpers.h"
+#include "../../pfc/pfc.h"
+#include "Foobar2000ReaderIOCallback.h"
+#include "DbgOut.h"
+#include <queue>
+#include <deque>
+#include <boost/shared_ptr.hpp>
+
+// libebml includes
+#include "ebml/StdIOCallback.h"
+#include "ebml/EbmlTypes.h"
+#include "ebml/EbmlHead.h"
+#include "ebml/EbmlVoid.h"
+#include "ebml/EbmlCrc32.h"
+#include "ebml/EbmlSubHead.h"
+#include "ebml/EbmlStream.h"
+#include "ebml/EbmlBinary.h"
+#include "ebml/EbmlString.h"
+#include "ebml/EbmlUnicodeString.h"
+#include "ebml/EbmlContexts.h"
+#include "ebml/EbmlVersion.h"
+
+// libmatroska includes
+#include "matroska/KaxConfig.h"
+#include "matroska/KaxBlock.h"
+#include "matroska/KaxSegment.h"
+#include "matroska/KaxContexts.h"
+#include "matroska/KaxSeekHead.h"
+#include "matroska/KaxTracks.h"
+#include "matroska/KaxInfo.h"
+#include "matroska/KaxInfoData.h"
+#include "matroska/KaxTags.h"
+#include "matroska/KaxTag.h"
+#include "matroska/KaxTagMulti.h"
+#include "matroska/KaxCluster.h"
+#include "matroska/KaxClusterData.h"
+#include "matroska/KaxTrackAudio.h"
+#include "matroska/KaxTrackVideo.h"
+#include "matroska/KaxAttachments.h"
+#include "matroska/KaxAttached.h"
+#include "matroska/KaxChapters.h"
+#include "matroska/KaxVersion.h"
+
+#define TIMECODE_SCALE 1000000
+#define MAX_UINT64 0xFFFFFFFFFFFFFFFF
+#define _DELETE(__x) if (__x) { delete __x; __x =3D NULL; }
+
+//Memory Leak Debuging define
+#ifdef _DEBUG
+#define _CRTDBG_MAP_ALLOC=20
+#include <stdlib.h>
+#include <crtdbg.h>
+#endif
+
+#ifdef _DEBUG
+ #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)
+#else
+ #define DEBUG_CLIENTBLOCK
+#endif // _DEBUG
+
+#ifdef _DEBUG
+#define new DEBUG_CLIENTBLOCK
+#endif
+
+#ifdef _DEBUG
+#endif
+
+using namespace LIBEBML_NAMESPACE;
+using namespace LIBMATROSKA_NAMESPACE;
+
+typedef std::vector<uint8> ByteArray;
+typedef boost::shared_ptr<EbmlElement> ElementPtr;
+
+class MatroskaVersion {
+public:
+ static const char * lib_ebml() { return EbmlCodeVersion.c_str(); };
+ static const char * lib_matroska() { return KaxCodeVersion.c_str(); =
};
+};
+
+class MatroskaAttachment {
+public:
+ MatroskaAttachment();
+
+ UTFstring FileName;
+ std::string MimeType;
+ UTFstring Description;
+ UTFstring SourceFilename;
+ uint64 SourceStartPos;
+ uint64 SourceDataLength;
+};
+
+class MatroskaAudioFrame {
+public:
+ MatroskaAudioFrame();
+ void Reset();
+ double get_duration() {
+ return static_cast<double>(duration / 1000000000.0);
+ }
+
+ uint64 timecode;
+ uint64 duration;
+ std::vector<ByteArray> dataBuffer;
+ /// Linked-list for laced frames
+ uint64 add_id;
+ ByteArray additional_data_buffer;
+};
+
+
+struct MatroskaMetaSeekClusterEntry {
+ uint32 clusterNo;
+ uint64 filePos;
+ uint64 timecode;
+};
+
+class MatroskaSimpleTag {
+public:
+ MatroskaSimpleTag();
+
+ UTFstring name;
+ UTFstring value;
+ uint32 defaultFlag;
+ std::string language;
+
+ bool hidden;
+ bool removalPending;
+};
+
+class MatroskaTagInfo {
+public:
+ MatroskaTagInfo();
+ void SetTagValue(const char *name, const char *value, int index =3D 0);
+ void MarkAllAsRemovalPending();
+ void RemoveMarkedTags();
+=09
+ uint64 targetTrackUID;
+ uint64 targetEditionUID;
+ uint64 targetChapterUID;
+ uint64 targetAttachmentUID;
+ uint32 targetTypeValue;
+ std::string targetType;
+
+ std::vector<MatroskaSimpleTag> tags;
+};
+
+struct MatroskaChapterDisplayInfo {
+ MatroskaChapterDisplayInfo();
+
+ UTFstring string;
+ std::string lang;
+ std::string country;
+};
+
+class MatroskaChapterInfo {
+public:
+ MatroskaChapterInfo();
+
+ uint64 chapterUID;
+ uint64 timeStart;
+ uint64 timeEnd;
+ /// Vector of all the tracks this chapter applies to
+ /// if it's empty then this chapter applies to all tracks
+ std::vector<uint64> tracks;
+ /// Vector of strings we can display for chapter
+ std::vector<MatroskaChapterDisplayInfo> display;
+ std::vector<MatroskaChapterInfo> subChapters;
+};
+
+class MatroskaEditionInfo {
+public:
+ MatroskaEditionInfo();
+
+ uint64 editionUID;
+ /// Vector of all the tracks this edition applies to
+ /// if it's empty then this edition applies to all tracks
+ std::vector<uint64> tracks;
+};
+
+class MatroskaTrackInfo {
+ public:
+ /// Initializes the class
+ MatroskaTrackInfo();
+ /// Initializes the class with a UID
+ /// \param trackUID The UID to use for the new MatroskaTrackInfo
+ //MatroskaTrackInfo(uint64 trackUID);
+ /// Destroys the class
+ //~MatroskaTrackInfo();
+
+
+ uint16 trackNumber;
+ uint64 trackUID; =09
+ std::string codecID;
+ std::vector<BYTE> codecPrivate;
+ bool codecPrivateReady;
+ =09
+ UTFstring name;
+ std::string language;
+ double duration;
+
+ uint8 channels;=20
+ double samplesPerSec;=20
+ double samplesOutputPerSec; =20
+ uint8 bitsPerSample;
+ uint32 avgBytesPerSec;=20
+ uint64 defaultDuration;
+};
+
+typedef boost::shared_ptr<MatroskaMetaSeekClusterEntry> cluster_entry_pt=
r;
+
+class MatroskaAudioParser {
+public:
+ MatroskaAudioParser(service_ptr_t<file> input, abort_callback & p_abort=
);
+ ~MatroskaAudioParser();
+
+ /// The main header parsing function
+ /// \return 0 File parsed ok
+ /// \return 1 Failed
+ int Parse(bool bInfoOnly =3D false, bool bBreakAtClusters =3D true);
+ /// Writes the tags to the current matroska file
+ /// \param info All the tags we need to write
+ /// \return 0 Tags written A OK
+ /// \return 1 Failed to write tags
+ int WriteTags();
+ /// Set the info tags to the current tags file in memory
+ void SetTags(const file_info &info);
+
+ MatroskaTrackInfo &GetTrack(uint16 trackNo) { return m_Tracks.at(trackN=
o); };
+ uint64 GetTimecodeScale() { return m_TimecodeScale; };
+ /// Returns an adjusted duration of the file
+ double GetDuration();
+ /// Returns the track index of the first decodable track
+ int32 GetFirstAudioTrack();
+
+ double TimecodeToSeconds(uint64 code,unsigned samplerate_hint =3D 44100=
);
+ uint64 SecondsToTimecode(double seconds);
+
+ /// Set the fb2k info from the matroska file
+ /// \param info This will be filled up with tags ;)
+ bool SetFB2KInfo(file_info &info, t_uint32 p_subsong);
+
+ /// Get the foobar2000 style format string
+// const char *GetFoobar2000Format(uint16 trackNo, bool bSetupCodecPriva=
te =3D true);
+
+ /// Set the current track to read data from
+ void SetCurrentTrack(uint32 newTrackNo);
+ /// Set the subsong to play, this adjusts all the duration/timecodes=20
+ /// reported in public functions. So only use this if you are expecting=
that to happen
+ /// \param subsong This should be within the range of the chapters vect=
or
+ void SetSubSong(int subsong);
+
+ std::vector<MatroskaEditionInfo> &GetEditions() { return m_Editions; };
+ std::vector<MatroskaChapterInfo> &GetChapters() { return m_Chapters; };
+ std::vector<MatroskaTrackInfo> &GetTracks() { return m_Tracks; };
+ uint32 GetAudioTrackCount();
+ uint32 GetAudioTrackIndex(uint32 index);
+
+ int32 GetAvgBitrate();
+ /// Seek to a position
+ /// \param seconds The absolute position to seek to, in seconds =09
+ /// \return Current postion offset from where it was requested
+ /// If you request to seek to 2.0 and we can only seek to 1.9
+ /// the return value would be 100 * m_TimcodeScale
+
+ bool skip_frames_until(double destination,unsigned & frames,double & la=
st_timecode_delta,unsigned hint_samplerate);
+ void flush_queue();
+ uint64 get_current_frame_timecode();
+ bool Seek(double seconds,unsigned & frames_to_skip,double & time_to_ski=
p,unsigned samplerate_hint);
+
+ /// Seek to a position
+ /// \param frame The MatroskaAudioFrame struct to store the frame=09
+ /// \return 0 If read ok=09
+ /// \return 1 If file could not be read or it not open=09
+ /// \return 2 End of track (EOT)
+ MatroskaAudioFrame * ReadSingleFrame();
+ MatroskaAudioFrame * ReadFirstFrame();
+
+ UTFstring GetSegmentFileName() { return m_SegmentFilename; }
+ typedef pfc::list_t<MatroskaAttachment> attachment_list;
+ attachment_list &GetAttachmentList() { return m_AttachmentList; }
+
+protected:
+ void Parse_MetaSeek(ElementPtr metaSeekElement, bool bInfoOnly);
+ void Parse_Chapters(KaxChapters *chaptersElement);
+ void Parse_Chapter_Atom(KaxChapterAtom *ChapterAtom);
+ void Parse_Chapter_Atom(KaxChapterAtom *ChapterAtom, std::vector<Matros=
kaChapterInfo> &p_chapters);
+ void Parse_Tags(KaxTags *tagsElement);
+ int FillQueue();
+ uint64 GetClusterTimecode(uint64 filePos);
+ cluster_entry_ptr FindCluster(uint64 timecode);
+ void CountClusters();
+ void FixChapterEndTimes();
+ // See if the edition uid is already in our vector
+ // \return true Yes, we already have this uid
+ // \return false Nope
+ bool FindEditionUID(uint64 uid);
+ // See if the chapter uid is already in our vector
+ // \return true Yes, we already have this uid
+ // \return false Nope
+ bool FindChapterUID(uint64 uid);
+ /// Adds the info tags to the current file in memory=20
+ void AddTags(file_info &info);
+=09
+ MatroskaTagInfo *FindTagWithTrackUID(uint64 trackUID);
+ MatroskaTagInfo *FindTagWithEditionUID(uint64 editionUID, uint64 trackU=
ID =3D 0);
+ MatroskaTagInfo *FindTagWithChapterUID(uint64 chapterUID, uint64 trackU=
ID =3D 0);
+ bool AreTagsIdenticalAtAllLevels(const char * name);
+ bool AreTagsIdenticalAtEditionLevel(const char * name);
+ bool AreTagsIdenticalAtChapterLevel(const char * name);
+ void MarkHiddenTags();
+
+ void SetAlbumTags(file_info &info, MatroskaTagInfo* AlbumTags, Matroska=
TagInfo* TrackTags);
+ void SetTrackTags(file_info &info, MatroskaTagInfo* TrackTags);
+ =09
+
+ Foobar2000ReaderIOCallback m_IOCallback;
+ EbmlStream m_InputStream;
+ /// The main/base/master element, should be the segment
+ ElementPtr m_ElementLevel0;
+
+ MatroskaEditionInfo *m_CurrentEdition;
+ MatroskaChapterInfo *m_CurrentChapter;
+ uint32 m_CurrentTrackNo;
+ std::vector<MatroskaTrackInfo> m_Tracks;
+ std::vector<MatroskaEditionInfo> m_Editions;
+ std::vector<MatroskaChapterInfo> m_Chapters;
+ std::vector<MatroskaTagInfo> m_Tags;
+=09
+ /// This is the queue of buffered frames to deliver
+ std::queue<MatroskaAudioFrame *> m_Queue;
+
+ /// This is the index of clusters in the file, it's used to seek in the=
file
+ // std::vector<MatroskaMetaSeekClusterEntry> m_ClusterIndex;
+ std::vector<cluster_entry_ptr> m_ClusterIndex;
+
+ attachment_list m_AttachmentList;
+
+ uint64 m_CurrentTimecode;
+ double m_Duration;
+ uint64 m_TimecodeScale;
+ UTFstring m_WritingApp;
+ UTFstring m_MuxingApp;
+ UTFstring m_FileTitle;
+ int32 m_FileDate;
+ UTFstring m_SegmentFilename;
+
+ uint64 m_FileSize;
+ uint64 m_TagPos;
+ uint32 m_TagSize;
+ uint32 m_TagScanRange;
+
+ //pfc::alloc_fast<BYTE> m_framebuffer;
+ //mem_block_factalloc<BYTE> m_framebuffer;
+ //int UpperElementLevel;
+private:
+ // We have no need for these
+ //MatroskaAudioParser(const MatroskaAudioParser &refParser) { };
+ //MatroskaAudioParser &operator=3D(const MatroskaAudioParser &refParser=
) { return *this; };
+};
+
+typedef boost::shared_ptr<MatroskaAudioParser> matroska_parser_ptr;
+
+void PrintChapters(std::vector<MatroskaChapterInfo> &theChapters);
+
+class MatroskaSearch
+{
+private:
+ static const int SEARCH_SOURCE_SIZE =3D 1024*64;
+ static const int SEARCH_TABLE_SIZE =3D SEARCH_SOURCE_SIZE;
+ static const int SEARCH_PATTERN_SIZE =3D 3;
+ binary * source, * pattern;
+ int pos;
+ int next[SEARCH_TABLE_SIZE], skip[SEARCH_TABLE_SIZE];
+ bool Skip();
+ bool Next();
+public:
+ MatroskaSearch(binary * p_source, binary * p_pattern)
+ {
+ ZeroMemory(next, sizeof(next));
+ ZeroMemory(skip, sizeof(skip));
+ source =3D p_source;
+ pattern =3D p_pattern;
+ Skip();
+ Next();
+ }
+ ~MatroskaSearch() {};
+ int Match(unsigned int start =3D 0);
+};
+
+#endif // _MATROSKA_PARSER_H_
Property changes on: trunk/foo_input_matroska/matroska_parser.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/foo_input_matroska/resource.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/foo_input_matroska/resource.h 2007-02-17 10:34:40 UTC (rev 1276=
)
+++ trunk/foo_input_matroska/resource.h 2007-02-17 10:55:54 UTC (rev 1277=
)
@@ -1,23 +1,23 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by foo_input_matroska.rc
-//
-#define IDC_BUFSIZE 1000
-#define IDC_PREBUF_START 1001
-#define IDC_PREBUF_UNDERRUN 1002
-#define IDC_STATUS_PREBUF1 1003
-#define IDC_STATUS_PREBUF2 1004
-#define IDC_PROXY_MODE 1005
-#define IDC_PROXY_URL 1006
-#define IDC_ICY_METADATA 1007
-
-// Next default values for new objects
-//=20
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 103
-#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1008
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by foo_input_matroska.rc
+//
+#define IDC_BUFSIZE 1000
+#define IDC_PREBUF_START 1001
+#define IDC_PREBUF_UNDERRUN 1002
+#define IDC_STATUS_PREBUF1 1003
+#define IDC_STATUS_PREBUF2 1004
+#define IDC_PROXY_MODE 1005
+#define IDC_PROXY_URL 1006
+#define IDC_ICY_METADATA 1007
+
+// Next default values for new objects
+//=20
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 103
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1008
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
Property changes on: trunk/foo_input_matroska/resource.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/libebml/libebml.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/libebml/libebml.proj 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/libebml/libebml.proj 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,62 +1,62 @@
-Include "*/*.proj"
-
-LIB ebml
-{
- INCLUDE .
-
-// OPTIMIZE_GLOBALLY .
- FAVOR_MAX_SPEED .
- REDUCE_SIZE .
- FASTER_FLOAT .
- =20
-// SOURCE src/Debug.cpp
- SOURCE src/EbmlBinary.cpp
- SOURCE src/EbmlContexts.cpp
- SOURCE src/EbmlCrc32.cpp
- SOURCE src/EbmlDate.cpp
- SOURCE src/EbmlDummy.cpp
- SOURCE src/EbmlElement.cpp
- SOURCE src/EbmlFloat.cpp
- SOURCE src/EbmlHead.cpp
- SOURCE src/EbmlMaster.cpp
- SOURCE src/EbmlSInteger.cpp
- SOURCE src/EbmlStream.cpp
- SOURCE src/EbmlString.cpp
- SOURCE src/EbmlSubHead.cpp
- SOURCE src/EbmlUInteger.cpp
- SOURCE src/EbmlUnicodeString.cpp
- SOURCE src/EbmlVersion.cpp
- SOURCE src/EbmlVoid.cpp
- SOURCE src/IOCallback.cpp
- SOURCE src/MemIOCallback.cpp
- SOURCE src/StdIOCallback.cpp
- SOURCE(TARGET_WIN) src/platform/win32/WinIOCallback.cpp
-
- HEADER(TARGET_WIN) src/platform/win32/WinIOCallback.h
-// HEADER ebml/Debug.h
- HEADER ebml/EbmlBinary.h
- HEADER ebml/EbmlConfig.h
- HEADER ebml/EbmlContexts.h
- HEADER ebml/EbmlCrc32.h
- HEADER ebml/EbmlDate.h
- HEADER ebml/EbmlDummy.h
- HEADER ebml/EbmlElement.h
- HEADER ebml/EbmlEndian.h
- HEADER ebml/EbmlFloat.h
- HEADER ebml/EbmlHead.h
- HEADER ebml/EbmlId.h
- HEADER ebml/EbmlMaster.h
- HEADER ebml/EbmlSInteger.h
- HEADER ebml/EbmlStream.h
- HEADER ebml/EbmlString.h
- HEADER ebml/EbmlSubHead.h
- HEADER ebml/EbmlTypes.h
- HEADER ebml/EbmlUInteger.h
- HEADER ebml/EbmlUnicodeString.h
- HEADER ebml/EbmlVersion.h
- HEADER ebml/EbmlVoid.h
- HEADER ebml/IOCallback.h
- HEADER ebml/MemIOCallback.h
- HEADER ebml/StdIOCallback.h
- HEADER ebml/c/libebml_t.h
-}
+Include "*/*.proj"
+
+LIB ebml
+{
+ INCLUDE .
+
+// OPTIMIZE_GLOBALLY .
+ FAVOR_MAX_SPEED .
+ REDUCE_SIZE .
+ FASTER_FLOAT .
+ =20
+// SOURCE src/Debug.cpp
+ SOURCE src/EbmlBinary.cpp
+ SOURCE src/EbmlContexts.cpp
+ SOURCE src/EbmlCrc32.cpp
+ SOURCE src/EbmlDate.cpp
+ SOURCE src/EbmlDummy.cpp
+ SOURCE src/EbmlElement.cpp
+ SOURCE src/EbmlFloat.cpp
+ SOURCE src/EbmlHead.cpp
+ SOURCE src/EbmlMaster.cpp
+ SOURCE src/EbmlSInteger.cpp
+ SOURCE src/EbmlStream.cpp
+ SOURCE src/EbmlString.cpp
+ SOURCE src/EbmlSubHead.cpp
+ SOURCE src/EbmlUInteger.cpp
+ SOURCE src/EbmlUnicodeString.cpp
+ SOURCE src/EbmlVersion.cpp
+ SOURCE src/EbmlVoid.cpp
+ SOURCE src/IOCallback.cpp
+ SOURCE src/MemIOCallback.cpp
+ SOURCE src/StdIOCallback.cpp
+ SOURCE(TARGET_WIN) src/platform/win32/WinIOCallback.cpp
+
+ HEADER(TARGET_WIN) src/platform/win32/WinIOCallback.h
+// HEADER ebml/Debug.h
+ HEADER ebml/EbmlBinary.h
+ HEADER ebml/EbmlConfig.h
+ HEADER ebml/EbmlContexts.h
+ HEADER ebml/EbmlCrc32.h
+ HEADER ebml/EbmlDate.h
+ HEADER ebml/EbmlDummy.h
+ HEADER ebml/EbmlElement.h
+ HEADER ebml/EbmlEndian.h
+ HEADER ebml/EbmlFloat.h
+ HEADER ebml/EbmlHead.h
+ HEADER ebml/EbmlId.h
+ HEADER ebml/EbmlMaster.h
+ HEADER ebml/EbmlSInteger.h
+ HEADER ebml/EbmlStream.h
+ HEADER ebml/EbmlString.h
+ HEADER ebml/EbmlSubHead.h
+ HEADER ebml/EbmlTypes.h
+ HEADER ebml/EbmlUInteger.h
+ HEADER ebml/EbmlUnicodeString.h
+ HEADER ebml/EbmlVersion.h
+ HEADER ebml/EbmlVoid.h
+ HEADER ebml/IOCallback.h
+ HEADER ebml/MemIOCallback.h
+ HEADER ebml/StdIOCallback.h
+ HEADER ebml/c/libebml_t.h
+}
Property changes on: trunk/libebml/libebml.proj
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/libmatroska/libmatroska.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/libmatroska/libmatroska.proj 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/libmatroska/libmatroska.proj 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,68 +1,68 @@
-Include "*/*.proj"
-
-LIB matroska
-{
- INCLUDE .
- INCLUDE ../libebml
-
- USE ebml
-
-// OPTIMIZE_GLOBALLY .
- FAVOR_MAX_SPEED .
- REDUCE_SIZE .
- FASTER_FLOAT .
- =20
- SOURCE src/FileKax.cpp
- SOURCE src/KaxAttached.cpp
- SOURCE src/KaxAttachments.cpp
- SOURCE src/KaxBlock.cpp
- SOURCE src/KaxBlockData.cpp
- SOURCE src/KaxChapters.cpp
- SOURCE src/KaxCluster.cpp
- SOURCE src/KaxClusterData.cpp
- SOURCE src/KaxContentEncoding.cpp
- SOURCE src/KaxContexts.cpp
- SOURCE src/KaxCues.cpp
- SOURCE src/KaxCuesData.cpp
- SOURCE src/KaxInfo.cpp
- SOURCE src/KaxInfoData.cpp
- SOURCE src/KaxSeekHead.cpp
- SOURCE src/KaxSegment.cpp
- SOURCE src/KaxTag.cpp
- SOURCE src/KaxTagMulti.cpp
- SOURCE src/KaxTags.cpp
- SOURCE src/KaxTrackAudio.cpp
- SOURCE src/KaxTrackEntryData.cpp
- SOURCE src/KaxTrackVideo.cpp
- SOURCE src/KaxTracks.cpp
- SOURCE src/KaxVersion.cpp
-
- HEADER matroska/FileKax.h
- HEADER matroska/KaxAttached.h
- HEADER matroska/KaxAttachments.h
- HEADER matroska/KaxBlock.h
- HEADER matroska/KaxBlockData.h
- HEADER matroska/KaxChapters.h
- HEADER matroska/KaxCluster.h
- HEADER matroska/KaxClusterData.h
- HEADER matroska/KaxConfig.h
- HEADER matroska/KaxContentEncoding.h
- HEADER matroska/KaxContexts.h
- HEADER matroska/KaxCues.h
- HEADER matroska/KaxCuesData.h
- HEADER matroska/KaxInfo.h
- HEADER matroska/KaxInfoData.h
- HEADER matroska/KaxSeekHead.h
- HEADER matroska/KaxSegment.h
- HEADER matroska/KaxTag.h
- HEADER matroska/KaxTagMulti.h
- HEADER matroska/KaxTags.h
- HEADER matroska/KaxTrackAudio.h
- HEADER matroska/KaxTrackEntryData.h
- HEADER matroska/KaxTrackVideo.h
- HEADER matroska/KaxTracks.h
- HEADER matroska/KaxTypes.h
- HEADER matroska/KaxVersion.h
- HEADER matroska/c/libmatroska_t.h
- HEADER matroska/c/libmatroska.h
-}
+Include "*/*.proj"
+
+LIB matroska
+{
+ INCLUDE .
+ INCLUDE ../libebml
+
+ USE ebml
+
+// OPTIMIZE_GLOBALLY .
+ FAVOR_MAX_SPEED .
+ REDUCE_SIZE .
+ FASTER_FLOAT .
+ =20
+ SOURCE src/FileKax.cpp
+ SOURCE src/KaxAttached.cpp
+ SOURCE src/KaxAttachments.cpp
+ SOURCE src/KaxBlock.cpp
+ SOURCE src/KaxBlockData.cpp
+ SOURCE src/KaxChapters.cpp
+ SOURCE src/KaxCluster.cpp
+ SOURCE src/KaxClusterData.cpp
+ SOURCE src/KaxContentEncoding.cpp
+ SOURCE src/KaxContexts.cpp
+ SOURCE src/KaxCues.cpp
+ SOURCE src/KaxCuesData.cpp
+ SOURCE src/KaxInfo.cpp
+ SOURCE src/KaxInfoData.cpp
+ SOURCE src/KaxSeekHead.cpp
+ SOURCE src/KaxSegment.cpp
+ SOURCE src/KaxTag.cpp
+ SOURCE src/KaxTagMulti.cpp
+ SOURCE src/KaxTags.cpp
+ SOURCE src/KaxTrackAudio.cpp
+ SOURCE src/KaxTrackEntryData.cpp
+ SOURCE src/KaxTrackVideo.cpp
+ SOURCE src/KaxTracks.cpp
+ SOURCE src/KaxVersion.cpp
+
+ HEADER matroska/FileKax.h
+ HEADER matroska/KaxAttached.h
+ HEADER matroska/KaxAttachments.h
+ HEADER matroska/KaxBlock.h
+ HEADER matroska/KaxBlockData.h
+ HEADER matroska/KaxChapters.h
+ HEADER matroska/KaxCluster.h
+ HEADER matroska/KaxClusterData.h
+ HEADER matroska/KaxConfig.h
+ HEADER matroska/KaxContentEncoding.h
+ HEADER matroska/KaxContexts.h
+ HEADER matroska/KaxCues.h
+ HEADER matroska/KaxCuesData.h
+ HEADER matroska/KaxInfo.h
+ HEADER matroska/KaxInfoData.h
+ HEADER matroska/KaxSeekHead.h
+ HEADER matroska/KaxSegment.h
+ HEADER matroska/KaxTag.h
+ HEADER matroska/KaxTagMulti.h
+ HEADER matroska/KaxTags.h
+ HEADER matroska/KaxTrackAudio.h
+ HEADER matroska/KaxTrackEntryData.h
+ HEADER matroska/KaxTrackVideo.h
+ HEADER matroska/KaxTracks.h
+ HEADER matroska/KaxTypes.h
+ HEADER matroska/KaxVersion.h
+ HEADER matroska/c/libmatroska_t.h
+ HEADER matroska/c/libmatroska.h
+}
Property changes on: trunk/libmatroska/libmatroska.proj
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/libmatroska/matroska/KaxTag.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/libmatroska/matroska/KaxTag.h 2007-02-17 10:34:40 UTC (rev 1276=
)
+++ trunk/libmatroska/matroska/KaxTag.h 2007-02-17 10:55:54 UTC (rev 1277=
)
@@ -118,7 +118,7 @@
class MATROSKA_DLL_API KaxTagTargetTypeValue : public EbmlUInteger {
public:
KaxTagTargetTypeValue() :EbmlUInteger(50) {}
- KaxTagTargetTypeValue(const KaxTagTargetTypeValue & ElementToClone) :E=
bmlUInteger(ElementToClone) {}
+ KaxTagTargetTypeValue(const KaxTagTargetTypeValue & ElementToClone) :E=
bmlUInteger(ElementToClone) {}
static EbmlElement & Create() {return *(new KaxTagTargetTypeValue);}
const EbmlCallbacks & Generic() const {return ClassInfos;}
static const EbmlCallbacks ClassInfos;
@@ -140,7 +140,7 @@
class MATROSKA_DLL_API KaxTagTrackUID : public EbmlUInteger {
public:
KaxTagTrackUID() :EbmlUInteger(0) {}
- KaxTagTrackUID(const KaxTagTrackUID & ElementToClone) :EbmlUInteger(El=
ementToClone) {}
+ KaxTagTrackUID(const KaxTagTrackUID & ElementToClone) :EbmlUInteger(El=
ementToClone) {}
static EbmlElement & Create() {return *(new KaxTagTrackUID);}
const EbmlCallbacks & Generic() const {return ClassInfos;}
static const EbmlCallbacks ClassInfos;
@@ -663,7 +663,7 @@
class MATROSKA_DLL_API KaxTagDefault : public EbmlUInteger {
public:
KaxTagDefault() :EbmlUInteger(1) {}
- KaxTagDefault(const KaxTagTrackUID & ElementToClone) :EbmlUInteger(Ele=
mentToClone) {}
+ KaxTagDefault(const KaxTagTrackUID & ElementToClone) :EbmlUInteger(Ele=
mentToClone) {}
static EbmlElement & Create() {return *(new KaxTagDefault);}
const EbmlCallbacks & Generic() const {return ClassInfos;}
static const EbmlCallbacks ClassInfos;
Property changes on: trunk/libmatroska/matroska/KaxTag.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/libmatroska/test/ebml/ebml.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/libmatroska/test/ebml/ebml.proj 2007-02-17 10:34:40 UTC (rev 12=
76)
+++ trunk/libmatroska/test/ebml/ebml.proj 2007-02-17 10:55:54 UTC (rev 12=
77)
@@ -1,11 +1,11 @@
-#include "*/*.proj"
-
-CON ebml-test00
-{
- SOURCE test00.cpp
-}
-
-CON ebml-test0
-{
- SOURCE test0.cpp
-}
+#include "*/*.proj"
+
+CON ebml-test00
+{
+ SOURCE test00.cpp
+}
+
+CON ebml-test0
+{
+ SOURCE test0.cpp
+}
Property changes on: trunk/libmatroska/test/ebml/ebml.proj
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/libmatroska/test/mux/mux.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/libmatroska/test/mux/mux.proj 2007-02-17 10:34:40 UTC (rev 1276=
)
+++ trunk/libmatroska/test/mux/mux.proj 2007-02-17 10:55:54 UTC (rev 1277=
)
@@ -1,11 +1,11 @@
-#include "*/*.proj"
-
-CON mux-test6
-{
- SOURCE test6.cpp
-}
-
-CON mux-test8
-{
- SOURCE test8.cpp
-}
+#include "*/*.proj"
+
+CON mux-test6
+{
+ SOURCE test6.cpp
+}
+
+CON mux-test8
+{
+ SOURCE test8.cpp
+}
Property changes on: trunk/libmatroska/test/mux/mux.proj
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/libmatroska/test/tags/tags.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/libmatroska/test/tags/tags.proj 2007-02-17 10:34:40 UTC (rev 12=
76)
+++ trunk/libmatroska/test/tags/tags.proj 2007-02-17 10:55:54 UTC (rev 12=
77)
@@ -1,6 +1,6 @@
-#include "*/*.proj"
-
-CON tags-test9
-{
- SOURCE tags.cpp
-}
+#include "*/*.proj"
+
+CON tags-test9
+{
+ SOURCE tags.cpp
+}
Property changes on: trunk/libmatroska/test/tags/tags.proj
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/libmatroska/test/test.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/libmatroska/test/test.proj 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/libmatroska/test/test.proj 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1 +1 @@
-#include "*/*.proj"
+#include "*/*.proj"
Property changes on: trunk/libmatroska/test/test.proj
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/libmatroska/test/utf8/utf8.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/libmatroska/test/utf8/utf8.proj 2007-02-17 10:34:40 UTC (rev 12=
76)
+++ trunk/libmatroska/test/utf8/utf8.proj 2007-02-17 10:55:54 UTC (rev 12=
77)
@@ -1,6 +1,6 @@
-#include "*/*.proj"
-
-CON utf8-test5
-{
- SOURCE test5.cpp
-}
+#include "*/*.proj"
+
+CON utf8-test5
+{
+ SOURCE test5.cpp
+}
Property changes on: trunk/libmatroska/test/utf8/utf8.proj
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkaencoder/src/mkaenc.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkvwriter/IOCallbackWrapper.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkvwriter/MatroskaMuxer.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkvwriter/MatroskaSimpleTags.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkvwriter/mkvwriter.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkvwriter/pub/hxtmkvwriter.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkxds/CoreVorbisGUID.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkxds/MatroskaReader.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkxds/OggDS.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkxds/Subtitles.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkxds/asyncio.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkxds/codecs.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkxds/global.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/mkxds/mkxPrioFrame.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/mkxds/mkxPrioFrame.h 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/mkxds/mkxPrioFrame.h 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,176 +1,176 @@
-/***********************************************************************=
*****
-** libmatroska : parse Matroska files, see http://www.matroska.org/
-**
-** <file/class description>
-**
-** Copyright (C) 2002-2003 Steve Lhomme. All rights reserved.
-**
-** This file may be distributed under the terms of the Q Public License
-** as defined by Trolltech AS of Norway and appearing in the file
-** LICENSE.QPL included in the packaging of this file.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Softwar=
e
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** Licensees holding an other license may use this file in accordance wi=
th=20
-** the Agreement provided with the Software.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING T=
HE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURP=
OSE.
-**
-** See http://www.matroska.org/license/qpl/ for QPL licensing informatio=
n.
-** See http://www.matroska.org/license/gpl/ for GPL licensing informatio=
n.
-**
-** Contact [email protected] if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-/*!
- \file
- \version \$Id: mkxPrioFrame.h,v 1.7 2003/08/01 21:15:47 robux4 E=
xp $
- \author Steve Lhomme <robux4 @ users.sf.net>
-*/
-
-#ifndef MKXDS_MKX_PRIO_FRAME_H
-#define MKXDS_MKX_PRIO_FRAME_H
-
-#include "matroska/KaxBlock.h"
-#include "matroska/KaxBlockData.h"
-
-#include <map>
-#include <deque>
-
-using namespace LIBMATROSKA_NAMESPACE;
-
-/*!
- \class MkxPrioBuffer
-*/
-class MkxPrioBuffer {
-public:
- MkxPrioBuffer(KaxBlockGroup & aBlock)
- :Block(&aBlock)
- ,Displayed(false)
- ,CanDelete(true)
- {
- KaxReferencePriority & RefPrio =3D GetChild<KaxReferencePriority>(aBlo=
ck);
- Priority =3D uint8(RefPrio);
- Timecode =3D aBlock.GlobalTimecode();
- }
-
- MkxPrioBuffer & operator=3D(const MkxPrioBuffer & aBuffer)
- {
- Block =3D aBuffer.Block;
- Priority =3D aBuffer.Priority;
- Timecode =3D aBuffer.Timecode;
- Displayed =3D aBuffer.Displayed;
- return *this;
- }
-
- KaxBlockGroup * Block;
- uint8 Priority; ///< used to speed access to this value
- uint64 Timecode; ///< used to speed access to this value
- bool Displayed;
- bool CanDelete;
-};
-
-class MkxPrioKey {
-public:
- MkxPrioKey(MkxPrioBuffer & aBuf)
- :Elt(aBuf)
- {}
-
- bool operator<(const MkxPrioKey &aKey) const
- {
- return (Elt.Timecode < aKey.Elt.Timecode);
- }
-=09
- MkxPrioBuffer & Elt;
-};
-
-/*!
- \class MkxPrioCache
-*/
-class MkxPrioCache : public CCritSec {
-public:
- MkxPrioCache(UINT MinCache, UINT aMaxWriteThreshold, UINT aMaxReadThres=
hold,=20
- UINT aMinWriteThreshold =3D 1);
- ~MkxPrioCache();
-
- void PushBlock(KaxBlockGroup & aBlock);
-
- KaxBlockGroup * GetElementInTimeOrder();
-
- KaxBlockGroup * GetNextInTimeOrder(KaxBlockGroup & aBlock);
-
- void UsedBlock(KaxBlockGroup & aBlock);
-
- void StartFlush();
- void EndFlush();
-
- void Reset();
-
- BOOL IsEnding() const {return Ending;}
- BOOL IsFlushing() const {return Flushing;}
-
- /*!
- \brief Retrieve a Block from the queue
- \note Block until data is coming, unless it's being flushed or at the =
end of stream
- \note the reader becomes the "owner" of the Block (memory freeing)
- \return a Block or NULL if the queue is being flushed or ending
- */
- KaxBlockGroup * GetFrontBlock();
-
- /*!
- \brief Put a Block in the queue
- \param bForce pushing an element will not block the caller in this cas=
e
- \note the queue becomes the "owner" of the Block (memory freeing)
- */
-// void PushBlockBack(KaxBlockGroup * aBlock);
-
- /*!
- \brief trigger the Pause mode of the queue (reduced queue size)
- */
- void SetPauseMode(bool bPauseMode);
-
- /*!
- \brief Signal that the queue will not have any further blocks
- */
- void EndOfStream();
-
-#ifdef _UNICODE
- std::wstring mName;
-#else // _UNICODE
- std::string mName;
-#endif // _UNICODE
-
- void SetMaxReadThreshold(UINT Threashold);
- void SetMaxWriteThreshold(UINT Threashold);
- void SetMinWriteThreshold(UINT Threashold);
-
- void DisableWriteBlock();
- void EnableWriteBlock();
-
-protected:
- std::map<MkxPrioKey, MkxPrioBuffer*> DisplayOrderList;
- std::deque<MkxPrioBuffer*> CodingOrderList;
- UINT MinCache;
- UINT MinWriteThreshold;
- UINT MaxWriteThreshold;
- UINT MaxReadThreshold;
- BOOL Ending;
- BOOL Flushing;
- CAMEvent mWriteUnBlock;
- BOOL bWriteCanBlock;
- CAMEvent mReadUnBlock;
-
- /*!
- Erase blocks that are not needed anymore
- \warning use only when locked
- */
- void StripList();
-};
-
-#endif // MKXDS_MKX_PRIO_FRAME_H
-
+/***********************************************************************=
*****
+** libmatroska : parse Matroska files, see http://www.matroska.org/
+**
+** <file/class description>
+**
+** Copyright (C) 2002-2003 Steve Lhomme. All rights reserved.
+**
+** This file may be distributed under the terms of the Q Public License
+** as defined by Trolltech AS of Norway and appearing in the file
+** LICENSE.QPL included in the packaging of this file.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Softwar=
e
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** Licensees holding an other license may use this file in accordance wi=
th=20
+** the Agreement provided with the Software.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING T=
HE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURP=
OSE.
+**
+** See http://www.matroska.org/license/qpl/ for QPL licensing informatio=
n.
+** See http://www.matroska.org/license/gpl/ for GPL licensing informatio=
n.
+**
+** Contact [email protected] if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
+/*!
+ \file
+ \version \$Id: mkxPrioFrame.h,v 1.7 2003/08/01 21:15:47 robux4 E=
xp $
+ \author Steve Lhomme <robux4 @ users.sf.net>
+*/
+
+#ifndef MKXDS_MKX_PRIO_FRAME_H
+#define MKXDS_MKX_PRIO_FRAME_H
+
+#include "matroska/KaxBlock.h"
+#include "matroska/KaxBlockData.h"
+
+#include <map>
+#include <deque>
+
+using namespace LIBMATROSKA_NAMESPACE;
+
+/*!
+ \class MkxPrioBuffer
+*/
+class MkxPrioBuffer {
+public:
+ MkxPrioBuffer(KaxBlockGroup & aBlock)
+ :Block(&aBlock)
+ ,Displayed(false)
+ ,CanDelete(true)
+ {
+ KaxReferencePriority & RefPrio =3D GetChild<KaxReferencePriority>(aBlo=
ck);
+ Priority =3D uint8(RefPrio);
+ Timecode =3D aBlock.GlobalTimecode();
+ }
+
+ MkxPrioBuffer & operator=3D(const MkxPrioBuffer & aBuffer)
+ {
+ Block =3D aBuffer.Block;
+ Priority =3D aBuffer.Priority;
+ Timecode =3D aBuffer.Timecode;
+ Displayed =3D aBuffer.Displayed;
+ return *this;
+ }
+
+ KaxBlockGroup * Block;
+ uint8 Priority; ///< used to speed access to this value
+ uint64 Timecode; ///< used to speed access to this value
+ bool Displayed;
+ bool CanDelete;
+};
+
+class MkxPrioKey {
+public:
+ MkxPrioKey(MkxPrioBuffer & aBuf)
+ :Elt(aBuf)
+ {}
+
+ bool operator<(const MkxPrioKey &aKey) const
+ {
+ return (Elt.Timecode < aKey.Elt.Timecode);
+ }
+=09
+ MkxPrioBuffer & Elt;
+};
+
+/*!
+ \class MkxPrioCache
+*/
+class MkxPrioCache : public CCritSec {
+public:
+ MkxPrioCache(UINT MinCache, UINT aMaxWriteThreshold, UINT aMaxReadThres=
hold,=20
+ UINT aMinWriteThreshold =3D 1);
+ ~MkxPrioCache();
+
+ void PushBlock(KaxBlockGroup & aBlock);
+
+ KaxBlockGroup * GetElementInTimeOrder();
+
+ KaxBlockGroup * GetNextInTimeOrder(KaxBlockGroup & aBlock);
+
+ void UsedBlock(KaxBlockGroup & aBlock);
+
+ void StartFlush();
+ void EndFlush();
+
+ void Reset();
+
+ BOOL IsEnding() const {return Ending;}
+ BOOL IsFlushing() const {return Flushing;}
+
+ /*!
+ \brief Retrieve a Block from the queue
+ \note Block until data is coming, unless it's being flushed or at the =
end of stream
+ \note the reader becomes the "owner" of the Block (memory freeing)
+ \return a Block or NULL if the queue is being flushed or ending
+ */
+ KaxBlockGroup * GetFrontBlock();
+
+ /*!
+ \brief Put a Block in the queue
+ \param bForce pushing an element will not block the caller in this cas=
e
+ \note the queue becomes the "owner" of the Block (memory freeing)
+ */
+// void PushBlockBack(KaxBlockGroup * aBlock);
+
+ /*!
+ \brief trigger the Pause mode of the queue (reduced queue size)
+ */
+ void SetPauseMode(bool bPauseMode);
+
+ /*!
+ \brief Signal that the queue will not have any further blocks
+ */
+ void EndOfStream();
+
+#ifdef _UNICODE
+ std::wstring mName;
+#else // _UNICODE
+ std::string mName;
+#endif // _UNICODE
+
+ void SetMaxReadThreshold(UINT Threashold);
+ void SetMaxWriteThreshold(UINT Threashold);
+ void SetMinWriteThreshold(UINT Threashold);
+
+ void DisableWriteBlock();
+ void EnableWriteBlock();
+
+protected:
+ std::map<MkxPrioKey, MkxPrioBuffer*> DisplayOrderList;
+ std::deque<MkxPrioBuffer*> CodingOrderList;
+ UINT MinCache;
+ UINT MinWriteThreshold;
+ UINT MaxWriteThreshold;
+ UINT MaxReadThreshold;
+ BOOL Ending;
+ BOOL Flushing;
+ CAMEvent mWriteUnBlock;
+ BOOL bWriteCanBlock;
+ CAMEvent mReadUnBlock;
+
+ /*!
+ Erase blocks that are not needed anymore
+ \warning use only when locked
+ */
+ void StripList();
+};
+
+#endif // MKXDS_MKX_PRIO_FRAME_H
+
Property changes on: trunk/mkxds/mkxPrioFrame.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkxds/mkx_opin.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkxds/mkxds.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkxds/mkxdsProperty.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkxds/mkxread.h
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: trunk/mkxds/resource.h
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/mkxuncat/mkxuncat.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/mkxuncat/mkxuncat.proj 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/mkxuncat/mkxuncat.proj 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,16 +1,16 @@
-CON mkxuncat
-{
- SOURCE mkxuncat.cpp
- =20
- USE ebml
- USE matroska
- =20
- INCLUDE(TARGET_WIN) ../libebml/src/platform/win32
- INCLUDE ../libebml
- INCLUDE ../libmatroska
-}
-
-WORKSPACE mkxuncat
-{
- USE mkxuncat
-}
+CON mkxuncat
+{
+ SOURCE mkxuncat.cpp
+ =20
+ USE ebml
+ USE matroska
+ =20
+ INCLUDE(TARGET_WIN) ../libebml/src/platform/win32
+ INCLUDE ../libebml
+ INCLUDE ../libmatroska
+}
+
+WORKSPACE mkxuncat
+{
+ USE mkxuncat
+}
Property changes on: trunk/mkxuncat/mkxuncat.proj
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/root.proj
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/root.proj 2007-02-17 10:34:40 UTC (rev 1276)
+++ trunk/root.proj 2007-02-17 10:55:54 UTC (rev 1277)
@@ -1,5 +1,5 @@
-CONFIG_FILE config.h
-PLATFORM_FILES coremake
-
-#include "*/*.proj"
-
+CONFIG_FILE config.h
+PLATFORM_FILES coremake
+
+#include "*/*.proj"
+
Property changes on: trunk/root.proj
___________________________________________________________________
Name: svn:eol-style
+ native