[xiph-commits] r10761 - in trunk/xiph-qt/CAFLAC: . CAFLAC.xcodeproj English.lproj src

arek at svn.xiph.org arek at svn.xiph.org
Sat Jan 28 11:30:59 PST 2006


Author: arek
Date: 2006-01-28 11:30:37 -0800 (Sat, 28 Jan 2006)
New Revision: 10761

Added:
   trunk/xiph-qt/CAFLAC/CAFLAC.xcodeproj/
   trunk/xiph-qt/CAFLAC/CAFLAC.xcodeproj/project.pbxproj
   trunk/xiph-qt/CAFLAC/CAFLAC_Prefix.pch
   trunk/xiph-qt/CAFLAC/English.lproj/
   trunk/xiph-qt/CAFLAC/English.lproj/InfoPlist.strings
   trunk/xiph-qt/CAFLAC/Info.plist
   trunk/xiph-qt/CAFLAC/PkgInfo
   trunk/xiph-qt/CAFLAC/src/
   trunk/xiph-qt/CAFLAC/src/CAFLACCodec.exp
   trunk/xiph-qt/CAFLAC/src/CAFLACDecoder.cpp
   trunk/xiph-qt/CAFLAC/src/CAFLACDecoder.h
   trunk/xiph-qt/CAFLAC/src/CAFLACDecoderPublic.r
   trunk/xiph-qt/CAFLAC/src/CAOggFLACDecoder.cpp
   trunk/xiph-qt/CAFLAC/src/CAOggFLACDecoder.h
   trunk/xiph-qt/CAFLAC/src/flac_entrypoints.cpp
   trunk/xiph-qt/CAFLAC/src/flac_versions.h
Modified:
   trunk/xiph-qt/CAFLAC/
Log:
FLAC decoder initial import.


Property changes on: trunk/xiph-qt/CAFLAC
___________________________________________________________________
Name: svn:ignore
   + build



Property changes on: trunk/xiph-qt/CAFLAC/CAFLAC.xcodeproj
___________________________________________________________________
Name: svn:ignore
   + *.mode*
*.pbxuser


Added: trunk/xiph-qt/CAFLAC/CAFLAC.xcodeproj/project.pbxproj
===================================================================
--- trunk/xiph-qt/CAFLAC/CAFLAC.xcodeproj/project.pbxproj	2006-01-28 13:04:14 UTC (rev 10760)
+++ trunk/xiph-qt/CAFLAC/CAFLAC.xcodeproj/project.pbxproj	2006-01-28 19:30:37 UTC (rev 10761)
@@ -0,0 +1,556 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		732019C008FEDE8B002000DA /* CAFLACDecoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 732019BA08FEDE8B002000DA /* CAFLACDecoder.cpp */; };
+		732019CF08FEDF03002000DA /* CAFLACDecoderPublic.r in Rez */ = {isa = PBXBuildFile; fileRef = 732019C208FEDECB002000DA /* CAFLACDecoderPublic.r */; };
+		732019D108FEDF3A002000DA /* Ogg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 732019D008FEDF3A002000DA /* Ogg.framework */; };
+		732019E208FEDF99002000DA /* ringbuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 732019DF08FEDF99002000DA /* ringbuffer.cpp */; };
+		732019FF08FEDFAD002000DA /* ACBaseCodec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 732019E708FEDFAD002000DA /* ACBaseCodec.cpp */; };
+		73201A0008FEDFAD002000DA /* ACCodec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 732019E908FEDFAD002000DA /* ACCodec.cpp */; };
+		73201A0208FEDFAD002000DA /* GetCodecBundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 732019EF08FEDFAD002000DA /* GetCodecBundle.cpp */; };
+		73201A0308FEDFAD002000DA /* AudioCodecComponentGlue.c in Sources */ = {isa = PBXBuildFile; fileRef = 732019F108FEDFAD002000DA /* AudioCodecComponentGlue.c */; };
+		73201A0508FEDFAD002000DA /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 732019F708FEDFAD002000DA /* CABundleLocker.cpp */; };
+		73201A0608FEDFAD002000DA /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 732019FA08FEDFAD002000DA /* CADebugMacros.cpp */; };
+		73201A0708FEDFAD002000DA /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 732019FD08FEDFAD002000DA /* CAStreamBasicDescription.cpp */; };
+		73201A0908FEE030002000DA /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73201A0808FEE030002000DA /* AudioUnit.framework */; };
+		73201A3908FEE41B002000DA /* FLAC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73201A3808FEE41B002000DA /* FLAC.framework */; };
+		734EA2400902851800D10866 /* XCACodec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 734EA23E0902851800D10866 /* XCACodec.cpp */; };
+		7350DCD2098BC2F100A5DAB4 /* CAOggFLACDecoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7350DCD0098BC2F100A5DAB4 /* CAOggFLACDecoder.cpp */; };
+		7350DCD3098BC2F100A5DAB4 /* CAOggFLACDecoder.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7350DCD1098BC2F100A5DAB4 /* CAOggFLACDecoder.h */; };
+		7350DCD8098BC37D00A5DAB4 /* wrap_ogg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7350DCD5098BC37D00A5DAB4 /* wrap_ogg.cpp */; };
+		739A57440901A47600CF57C1 /* FLAC++.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 739A57430901A47600CF57C1 /* FLAC++.framework */; };
+		73A55FD8090008A2009FD166 /* PkgInfo in CopyFiles */ = {isa = PBXBuildFile; fileRef = 73A55FD7090008A2009FD166 /* PkgInfo */; };
+		73AE0E550907D14A0008B8A1 /* flac_entrypoints.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 73AE0E540907D14A0008B8A1 /* flac_entrypoints.cpp */; };
+		8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
+		8D01CCCE0486CAD60068D4B7 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXBuildStyle section */
+		4F9091AC011F3BD104CA0E50 /* Development */ = {
+			isa = PBXBuildStyle;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				ZERO_LINK = YES;
+			};
+			name = Development;
+		};
+		4F9091AD011F3BD104CA0E50 /* Deployment */ = {
+			isa = PBXBuildStyle;
+			buildSettings = {
+				COPY_PHASE_STRIP = YES;
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				ZERO_LINK = NO;
+			};
+			name = Deployment;
+		};
+/* End PBXBuildStyle section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		73A55FDB09000902009FD166 /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = Contents;
+			dstSubfolderSpec = 1;
+			files = (
+				73A55FD8090008A2009FD166 /* PkgInfo in CopyFiles */,
+				7350DCD3098BC2F100A5DAB4 /* CAOggFLACDecoder.h in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		73E597EC09000B7900357BC8 /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 1;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+		32BAE0B30371A71500C91783 /* CAFLAC_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFLAC_Prefix.pch; sourceTree = "<group>"; };
+		732019B908FEDE8B002000DA /* CAFLACCodec.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; name = CAFLACCodec.exp; path = src/CAFLACCodec.exp; sourceTree = "<group>"; };
+		732019BA08FEDE8B002000DA /* CAFLACDecoder.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = CAFLACDecoder.cpp; path = src/CAFLACDecoder.cpp; sourceTree = "<group>"; };
+		732019BB08FEDE8B002000DA /* CAFLACDecoder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CAFLACDecoder.h; path = src/CAFLACDecoder.h; sourceTree = "<group>"; };
+		732019BE08FEDE8B002000DA /* flac_versions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = flac_versions.h; path = src/flac_versions.h; sourceTree = "<group>"; };
+		732019C208FEDECB002000DA /* CAFLACDecoderPublic.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; name = CAFLACDecoderPublic.r; path = src/CAFLACDecoderPublic.r; sourceTree = "<group>"; };
+		732019D008FEDF3A002000DA /* Ogg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Ogg.framework; path = /Library/Frameworks/Ogg.framework; sourceTree = "<absolute>"; };
+		732019DF08FEDF99002000DA /* ringbuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ringbuffer.cpp; sourceTree = "<group>"; };
+		732019E008FEDF99002000DA /* ringbuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ringbuffer.h; sourceTree = "<group>"; };
+		732019E708FEDFAD002000DA /* ACBaseCodec.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ACBaseCodec.cpp; sourceTree = "<group>"; };
+		732019E808FEDFAD002000DA /* ACBaseCodec.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ACBaseCodec.h; sourceTree = "<group>"; };
+		732019E908FEDFAD002000DA /* ACCodec.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ACCodec.cpp; sourceTree = "<group>"; };
+		732019EA08FEDFAD002000DA /* ACCodec.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ACCodec.h; sourceTree = "<group>"; };
+		732019EB08FEDFAD002000DA /* ACCodecDispatch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ACCodecDispatch.h; sourceTree = "<group>"; };
+		732019EC08FEDFAD002000DA /* ACCodecDispatchTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ACCodecDispatchTypes.h; sourceTree = "<group>"; };
+		732019EE08FEDFAD002000DA /* ACConditionalMacros.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ACConditionalMacros.h; sourceTree = "<group>"; };
+		732019EF08FEDFAD002000DA /* GetCodecBundle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GetCodecBundle.cpp; sourceTree = "<group>"; };
+		732019F008FEDFAD002000DA /* GetCodecBundle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GetCodecBundle.h; sourceTree = "<group>"; };
+		732019F108FEDFAD002000DA /* AudioCodecComponentGlue.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = AudioCodecComponentGlue.c; sourceTree = "<group>"; };
+		732019F708FEDFAD002000DA /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
+		732019F808FEDFAD002000DA /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
+		732019F908FEDFAD002000DA /* CAConditionalMacros.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAConditionalMacros.h; sourceTree = "<group>"; };
+		732019FA08FEDFAD002000DA /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
+		732019FB08FEDFAD002000DA /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
+		732019FC08FEDFAD002000DA /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
+		732019FD08FEDFAD002000DA /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
+		732019FE08FEDFAD002000DA /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
+		73201A0808FEE030002000DA /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
+		73201A3808FEE41B002000DA /* FLAC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FLAC.framework; path = ../../../../../../Library/Frameworks/FLAC.framework; sourceTree = SOURCE_ROOT; };
+		734EA23D0902851800D10866 /* XCACodec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = XCACodec.h; path = ../common/XCACodec.h; sourceTree = "<group>"; };
+		734EA23E0902851800D10866 /* XCACodec.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = XCACodec.cpp; path = ../common/XCACodec.cpp; sourceTree = "<group>"; };
+		7350DCB1098BC1EF00A5DAB4 /* XCAResources.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; name = XCAResources.r; path = ../resources/XCAResources.r; sourceTree = SOURCE_ROOT; };
+		7350DCCA098BC29100A5DAB4 /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = config.h; path = ../common/config.h; sourceTree = SOURCE_ROOT; };
+		7350DCCB098BC29100A5DAB4 /* fccs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = fccs.h; path = ../common/fccs.h; sourceTree = SOURCE_ROOT; };
+		7350DCCE098BC2A700A5DAB4 /* data_types.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = data_types.h; path = ../common/data_types.h; sourceTree = SOURCE_ROOT; };
+		7350DCD0098BC2F100A5DAB4 /* CAOggFLACDecoder.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = CAOggFLACDecoder.cpp; path = src/CAOggFLACDecoder.cpp; sourceTree = "<group>"; };
+		7350DCD1098BC2F100A5DAB4 /* CAOggFLACDecoder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CAOggFLACDecoder.h; path = src/CAOggFLACDecoder.h; sourceTree = "<group>"; };
+		7350DCD4098BC37D00A5DAB4 /* debug.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = debug.h; sourceTree = "<group>"; };
+		7350DCD5098BC37D00A5DAB4 /* wrap_ogg.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = wrap_ogg.cpp; sourceTree = "<group>"; };
+		7350DCD6098BC37D00A5DAB4 /* wrap_ogg.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = wrap_ogg.h; sourceTree = "<group>"; };
+		739A57430901A47600CF57C1 /* FLAC++.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "FLAC++.framework"; path = "../../../../../../Library/Frameworks/FLAC++.framework"; sourceTree = SOURCE_ROOT; };
+		73A55FD7090008A2009FD166 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PkgInfo; sourceTree = "<group>"; };
+		73AE0E540907D14A0008B8A1 /* flac_entrypoints.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = flac_entrypoints.cpp; path = src/flac_entrypoints.cpp; sourceTree = "<group>"; };
+		73E597F70900114900357BC8 /* icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = icon.icns; path = ../resources/icon.icns; sourceTree = SOURCE_ROOT; };
+		73E597F80900114900357BC8 /* icon.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; name = icon.r; path = ../resources/icon.r; sourceTree = SOURCE_ROOT; };
+		8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
+		8D01CCD20486CAD60068D4B7 /* CAFLAC.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CAFLAC.component; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8D01CCCD0486CAD60068D4B7 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8D01CCCE0486CAD60068D4B7 /* Carbon.framework in Frameworks */,
+				732019D108FEDF3A002000DA /* Ogg.framework in Frameworks */,
+				73201A0908FEE030002000DA /* AudioUnit.framework in Frameworks */,
+				73201A3908FEE41B002000DA /* FLAC.framework in Frameworks */,
+				739A57440901A47600CF57C1 /* FLAC++.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		089C166AFE841209C02AAC07 /* CAFLAC */ = {
+			isa = PBXGroup;
+			children = (
+				08FB77ADFE841716C02AAC07 /* Source */,
+				089C167CFE841241C02AAC07 /* Resources */,
+				732019DA08FEDF6D002000DA /* External Source */,
+				089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
+				19C28FB4FE9D528D11CA2CBB /* Products */,
+			);
+			name = CAFLAC;
+			sourceTree = "<group>";
+		};
+		089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				732019D008FEDF3A002000DA /* Ogg.framework */,
+				73201A3808FEE41B002000DA /* FLAC.framework */,
+				739A57430901A47600CF57C1 /* FLAC++.framework */,
+				73201A0808FEE030002000DA /* AudioUnit.framework */,
+				08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+		089C167CFE841241C02AAC07 /* Resources */ = {
+			isa = PBXGroup;
+			children = (
+				7350DCB1098BC1EF00A5DAB4 /* XCAResources.r */,
+				73E597F70900114900357BC8 /* icon.icns */,
+				73E597F80900114900357BC8 /* icon.r */,
+				732019C208FEDECB002000DA /* CAFLACDecoderPublic.r */,
+				8D01CCD10486CAD60068D4B7 /* Info.plist */,
+				089C167DFE841241C02AAC07 /* InfoPlist.strings */,
+				73A55FD7090008A2009FD166 /* PkgInfo */,
+			);
+			name = Resources;
+			sourceTree = "<group>";
+		};
+		08FB77ADFE841716C02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				7350DCD0098BC2F100A5DAB4 /* CAOggFLACDecoder.cpp */,
+				7350DCD1098BC2F100A5DAB4 /* CAOggFLACDecoder.h */,
+				7350DCCE098BC2A700A5DAB4 /* data_types.h */,
+				7350DCCA098BC29100A5DAB4 /* config.h */,
+				7350DCCB098BC29100A5DAB4 /* fccs.h */,
+				732019B908FEDE8B002000DA /* CAFLACCodec.exp */,
+				32BAE0B30371A71500C91783 /* CAFLAC_Prefix.pch */,
+				732019BE08FEDE8B002000DA /* flac_versions.h */,
+				732019BB08FEDE8B002000DA /* CAFLACDecoder.h */,
+				732019BA08FEDE8B002000DA /* CAFLACDecoder.cpp */,
+				734EA23D0902851800D10866 /* XCACodec.h */,
+				734EA23E0902851800D10866 /* XCACodec.cpp */,
+				73AE0E540907D14A0008B8A1 /* flac_entrypoints.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		19C28FB4FE9D528D11CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				8D01CCD20486CAD60068D4B7 /* CAFLAC.component */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		732019DA08FEDF6D002000DA /* External Source */ = {
+			isa = PBXGroup;
+			children = (
+				732019E308FEDFAD002000DA /* AppleSDK */,
+				732019DC08FEDF99002000DA /* utils */,
+			);
+			name = "External Source";
+			sourceTree = "<group>";
+		};
+		732019DC08FEDF99002000DA /* utils */ = {
+			isa = PBXGroup;
+			children = (
+				7350DCD4098BC37D00A5DAB4 /* debug.h */,
+				7350DCD5098BC37D00A5DAB4 /* wrap_ogg.cpp */,
+				7350DCD6098BC37D00A5DAB4 /* wrap_ogg.h */,
+				732019DF08FEDF99002000DA /* ringbuffer.cpp */,
+				732019E008FEDF99002000DA /* ringbuffer.h */,
+			);
+			name = utils;
+			path = ../utils;
+			sourceTree = SOURCE_ROOT;
+		};
+		732019E308FEDFAD002000DA /* AppleSDK */ = {
+			isa = PBXGroup;
+			children = (
+				732019E408FEDFAD002000DA /* CoreAudio */,
+			);
+			name = AppleSDK;
+			path = ../AppleSDK;
+			sourceTree = SOURCE_ROOT;
+		};
+		732019E408FEDFAD002000DA /* CoreAudio */ = {
+			isa = PBXGroup;
+			children = (
+				732019E508FEDFAD002000DA /* AudioCodecs */,
+				732019F608FEDFAD002000DA /* PublicUtility */,
+			);
+			path = CoreAudio;
+			sourceTree = "<group>";
+		};
+		732019E508FEDFAD002000DA /* AudioCodecs */ = {
+			isa = PBXGroup;
+			children = (
+				732019E608FEDFAD002000DA /* ACPublic */,
+				732019F108FEDFAD002000DA /* AudioCodecComponentGlue.c */,
+			);
+			path = AudioCodecs;
+			sourceTree = "<group>";
+		};
+		732019E608FEDFAD002000DA /* ACPublic */ = {
+			isa = PBXGroup;
+			children = (
+				732019E708FEDFAD002000DA /* ACBaseCodec.cpp */,
+				732019E808FEDFAD002000DA /* ACBaseCodec.h */,
+				732019E908FEDFAD002000DA /* ACCodec.cpp */,
+				732019EA08FEDFAD002000DA /* ACCodec.h */,
+				732019EB08FEDFAD002000DA /* ACCodecDispatch.h */,
+				732019EC08FEDFAD002000DA /* ACCodecDispatchTypes.h */,
+				732019EE08FEDFAD002000DA /* ACConditionalMacros.h */,
+				732019EF08FEDFAD002000DA /* GetCodecBundle.cpp */,
+				732019F008FEDFAD002000DA /* GetCodecBundle.h */,
+			);
+			path = ACPublic;
+			sourceTree = "<group>";
+		};
+		732019F608FEDFAD002000DA /* PublicUtility */ = {
+			isa = PBXGroup;
+			children = (
+				732019F708FEDFAD002000DA /* CABundleLocker.cpp */,
+				732019F808FEDFAD002000DA /* CABundleLocker.h */,
+				732019F908FEDFAD002000DA /* CAConditionalMacros.h */,
+				732019FA08FEDFAD002000DA /* CADebugMacros.cpp */,
+				732019FB08FEDFAD002000DA /* CADebugMacros.h */,
+				732019FC08FEDFAD002000DA /* CAMath.h */,
+				732019FD08FEDFAD002000DA /* CAStreamBasicDescription.cpp */,
+				732019FE08FEDFAD002000DA /* CAStreamBasicDescription.h */,
+			);
+			path = PublicUtility;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8D01CCC60486CAD60068D4B7 /* CAFLAC */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 739EAEA708FEB331008D8013 /* Build configuration list for PBXNativeTarget "CAFLAC" */;
+			buildPhases = (
+				8D01CCC90486CAD60068D4B7 /* Resources */,
+				73A55FDB09000902009FD166 /* CopyFiles */,
+				8D01CCCB0486CAD60068D4B7 /* Sources */,
+				8D01CCCD0486CAD60068D4B7 /* Frameworks */,
+				732019CD08FEDEF9002000DA /* Rez */,
+				73E597EC09000B7900357BC8 /* CopyFiles */,
+				73E598050900144C00357BC8 /* ShellScript */,
+			);
+			buildRules = (
+			);
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = CAFLAC_Prefix.pch;
+				INFOPLIST_FILE = Info.plist;
+				INSTALL_PATH = "$(HOME)/Library/Bundles";
+				PRODUCT_NAME = CAFLAC;
+				WRAPPER_EXTENSION = bundle;
+			};
+			dependencies = (
+			);
+			name = CAFLAC;
+			productInstallPath = "$(HOME)/Library/Bundles";
+			productName = CAFLAC;
+			productReference = 8D01CCD20486CAD60068D4B7 /* CAFLAC.component */;
+			productType = "com.apple.product-type.bundle";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		089C1669FE841209C02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 739EAEAB08FEB331008D8013 /* Build configuration list for PBXProject "CAFLAC" */;
+			buildSettings = {
+			};
+			buildStyles = (
+				4F9091AC011F3BD104CA0E50 /* Development */,
+				4F9091AD011F3BD104CA0E50 /* Deployment */,
+			);
+			hasScannedForEncodings = 1;
+			mainGroup = 089C166AFE841209C02AAC07 /* CAFLAC */;
+			projectDirPath = "";
+			targets = (
+				8D01CCC60486CAD60068D4B7 /* CAFLAC */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		8D01CCC90486CAD60068D4B7 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXRezBuildPhase section */
+		732019CD08FEDEF9002000DA /* Rez */ = {
+			isa = PBXRezBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				732019CF08FEDF03002000DA /* CAFLACDecoderPublic.r in Rez */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXRezBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		73E598050900144C00357BC8 /* ShellScript */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 12;
+			files = (
+			);
+			inputPaths = (
+				../resources/icon.r,
+				../resources/icon.icns,
+			);
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "cd ../resources\n${SYSTEM_DEVELOPER_TOOLS}/Rez -o \"${TARGET_BUILD_DIR}/${FULL_PRODUCT_NAME}\"/$'Icon\\x0D' icon.r\n${SYSTEM_DEVELOPER_TOOLS}/SetFile -a CE \"${TARGET_BUILD_DIR}/${FULL_PRODUCT_NAME}\"";
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8D01CCCB0486CAD60068D4B7 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				732019C008FEDE8B002000DA /* CAFLACDecoder.cpp in Sources */,
+				732019E208FEDF99002000DA /* ringbuffer.cpp in Sources */,
+				732019FF08FEDFAD002000DA /* ACBaseCodec.cpp in Sources */,
+				73201A0008FEDFAD002000DA /* ACCodec.cpp in Sources */,
+				73201A0208FEDFAD002000DA /* GetCodecBundle.cpp in Sources */,
+				73201A0308FEDFAD002000DA /* AudioCodecComponentGlue.c in Sources */,
+				73201A0508FEDFAD002000DA /* CABundleLocker.cpp in Sources */,
+				73201A0608FEDFAD002000DA /* CADebugMacros.cpp in Sources */,
+				73201A0708FEDFAD002000DA /* CAStreamBasicDescription.cpp in Sources */,
+				734EA2400902851800D10866 /* XCACodec.cpp in Sources */,
+				73AE0E550907D14A0008B8A1 /* flac_entrypoints.cpp in Sources */,
+				7350DCD2098BC2F100A5DAB4 /* CAOggFLACDecoder.cpp in Sources */,
+				7350DCD8098BC37D00A5DAB4 /* wrap_ogg.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+		089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				089C167EFE841241C02AAC07 /* English */,
+			);
+			name = InfoPlist.strings;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		739EAEA808FEB331008D8013 /* Development */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				EXPORTED_SYMBOLS_FILE = src/CAFLACCodec.exp;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = CAFLAC_Prefix.pch;
+				INFOPLIST_FILE = Info.plist;
+				INSTALL_PATH = "$(HOME)/Library/Components";
+				PRODUCT_NAME = CAFLAC;
+				WRAPPER_EXTENSION = component;
+				ZERO_LINK = YES;
+			};
+			name = Development;
+		};
+		739EAEA908FEB331008D8013 /* Deployment */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = YES;
+				EXPORTED_SYMBOLS_FILE = src/CAFLACCodec.exp;
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = CAFLAC_Prefix.pch;
+				INFOPLIST_FILE = Info.plist;
+				INSTALL_PATH = "$(HOME)/Library/Components";
+				PRODUCT_NAME = CAFLAC;
+				WRAPPER_EXTENSION = component;
+				ZERO_LINK = NO;
+			};
+			name = Deployment;
+		};
+		739EAEAA08FEB331008D8013 /* Default */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				EXPORTED_SYMBOLS_FILE = src/CAFLACCodec.exp;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = CAFLAC_Prefix.pch;
+				INFOPLIST_FILE = Info.plist;
+				INSTALL_PATH = "$(HOME)/Library/Components";
+				PRODUCT_NAME = CAFLAC;
+				WRAPPER_EXTENSION = component;
+			};
+			name = Default;
+		};
+		739EAEAC08FEB331008D8013 /* Development */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(FRAMEWORK_SEARCH_PATHS)",
+					"$(HOME)/Library/Frameworks",
+				);
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"$(GCC_PREPROCESSOR_DEFINITIONS)",
+					__MACOSX__,
+					QT_IA32__VBR_BROKEN,
+				);
+				OTHER_CFLAGS = "-Wall";
+				OTHER_REZFLAGS = "-D TARGET_REZ_MAC_PPC=1";
+			};
+			name = Development;
+		};
+		739EAEAD08FEB331008D8013 /* Deployment */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(FRAMEWORK_SEARCH_PATHS)",
+					"$(HOME)/Library/Frameworks",
+				);
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"$(GCC_PREPROCESSOR_DEFINITIONS)",
+					__MACOSX__,
+					QT_IA32__VBR_BROKEN,
+					NDEBUG,
+				);
+				OTHER_CFLAGS = "-Wall";
+				OTHER_REZFLAGS = "-D TARGET_REZ_MAC_PPC=1";
+			};
+			name = Deployment;
+		};
+		739EAEAE08FEB331008D8013 /* Default */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(FRAMEWORK_SEARCH_PATHS)",
+					"$(HOME)/Library/Frameworks",
+				);
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"$(GCC_PREPROCESSOR_DEFINITIONS)",
+					__MACOSX__,
+					QT_IA32__VBR_BROKEN,
+				);
+				OTHER_CFLAGS = "-Wall";
+				OTHER_REZFLAGS = "-D TARGET_REZ_MAC_PPC=1";
+			};
+			name = Default;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		739EAEA708FEB331008D8013 /* Build configuration list for PBXNativeTarget "CAFLAC" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				739EAEA808FEB331008D8013 /* Development */,
+				739EAEA908FEB331008D8013 /* Deployment */,
+				739EAEAA08FEB331008D8013 /* Default */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Development;
+		};
+		739EAEAB08FEB331008D8013 /* Build configuration list for PBXProject "CAFLAC" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				739EAEAC08FEB331008D8013 /* Development */,
+				739EAEAD08FEB331008D8013 /* Deployment */,
+				739EAEAE08FEB331008D8013 /* Default */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Development;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 089C1669FE841209C02AAC07 /* Project object */;
+}

Added: trunk/xiph-qt/CAFLAC/CAFLAC_Prefix.pch
===================================================================
--- trunk/xiph-qt/CAFLAC/CAFLAC_Prefix.pch	2006-01-28 13:04:14 UTC (rev 10760)
+++ trunk/xiph-qt/CAFLAC/CAFLAC_Prefix.pch	2006-01-28 19:30:37 UTC (rev 10761)
@@ -0,0 +1,5 @@
+//
+// Prefix header for all source files of the 'CAFLAC' target in the 'CAFLAC' project.
+//
+
+#include <Carbon/Carbon.h>

Added: trunk/xiph-qt/CAFLAC/English.lproj/InfoPlist.strings
===================================================================
(Binary files differ)


Property changes on: trunk/xiph-qt/CAFLAC/English.lproj/InfoPlist.strings
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/xiph-qt/CAFLAC/Info.plist
===================================================================
--- trunk/xiph-qt/CAFLAC/Info.plist	2006-01-28 13:04:14 UTC (rev 10760)
+++ trunk/xiph-qt/CAFLAC/Info.plist	2006-01-28 19:30:37 UTC (rev 10761)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>CAFLAC</string>
+	<key>CFBundleIconFile</key>
+	<string></string>
+	<key>CFBundleIdentifier</key>
+	<string>org.xiph.xiph-qt.caflac</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleSignature</key>
+	<string>adec</string>
+	<key>CFBundleVersion</key>
+	<string>0.1.1</string>
+	<key>CFBundleShortVersionString</key>
+	<string>0.1.1</string>
+	<key>CSResourcesFileMapped</key>
+	<true/>
+</dict>
+</plist>

Added: trunk/xiph-qt/CAFLAC/PkgInfo
===================================================================
--- trunk/xiph-qt/CAFLAC/PkgInfo	2006-01-28 13:04:14 UTC (rev 10760)
+++ trunk/xiph-qt/CAFLAC/PkgInfo	2006-01-28 19:30:37 UTC (rev 10761)
@@ -0,0 +1 @@
+thngadec
\ No newline at end of file

Added: trunk/xiph-qt/CAFLAC/src/CAFLACCodec.exp
===================================================================
--- trunk/xiph-qt/CAFLAC/src/CAFLACCodec.exp	2006-01-28 13:04:14 UTC (rev 10760)
+++ trunk/xiph-qt/CAFLAC/src/CAFLACCodec.exp	2006-01-28 19:30:37 UTC (rev 10761)
@@ -0,0 +1,2 @@
+_CAFLACDecoderEntry
+_CAOggFLACDecoderEntry

Added: trunk/xiph-qt/CAFLAC/src/CAFLACDecoder.cpp
===================================================================
--- trunk/xiph-qt/CAFLAC/src/CAFLACDecoder.cpp	2006-01-28 13:04:14 UTC (rev 10760)
+++ trunk/xiph-qt/CAFLAC/src/CAFLACDecoder.cpp	2006-01-28 19:30:37 UTC (rev 10761)
@@ -0,0 +1,677 @@
+/*
+ *  CAFLACDecoder.cpp
+ *
+ *    CAFLACDecoder class implementation; the main part of the FLAC
+ *    codec functionality.
+ *
+ *
+ *  Copyright (c) 2005-2006  Arek Korbik
+ *
+ *  This file is part of XiphQT, the Xiph QuickTime Components.
+ *
+ *  XiphQT is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 of the License, or (at your option) any later version.
+ *
+ *  XiphQT 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
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with XiphQT; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ *
+ *  Last modified: $Id$
+ *
+ */
+
+
+#include <Ogg/ogg.h>
+#include <FLAC++/decoder.h>
+
+#include "CAFLACDecoder.h"
+
+#include "CABundleLocker.h"
+
+#include "flac_versions.h"
+#include "fccs.h"
+#include "data_types.h"
+
+#include "debug.h"
+
+
+CAFLACDecoder::CAFLACDecoder(Boolean inSkipFormatsInitialization /* = false */) :
+    mCookie(NULL), mCookieSize(0), mCompressionInitialized(false),
+    mOutBuffer(NULL), mOutBufferSize(0), mOutBufferUsedSize(0),
+    mFLACsrate(44100), mFLACchannels(2), mFLACbits(16), // some defaults...?
+    mFLACFPList(),
+    mFrame(), mNumFrames(0), mBPtrs(NULL)
+{
+    if (inSkipFormatsInitialization)
+        return;
+
+    CAStreamBasicDescription theInputFormat(kAudioStreamAnyRate, kAudioFormatXiphFLAC,
+                                            kFLACBytesPerPacket, kFLACFramesPerPacket,
+                                            kFLACBytesPerFrame, kFLACChannelsPerFrame,
+                                            kFLACBitsPerChannel, kFLACFormatFlags);
+    AddInputFormat(theInputFormat);
+
+    mInputFormat.mSampleRate = 44100;
+    mInputFormat.mFormatID = kAudioFormatXiphFLAC;
+    mInputFormat.mFormatFlags = kFLACFormatFlags;
+    mInputFormat.mBytesPerPacket = kFLACBytesPerPacket;
+    mInputFormat.mFramesPerPacket = kFLACFramesPerPacket;
+    mInputFormat.mBytesPerFrame = kFLACBytesPerFrame;
+    mInputFormat.mChannelsPerFrame = 2;
+    mInputFormat.mBitsPerChannel = 16;
+
+    CAStreamBasicDescription theOutputFormat1(kAudioStreamAnyRate, kAudioFormatLinearPCM, 0, 1, 0, 0, 16,
+                                              kAudioFormatFlagsNativeEndian |
+                                              kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked);
+    AddOutputFormat(theOutputFormat1);
+    CAStreamBasicDescription theOutputFormat2(kAudioStreamAnyRate, kAudioFormatLinearPCM, 0, 1, 0, 0, 32,
+                                              kAudioFormatFlagsNativeFloatPacked);
+    AddOutputFormat(theOutputFormat2);
+
+    mOutputFormat.mSampleRate = 44100;
+    mOutputFormat.mFormatID = kAudioFormatLinearPCM;
+    mOutputFormat.mFormatFlags = kAudioFormatFlagsNativeFloatPacked;
+    mOutputFormat.mBytesPerPacket = 8;
+    mOutputFormat.mFramesPerPacket = 1;
+    mOutputFormat.mBytesPerFrame = 8;
+    mOutputFormat.mChannelsPerFrame = 2;
+    mOutputFormat.mBitsPerChannel = 32;
+}
+
+CAFLACDecoder::~CAFLACDecoder()
+{
+    if (mCookie != NULL)
+        delete[] mCookie;
+
+    if (mCompressionInitialized) {
+        //TODO: free FLAC specific resources
+    }
+}
+
+void CAFLACDecoder::Initialize(const AudioStreamBasicDescription* inInputFormat,
+                               const AudioStreamBasicDescription* inOutputFormat,
+                               const void* inMagicCookie, UInt32 inMagicCookieByteSize)
+{
+    dbg_printf(" >> [%08lx] :: Initialize(%d, %d, %d)\n", (UInt32) this, inInputFormat != NULL, inOutputFormat != NULL, inMagicCookieByteSize != 0);
+
+    if(inInputFormat != NULL) {
+        SetCurrentInputFormat(*inInputFormat);
+        /////// TODO: !! what do to with the formats?!!
+        //mFInfo.srate = static_cast<UInt32> (inInputFormat->mSampleRate);
+        //mFInfo.channels = inInputFormat->mChannelsPerFrame;
+        //mFInfo.bits = mInputFormat.mBitsPerChannel;
+        //if (mFInfo.bits < 4)
+        //    mFInfo.bits = 16;
+    }
+
+    if(inOutputFormat != NULL) {
+        SetCurrentOutputFormat(*inOutputFormat);
+    }
+
+    if ((mInputFormat.mSampleRate != mOutputFormat.mSampleRate) ||
+        (mInputFormat.mChannelsPerFrame != mOutputFormat.mChannelsPerFrame)) {
+        CODEC_THROW(kAudioCodecUnsupportedFormatError);
+    }
+
+    BDCInitialize(kFLACDecoderInBufferSize);
+
+    //if (inMagicCookieByteSize == 0)
+    //    CODEC_THROW(kAudioCodecUnsupportedFormatError);
+
+    if (inMagicCookieByteSize != 0) {
+        SetMagicCookie(inMagicCookie, inMagicCookieByteSize);
+    }
+
+    //if (mOVinited)
+    //    FixFormats();
+
+    XCACodec::Initialize(inInputFormat, inOutputFormat, inMagicCookie, inMagicCookieByteSize);
+    dbg_printf("<.. [%08lx] :: Initialize(%d, %d, %d)\n", (UInt32) this, inInputFormat != NULL, inOutputFormat != NULL, inMagicCookieByteSize != 0);
+}
+
+void CAFLACDecoder::Uninitialize()
+{
+    dbg_printf(" >> [%08lx] :: Uninitialize()\n", (UInt32) this);
+    BDCUninitialize();
+    XCACodec::Uninitialize();
+    dbg_printf("<.. [%08lx] :: Uninitialize()\n", (UInt32) this);
+}
+
+void CAFLACDecoder::GetProperty(AudioCodecPropertyID inPropertyID, UInt32& ioPropertyDataSize, void* outPropertyData)
+{
+    dbg_printf(" >> [%08lx] :: GetProperty('%4.4s')\n", (UInt32) this, reinterpret_cast<char*> (&inPropertyID));
+    switch(inPropertyID)
+    {
+    /*
+    case kAudioCodecPropertyMaximumPacketByteSize:
+        if(ioPropertyDataSize == sizeof(UInt32)) {
+            *reinterpret_cast<UInt32*>(outPropertyData) = 32 * 8 * 1024;
+        } else {
+            CODEC_THROW(kAudioCodecBadPropertySizeError);
+        }
+        break;
+    */
+
+    case kAudioCodecPropertyRequiresPacketDescription:
+        if(ioPropertyDataSize == sizeof(UInt32)) {
+            *reinterpret_cast<UInt32*>(outPropertyData) = 1;
+        } else {
+            CODEC_THROW(kAudioCodecBadPropertySizeError);
+        }
+        break;
+
+    case kAudioCodecPropertyHasVariablePacketByteSizes:
+        if(ioPropertyDataSize == sizeof(UInt32)) {
+            *reinterpret_cast<UInt32*>(outPropertyData) = 1;
+        } else {
+            CODEC_THROW(kAudioCodecBadPropertySizeError);
+        }
+        break;
+
+    case kAudioCodecPropertyPacketFrameSize:
+        if(ioPropertyDataSize == sizeof(UInt32)) {
+            *reinterpret_cast<UInt32*>(outPropertyData) = kFLACFramesPerPacket;
+        } else {
+            CODEC_THROW(kAudioCodecBadPropertySizeError);
+        }
+        break;
+
+        //case kAudioCodecPropertyQualitySetting: ???
+#if TARGET_OS_MAC
+    case kAudioCodecPropertyNameCFString:
+        {
+            if (ioPropertyDataSize != sizeof(CFStringRef)) CODEC_THROW(kAudioCodecBadPropertySizeError);
+
+            CABundleLocker lock;
+            CFStringRef name = CFCopyLocalizedStringFromTableInBundle(CFSTR("Xiph FLAC decoder"), CFSTR("CodecNames"), GetCodecBundle(), CFSTR(""));
+            *(CFStringRef*)outPropertyData = name;
+            break; 
+        }
+
+        //case kAudioCodecPropertyManufacturerCFString:
+#endif
+    default:
+        ACBaseCodec::GetProperty(inPropertyID, ioPropertyDataSize, outPropertyData);
+    }
+    dbg_printf("<.. [%08lx] :: GetProperty('%4.4s')\n", (UInt32) this, reinterpret_cast<char*> (&inPropertyID));
+}
+
+void CAFLACDecoder::GetPropertyInfo(AudioCodecPropertyID inPropertyID, UInt32& outPropertyDataSize, bool& outWritable)
+{
+    printf(" >> [%08lx] :: GetPropertyInfo('%4.4s')\n", (UInt32) this, reinterpret_cast<char*> (&inPropertyID));
+    switch(inPropertyID)
+    {
+    /*
+    case kAudioCodecPropertyMaximumPacketByteSize:
+        outPropertyDataSize = sizeof(UInt32);
+        outWritable = false;
+        break;
+    */
+
+    case kAudioCodecPropertyRequiresPacketDescription:
+        outPropertyDataSize = sizeof(UInt32);
+        outWritable = false;
+        break;
+
+    case kAudioCodecPropertyHasVariablePacketByteSizes:
+        outPropertyDataSize = sizeof(UInt32);
+        outWritable = false;
+        break;
+
+    case kAudioCodecPropertyPacketFrameSize:
+        outPropertyDataSize = sizeof(UInt32);
+        outWritable = false;
+        break;
+
+    default:
+        ACBaseCodec::GetPropertyInfo(inPropertyID, outPropertyDataSize, outWritable);
+        break;
+
+    };
+    dbg_printf("<.. [%08lx] :: GetPropertyInfo('%4.4s')\n", (UInt32) this, reinterpret_cast<char*> (&inPropertyID));
+}
+
+void CAFLACDecoder::Reset()
+{
+    dbg_printf(">> [%08lx] :: Reset()\n", (UInt32) this);
+    BDCReset();
+
+    XCACodec::Reset();
+    dbg_printf("<< [%08lx] :: Reset()\n", (UInt32) this);
+}
+
+UInt32 CAFLACDecoder::GetVersion() const
+{
+    return kCAFLAC_adec_Version;
+}
+
+UInt32 CAFLACDecoder::GetMagicCookieByteSize() const
+{
+    return mCookieSize;
+}
+
+void CAFLACDecoder::GetMagicCookie(void* outMagicCookieData, UInt32& ioMagicCookieDataByteSize) const
+{
+    ioMagicCookieDataByteSize = mCookieSize;
+
+    if (mCookie != NULL)
+        outMagicCookieData = mCookie;
+}
+
+void CAFLACDecoder::SetMagicCookie(const void* inMagicCookieData, UInt32 inMagicCookieDataByteSize)
+{
+    printf(" >> [%08lx] :: SetMagicCookie()\n", (UInt32) this);
+    if (mIsInitialized)
+        CODEC_THROW(kAudioCodecStateError);
+
+    SetCookie(inMagicCookieData, inMagicCookieDataByteSize);
+
+    InitializeCompressionSettings();
+
+    if (!mCompressionInitialized)
+        CODEC_THROW(kAudioCodecUnsupportedFormatError);
+    printf("<.. [%08lx] :: SetMagicCookie()\n", (UInt32) this);
+}
+
+
+void CAFLACDecoder::SetCurrentInputFormat(const AudioStreamBasicDescription& inInputFormat)
+{
+    if(!mIsInitialized)
+    {
+        //	check to make sure the input format is legal
+        if(inInputFormat.mFormatID != kAudioFormatXiphFLAC)
+        {
+#if VERBOSE
+            DebugMessage("CAFLACDecoder::SetFormats: only support Xiph Vorbis for input");
+#endif
+            CODEC_THROW(kAudioCodecUnsupportedFormatError);
+        }
+
+        //	tell our base class about the new format
+        ACBaseCodec::SetCurrentInputFormat(inInputFormat);
+    }
+    else
+    {
+        CODEC_THROW(kAudioCodecStateError);
+    }
+}
+
+void CAFLACDecoder::SetCurrentOutputFormat(const AudioStreamBasicDescription& inOutputFormat)
+{
+    if(!mIsInitialized)
+    {
+        //	check to make sure the output format is legal
+        if(	(inOutputFormat.mFormatID != kAudioFormatLinearPCM) ||
+                !( ( (inOutputFormat.mFormatFlags == kAudioFormatFlagsNativeFloatPacked) &&
+                     (inOutputFormat.mBitsPerChannel == 32) ) ||
+                   ( (inOutputFormat.mFormatFlags == (kLinearPCMFormatFlagIsSignedInteger | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked) ) &&
+                     (inOutputFormat.mBitsPerChannel == 16) ) ) )
+        {
+#if VERBOSE
+            DebugMessage("CAFLACDecoder::SetFormats: only supports either 16 bit native endian signed integer or 32 bit native endian Core Audio floats for output");
+#endif
+            CODEC_THROW(kAudioCodecUnsupportedFormatError);
+        }
+
+        //	tell our base class about the new format
+        ACBaseCodec::SetCurrentOutputFormat(inOutputFormat);
+    }
+    else
+    {
+        CODEC_THROW(kAudioCodecStateError);
+    }
+}
+
+#if 0
+void CAFLACDecoder::FixFormats()
+{
+    //mInputFormat.mSampleRate = mV_vi.rate;
+    //mInputFormat.mChannelsPerFrame = mV_vi.channels;
+
+    /*
+	mInputFormat.mFramesPerPacket = 64;
+	mInputFormat.mBytesPerPacket = mInputFormat.mChannelsPerFrame * 34;
+	mInputFormat.mBytesPerFrame = 0;
+    */
+}
+#endif /* 0 */
+
+
+#pragma mark The CORE
+
+void CAFLACDecoder::OutputFrames(void* outOutputData, UInt32 inNumberFrames, UInt32 inFramesOffset) const
+{
+    UInt32 i, j;
+
+    if (mOutputFormat.mFormatFlags & kAudioFormatFlagsNativeFloatPacked != 0) {
+        float cnvrtr = (float)((1 << (mFLACbits - 1)) - 1);
+        for (i = 0; i < mFLACchannels; i++) {
+            float* theOutputData = static_cast<float*> (outOutputData) + i + (inFramesOffset * mFLACchannels);
+            const FLAC__int32* mono = static_cast<const FLAC__int32*> (mBPtrs[i] + mFrame.header.blocksize - mNumFrames);
+
+            float tempFloat = 0;
+
+            for (j = 0; j < inNumberFrames; j++) {
+                *theOutputData = ((float)mono[j]) / cnvrtr;
+                theOutputData += mFLACchannels;
+            }
+        }
+    } else {
+        for (i = 0; i < mFLACchannels; i++) {
+            SInt16* theOutputData = static_cast<SInt16*> (outOutputData) + i + (inFramesOffset * mFLACchannels);
+            const FLAC__int32* mono = static_cast<const FLAC__int32*> (mBPtrs[i] + mFrame.header.blocksize - mNumFrames);
+
+            for (j = 0; j < inNumberFrames; j++) {
+                *theOutputData = static_cast<SInt16> (mono[j]);
+                theOutputData += mFLACchannels;
+            }
+        }
+    }
+}
+
+void CAFLACDecoder::SetCookie(const void* inMagicCookie, UInt32 inMagicCookieByteSize)
+{
+    if (mCookie != NULL)
+        delete[] mCookie;
+
+    mCookieSize = inMagicCookieByteSize;
+    if (inMagicCookieByteSize != 0) {
+        mCookie = new Byte[inMagicCookieByteSize];
+
+        //const Byte * theData = static_cast<const Byte *> (inMagicCookie);
+        //BlockMoveData(theData + 8, mCookie, inMagicCookieByteSize - 8);
+        BlockMoveData(inMagicCookie, mCookie, inMagicCookieByteSize);
+    } else {
+        mCookie = NULL;
+    }
+}
+
+void CAFLACDecoder::InitializeCompressionSettings()
+{
+    if (mCookie == NULL)
+        return;
+
+#if 0
+    if (mCompressionInitialized) {
+        ogg_stream_clear(&mO_st);
+
+        vorbis_block_clear(&mV_vb);
+        vorbis_dsp_clear(&mV_vd);
+
+        vorbis_info_clear(&mV_vi);
+    }
+
+    mCompressionInitialized = false;
+
+    UInt32 startOffset = 8; // atomsize + atomtype, ?
+    ogg_page og;
+    vorbis_comment vc;
+
+    if (!WrapOggPage(&og, mCookie, mCookieSize, startOffset))
+        return;
+
+    ogg_stream_init(&mO_st, ogg_page_serialno(&og));
+
+    vorbis_info_init(&mV_vi);
+    vorbis_comment_init(&vc);
+    ogg_packet op;
+
+    if (ogg_stream_pagein(&mO_st, &og) < 0) {
+        ogg_stream_clear(&mO_st);
+
+        vorbis_comment_clear(&vc);
+        vorbis_info_clear(&mV_vi);
+
+        return;
+    }
+
+    if (ogg_stream_packetout(&mO_st, &op) != 1) {
+        ogg_stream_clear(&mO_st);
+
+        vorbis_comment_clear(&vc);
+        vorbis_info_clear(&mV_vi);
+
+        return;
+    }
+
+    if (vorbis_synthesis_headerin(&mV_vi, &vc, &op) < 0) {
+        ogg_stream_clear(&mO_st);
+
+        vorbis_comment_clear(&vc);
+        vorbis_info_clear(&mV_vi);
+
+        return;
+    }
+
+    UInt32 i=0;
+    int result;
+
+    while(i<2){
+        if (!WrapOggPage(&og, mCookie, mCookieSize, startOffset)) {
+            ogg_stream_clear(&mO_st);
+
+            vorbis_comment_clear(&vc);
+            vorbis_info_clear(&mV_vi);
+
+            return;
+        }
+
+        ogg_stream_pagein(&mO_st, &og);
+
+        while(i<2){
+            result=ogg_stream_packetout(&mO_st, &op);
+            if (result == 0)
+                break;
+            else if(result < 0) {
+                ogg_stream_clear(&mO_st);
+
+                vorbis_comment_clear(&vc);
+                vorbis_info_clear(&mV_vi);
+
+                return;
+            }
+
+            vorbis_synthesis_headerin(&mV_vi, &vc, &op);
+            i++;
+        }
+    }
+
+    vorbis_synthesis_init(&mV_vd, &mV_vi);
+    vorbis_block_init(&mV_vd, &mV_vb);
+
+    vorbis_comment_clear(&vc);
+#endif
+
+    mCompressionInitialized = true;
+}
+
+
+#pragma mark BDC functions
+
+void CAFLACDecoder::BDCInitialize(UInt32 inInputBufferByteSize)
+{
+    init();
+
+    if (mOutBuffer)
+        delete[] mOutBuffer;
+    mOutBuffer = new FLAC__int32[kFLACDecoderOutBufferSize];
+    mOutBufferSize = kFLACDecoderOutBufferSize;
+    mOutBufferUsedSize = 0;
+
+    XCACodec::BDCInitialize(inInputBufferByteSize);
+};
+
+void CAFLACDecoder::BDCUninitialize()
+{
+    mFLACFPList.clear();
+
+    if (mOutBuffer)
+        delete[] mOutBuffer;
+    mOutBuffer = NULL;
+    mOutBufferSize = 0;
+    mOutBufferUsedSize = 0;
+
+    XCACodec::BDCUninitialize();
+};
+
+void CAFLACDecoder::BDCReset()
+{
+    mFLACFPList.clear();
+
+    DFPclear();
+
+    mOutBufferUsedSize = 0;
+
+    flush();
+    reset();
+
+    XCACodec::BDCReset();
+};
+
+void CAFLACDecoder::BDCReallocate(UInt32 inInputBufferByteSize)
+{
+    mFLACFPList.clear();
+
+    XCACodec::BDCReallocate(inInputBufferByteSize);
+};
+
+
+void CAFLACDecoder::InPacket(const void* inInputData, const AudioStreamPacketDescription* inPacketDescription)
+{
+    const Byte * theData = static_cast<const Byte *> (inInputData) + inPacketDescription->mStartOffset;
+    UInt32 size = inPacketDescription->mDataByteSize;
+    mBDCBuffer.In(theData, size);
+    mFLACFPList.push_back(FLACFramePacket(inPacketDescription->mVariableFramesInPacket, inPacketDescription->mDataByteSize));
+};
+
+
+UInt32 CAFLACDecoder::FramesReady() const
+{
+    return mNumFrames;
+};
+
+Boolean CAFLACDecoder::GenerateFrames()
+{
+    Boolean ret = true;
+
+    while (process_single() != true) {
+        if ((get_state() != FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC && get_state() != FLAC__STREAM_DECODER_READ_FRAME)) {
+            ret = false;
+            mBDCStatus = kBDCStatusAbort;
+            break;
+        }
+    }
+
+    return ret;
+};
+
+void CAFLACDecoder::Zap(UInt32 inFrames)
+{
+    mNumFrames -= inFrames;
+
+    if (mNumFrames < 0)
+        mNumFrames = 0;
+
+    if (mNumFrames == 0) {
+        mOutBufferUsedSize = 0;
+        DFPclear();
+    }
+};
+
+// UInt32 BACFLAC::GetNumberOfChannels() const
+// {
+//     return mFLACchannels;
+// };
+
+// UInt32 BACFLAC::GetBitsPerSample() const
+// {
+//     return mFLACbits;
+// };
+
+
+void CAFLACDecoder::DFPinit(const ::FLAC__Frame& inFrame, const FLAC__int32 *const inBuffer[])
+{
+    mFrame.header.blocksize = inFrame.header.blocksize;
+    mNumFrames = inFrame.header.blocksize;
+    mFrame.header.channels = inFrame.header.channels;
+    // fill other values...
+    
+    mBPtrs = const_cast<const FLAC__int32**> (inBuffer);
+};
+
+void CAFLACDecoder::DFPclear()
+{
+    if (mBPtrs) {
+        delete[] mBPtrs; mBPtrs = NULL;
+    }
+
+    mNumFrames = 0;
+};
+
+#pragma mark Callbacks
+
+::FLAC__StreamDecoderReadStatus CAFLACDecoder::read_callback(FLAC__byte buffer[], unsigned *bytes)
+{
+    printf(" | -> [%08lx] :: read_callback(%ld)\n", (UInt32) this, *bytes);
+    FLAC__StreamDecoderReadStatus ret = FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
+
+    if (mFLACFPList.empty()) {
+        *bytes = 0;
+        ret =  FLAC__STREAM_DECODER_READ_STATUS_ABORT;
+    } else {
+        FLACFramePacket& ffp = mFLACFPList.front();
+
+        if (*bytes > mBDCBuffer.GetDataAvailable())
+            *bytes = mBDCBuffer.GetDataAvailable();
+        if (*bytes > ffp.left)
+            *bytes = ffp.left;
+
+        BlockMoveData(mBDCBuffer.GetData(), buffer, *bytes);
+
+        if (*bytes == ffp.left) {
+            mBDCBuffer.Zap(ffp.bytes);
+            mFLACFPList.erase(mFLACFPList.begin());
+        } else
+            ffp.left -= *bytes;
+    }
+
+    printf(" |<-. [%08lx] :: read_callback(%ld) = %ld\n", (UInt32) this, *bytes, ret);
+    return ret;
+}
+
+::FLAC__StreamDecoderWriteStatus CAFLACDecoder::write_callback(const ::FLAC__Frame *frame, const FLAC__int32 * const buffer[])
+{
+    ::FLAC__StreamDecoderWriteStatus ret = FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
+    printf(" | +> [%08lx] :: write_callback(%ld)\n", (UInt32) this, frame->header.blocksize);
+
+    FLAC__int32** lbuffer = new FLAC__int32*[frame->header.channels];
+    for (unsigned int i = 0; i < frame->header.channels; i++) {
+        // check here for enough space in mOutBuffer !?
+        lbuffer[i] = mOutBuffer + mOutBufferUsedSize;
+        BlockMoveData(buffer[i], lbuffer[i], frame->header.blocksize * sizeof(FLAC__int32));
+        mOutBufferUsedSize += frame->header.blocksize;
+    }
+
+    DFPinit(*frame, lbuffer); //MFDFPacket will free the lbuffer on .clear() call
+
+    printf(" |<+. [%08lx] :: write_callback()\n", (UInt32) this);
+    return ret;
+}
+
+void CAFLACDecoder::metadata_callback(const ::FLAC__StreamMetadata *metadata)
+{
+    printf(" |\".\" [%08lx] :: metadata_callback()\n", (UInt32) this);
+}
+
+void CAFLACDecoder::error_callback(::FLAC__StreamDecoderErrorStatus status)
+{
+    printf(" |<!> [%08lx] :: error_callback(%ld)\n", (UInt32) this, status);
+}


Property changes on: trunk/xiph-qt/CAFLAC/src/CAFLACDecoder.cpp
___________________________________________________________________
Name: svn:keywords
   + Id

Added: trunk/xiph-qt/CAFLAC/src/CAFLACDecoder.h
===================================================================
--- trunk/xiph-qt/CAFLAC/src/CAFLACDecoder.h	2006-01-28 13:04:14 UTC (rev 10760)
+++ trunk/xiph-qt/CAFLAC/src/CAFLACDecoder.h	2006-01-28 19:30:37 UTC (rev 10761)
@@ -0,0 +1,149 @@
+/*
+ *  CAFLACDecoder.h
+ *
+ *    CAFLACDecoder class definition.
+ *
+ *
+ *  Copyright (c) 2005-2006  Arek Korbik
+ *
+ *  This file is part of XiphQT, the Xiph QuickTime Components.
+ *
+ *  XiphQT is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 of the License, or (at your option) any later version.
+ *
+ *  XiphQT 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
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with XiphQT; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ *
+ *  Last modified: $Id$
+ *
+ */
+
+
+#if !defined(__CAFLACDecoder_h__)
+#define __CAFLACDecoder_h__
+
+
+#include "XCACodec.h"
+
+//#include <Ogg/ogg.h>
+#include <FLAC++/decoder.h>
+
+#include <vector>
+
+
+#define _SHOULD_BE_ZERO_HERE 0
+#if defined(TARGET_CPU_X86) && defined(QT_IA32__VBR_BROKEN)
+  #undef _SHOULD_BE_ZERO_HERE
+  #define _SHOULD_BE_ZERO_HERE 1
+#endif
+
+
+class CAFLACDecoder:
+public XCACodec, FLAC::Decoder::Stream
+{
+public:
+    CAFLACDecoder(Boolean inSkipFormatsInitialization = false);
+    ~CAFLACDecoder();
+
+    virtual void        Initialize(const AudioStreamBasicDescription* inInputFormat, \
+                                   const AudioStreamBasicDescription* inOutputFormat, \
+                                   const void* inMagicCookie, UInt32 inMagicCookieByteSize);
+    virtual void        Uninitialize();
+    virtual void        Reset();
+    //virtual void        FixFormats();
+
+    virtual void        GetProperty(AudioCodecPropertyID inPropertyID, UInt32& ioPropertyDataSize, void* outPropertyData);
+    virtual void        GetPropertyInfo(AudioCodecPropertyID inPropertyID, UInt32& outPropertyDataSize, bool& outWritable);
+
+    virtual void        SetCurrentInputFormat(const AudioStreamBasicDescription& inInputFormat);
+    virtual void        SetCurrentOutputFormat(const AudioStreamBasicDescription& inOutputFormat);
+    virtual UInt32      GetVersion() const;
+
+    virtual UInt32      GetMagicCookieByteSize() const;
+    virtual void        GetMagicCookie(void* outMagicCookieData, UInt32& ioMagicCookieDataByteSize) const;
+    virtual void        SetMagicCookie(const void* inMagicCookieData, UInt32 inMagicCookieDataByteSize);
+
+ protected:
+    virtual void        BDCInitialize(UInt32 inInputBufferByteSize);
+    virtual void        BDCUninitialize();
+    virtual void        BDCReset();
+    virtual void        BDCReallocate(UInt32 inInputBufferByteSize);
+
+    virtual void        InPacket(const void* inInputData, const AudioStreamPacketDescription* inPacketDescription);
+
+    virtual UInt32      FramesReady() const;
+    virtual Boolean     GenerateFrames();
+    virtual void        OutputFrames(void* outOutputData, UInt32 inNumberFrames, UInt32 inFramesOffset) const;
+    virtual void        Zap(UInt32 inFrames);
+
+//    virtual UInt32      InPacketsConsumed() const;
+
+    void                SetCookie(const void* inMagicCookieData, UInt32 inMagicCookieDataByteSize);
+    virtual void        InitializeCompressionSettings();
+
+protected:
+    /* FLAC callback interface functions */
+
+    virtual ::FLAC__StreamDecoderReadStatus read_callback(FLAC__byte buffer[], unsigned *bytes);
+    virtual ::FLAC__StreamDecoderWriteStatus write_callback(const ::FLAC__Frame *frame, const FLAC__int32 * const buffer[]);
+    virtual void metadata_callback(const ::FLAC__StreamMetadata *metadata);
+    virtual void error_callback(::FLAC__StreamDecoderErrorStatus status);
+
+ protected:
+    Byte* mCookie;
+    UInt32 mCookieSize;
+
+    Boolean mCompressionInitialized;
+
+    FLAC__int32* mOutBuffer;
+    UInt32       mOutBufferSize;
+    UInt32       mOutBufferUsedSize;
+
+    UInt32 mFLACsrate;
+    UInt32 mFLACchannels;
+    UInt32 mFLACbits;
+
+    struct FLACFramePacket {
+        UInt32 frames;
+        UInt32 bytes;
+        UInt32 left;
+
+        FLACFramePacket() : frames(0), bytes(0), left(0) {};
+        FLACFramePacket(UInt32 inFrames, UInt32 inBytes) : frames(inFrames), bytes(inBytes), left(inBytes) {};
+    };
+
+    typedef std::vector<FLACFramePacket> FLACFramePacketList;
+    FLACFramePacketList mFLACFPList;
+
+    ::FLAC__Frame mFrame;
+    UInt32 mNumFrames;
+    const FLAC__int32** mBPtrs;
+
+    void DFPinit(const ::FLAC__Frame& inFrame, const FLAC__int32 *const inBuffer[]);
+    void DFPclear();
+
+
+    enum {
+        kFLACBytesPerPacket = 0,
+        kFLACFramesPerPacket = _SHOULD_BE_ZERO_HERE,
+        kFLACBytesPerFrame = 0,
+        kFLACChannelsPerFrame = 0,
+        kFLACBitsPerChannel = 0,
+        kFLACFormatFlags = 0,
+
+        kFLACDecoderInBufferSize = 96 * 1024,
+        kFLACDecoderOutBufferSize = 32 * 1024
+    };
+};
+
+
+#endif /* __CAFLACDecoder_h__ */


Property changes on: trunk/xiph-qt/CAFLAC/src/CAFLACDecoder.h
___________________________________________________________________
Name: svn:keywords
   + Id

Added: trunk/xiph-qt/CAFLAC/src/CAFLACDecoderPublic.r
===================================================================
--- trunk/xiph-qt/CAFLAC/src/CAFLACDecoderPublic.r	2006-01-28 13:04:14 UTC (rev 10760)
+++ trunk/xiph-qt/CAFLAC/src/CAFLACDecoderPublic.r	2006-01-28 19:30:37 UTC (rev 10761)
@@ -0,0 +1,62 @@
+/*
+ *  CAFLACDecoderPublic.r
+ *
+ *    Information bit definitions for the 'thng' resource.
+ *
+ *
+ *  Copyright (c) 2005-2006  Arek Korbik
+ *
+ *  This file is part of XiphQT, the Xiph QuickTime Components.
+ *
+ *  XiphQT is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 of the License, or (at your option) any later version.
+ *
+ *  XiphQT 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
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with XiphQT; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ *
+ *  Last modified: $Id$
+ *
+ */
+
+
+#include "flac_versions.h"
+#include "fccs.h"
+
+
+#define kPrimaryResourceID               -17550
+#define kComponentType                   'adec'
+#define kComponentSubtype                kAudioFormatXiphOggFramedFLAC
+#define kComponentManufacturer           'Xiph'
+#define	kComponentFlags                  0
+#define kComponentVersion                kCAFLAC_adec_Version
+#define kComponentName                   "Xiph (Ogg-framed) FLAC"
+#define kComponentInfo                   "An AudioCodec that decodes Xiph (Ogg-framed) FLAC into linear PCM data"
+#define kComponentEntryPoint             "CAOggFLACDecoderEntry"
+#define	kComponentPublicResourceMapType	 0
+#define kComponentIsThreadSafe           1
+
+#include "XCAResources.r"
+
+
+#define kPrimaryResourceID               -17554
+#define kComponentType                   'adec'
+#define kComponentSubtype                kAudioFormatXiphFLAC
+#define kComponentManufacturer           'Xiph'
+#define	kComponentFlags                  0
+#define kComponentVersion                kCAFLAC_adec_Version
+#define kComponentName                   "Xiph FLAC"
+#define kComponentInfo                   "An AudioCodec that decodes Xiph FLAC into linear PCM data"
+#define kComponentEntryPoint             "CAFLACDecoderEntry"
+#define	kComponentPublicResourceMapType	 0
+#define kComponentIsThreadSafe           1
+
+#include "XCAResources.r"


Property changes on: trunk/xiph-qt/CAFLAC/src/CAFLACDecoderPublic.r
___________________________________________________________________
Name: svn:keywords
   + Id

Added: trunk/xiph-qt/CAFLAC/src/CAOggFLACDecoder.cpp
===================================================================
--- trunk/xiph-qt/CAFLAC/src/CAOggFLACDecoder.cpp	2006-01-28 13:04:14 UTC (rev 10760)
+++ trunk/xiph-qt/CAFLAC/src/CAOggFLACDecoder.cpp	2006-01-28 19:30:37 UTC (rev 10761)
@@ -0,0 +1,239 @@
+/*
+ *  CAOggFLACDecoder.cpp
+ *
+ *    CAOggFLACDecoder class implementation; translation layer handling
+ *    ogg page encapsulation of FLAC frmaes, using CAFLACDecoder
+ *    for the actual decoding.
+ *
+ *
+ *  Copyright (c) 2005-2006  Arek Korbik
+ *
+ *  This file is part of XiphQT, the Xiph QuickTime Components.
+ *
+ *  XiphQT is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 of the License, or (at your option) any later version.
+ *
+ *  XiphQT 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
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ *
+ *  Last modified: $Id$
+ *
+ */
+
+
+#include "CAOggFLACDecoder.h"
+
+#include "fccs.h"
+#include "data_types.h"
+
+#include "wrap_ogg.h"
+
+#include "debug.h"
+
+
+CAOggFLACDecoder::CAOggFLACDecoder() :
+    CAFLACDecoder(true),
+    mFramesBufferedList()
+{
+    CAStreamBasicDescription theInputFormat(kAudioStreamAnyRate, kAudioFormatXiphOggFramedFLAC,
+                                            kFLACBytesPerPacket, kFLACFramesPerPacket,
+                                            kFLACBytesPerFrame, kFLACChannelsPerFrame,
+                                            kFLACBitsPerChannel, kFLACFormatFlags);
+    AddInputFormat(theInputFormat);
+
+    mInputFormat.mSampleRate = 44100;
+    mInputFormat.mFormatID = kAudioFormatXiphOggFramedFLAC;
+    mInputFormat.mFormatFlags = kFLACFormatFlags;
+    mInputFormat.mBytesPerPacket = kFLACBytesPerPacket;
+    mInputFormat.mFramesPerPacket = kFLACFramesPerPacket;
+    mInputFormat.mBytesPerFrame = kFLACBytesPerFrame;
+    mInputFormat.mChannelsPerFrame = 2;
+    mInputFormat.mBitsPerChannel = kFLACBitsPerChannel;
+
+    CAStreamBasicDescription theOutputFormat1(kAudioStreamAnyRate, kAudioFormatLinearPCM, 0, 1, 0, 0, 16,
+                                              kAudioFormatFlagsNativeEndian |
+                                              kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked);
+    AddOutputFormat(theOutputFormat1);
+    CAStreamBasicDescription theOutputFormat2(kAudioStreamAnyRate, kAudioFormatLinearPCM, 0, 1, 0, 0, 32,
+                                              kAudioFormatFlagsNativeFloatPacked);
+    AddOutputFormat(theOutputFormat2);
+
+    mOutputFormat.mSampleRate = 44100;
+    mOutputFormat.mFormatID = kAudioFormatLinearPCM;
+    mOutputFormat.mFormatFlags = kAudioFormatFlagsNativeFloatPacked;
+    mOutputFormat.mBytesPerPacket = 8;
+    mOutputFormat.mFramesPerPacket = 1;
+    mOutputFormat.mBytesPerFrame = 8;
+    mOutputFormat.mChannelsPerFrame = 2;
+    mOutputFormat.mBitsPerChannel = 32;
+}
+
+CAOggFLACDecoder::~CAOggFLACDecoder()
+{
+    if (mCompressionInitialized)
+        ogg_stream_clear(&mO_st);
+}
+
+void CAOggFLACDecoder::SetCurrentInputFormat(const AudioStreamBasicDescription& inInputFormat)
+{
+    if (!mIsInitialized) {
+        if (inInputFormat.mFormatID != kAudioFormatXiphOggFramedFLAC) {
+            dbg_printf("CAOggFLACDecoder::SetFormats: only support Xiph FLAC (Ogg-framed) for input\n");
+            CODEC_THROW(kAudioCodecUnsupportedFormatError);
+        }
+        XCACodec::SetCurrentInputFormat(inInputFormat);
+    } else {
+        CODEC_THROW(kAudioCodecStateError);
+    }
+}
+
+UInt32 CAOggFLACDecoder::ProduceOutputPackets(void* outOutputData, UInt32& ioOutputDataByteSize, UInt32& ioNumberPackets,
+                                                AudioStreamPacketDescription* outPacketDescription)
+{
+    dbg_printf(" >> [%08lx] CAOggFLACDecoder :: ProduceOutputPackets(%ld [%ld])\n", (UInt32) this, ioNumberPackets, ioOutputDataByteSize);
+    UInt32 ret = kAudioCodecProduceOutputPacketSuccess;
+
+    if (mFramesBufferedList.empty()) {
+        ioOutputDataByteSize = 0;
+        ioNumberPackets = 0;
+        ret = kAudioCodecProduceOutputPacketNeedsMoreInputData;
+        dbg_printf("<!E [%08lx] CAOggFLACDecoder :: ProduceOutputPackets(%ld [%ld]) = %ld [%ld]\n", (UInt32) this,
+                   ioNumberPackets, ioOutputDataByteSize, ret, FramesReady());
+        return ret;
+    }
+
+    UInt32 flac_frames = mFramesBufferedList.front();
+    UInt32 ogg_packets = 0;
+    UInt32 flac_returned_data = ioOutputDataByteSize;
+    UInt32 flac_total_returned_data = 0;
+    Byte *the_data = static_cast<Byte*> (outOutputData);
+
+    while (true) {
+        UInt32 flac_return = CAFLACDecoder::ProduceOutputPackets(the_data, flac_returned_data, flac_frames, NULL);
+        if (flac_return == kAudioCodecProduceOutputPacketSuccess || flac_return == kAudioCodecProduceOutputPacketSuccessHasMore) {
+            if (flac_frames > 0)
+                mFramesBufferedList.front() -= flac_frames;
+
+            if (mFramesBufferedList.front() <= 0) {
+                ogg_packets++;
+                mFramesBufferedList.erase(mFramesBufferedList.begin());
+            }
+
+            flac_total_returned_data += flac_returned_data;
+
+            if (flac_total_returned_data == ioOutputDataByteSize || flac_return == kAudioCodecProduceOutputPacketSuccess)
+            {
+                ioNumberPackets = ogg_packets;
+                ioOutputDataByteSize = flac_total_returned_data;
+
+                if (!mFramesBufferedList.empty())
+                    ret = kAudioCodecProduceOutputPacketSuccessHasMore;
+                else
+                    ret = kAudioCodecProduceOutputPacketSuccess;
+
+                break;
+            } else {
+                the_data += flac_returned_data;
+                flac_returned_data = ioOutputDataByteSize - flac_total_returned_data;
+                flac_frames = mFramesBufferedList.front();
+            }
+        } else {
+            ret = kAudioCodecProduceOutputPacketFailure;
+            ioOutputDataByteSize = flac_total_returned_data;
+            ioNumberPackets = ogg_packets;
+            break;
+        }
+    }
+
+    dbg_printf("<.. [%08lx] CAOggFLACDecoder :: ProduceOutputPackets(%ld [%ld]) = %ld [%ld]\n",
+               (UInt32) this, ioNumberPackets, ioOutputDataByteSize, ret, FramesReady());
+    return ret;
+}
+
+
+void CAOggFLACDecoder::BDCInitialize(UInt32 inInputBufferByteSize)
+{
+    CAFLACDecoder::BDCInitialize(inInputBufferByteSize);
+}
+
+void CAOggFLACDecoder::BDCUninitialize()
+{
+    mFramesBufferedList.clear();
+    CAFLACDecoder::BDCUninitialize();
+}
+
+void CAOggFLACDecoder::BDCReset()
+{
+    mFramesBufferedList.clear();
+    if (mCompressionInitialized)
+        ogg_stream_reset(&mO_st);
+    CAFLACDecoder::BDCReset();
+}
+
+void CAOggFLACDecoder::BDCReallocate(UInt32 inInputBufferByteSize)
+{
+    mFramesBufferedList.clear();
+    CAFLACDecoder::BDCReallocate(inInputBufferByteSize);
+}
+
+
+void CAOggFLACDecoder::InPacket(const void* inInputData, const AudioStreamPacketDescription* inPacketDescription)
+{
+    if (!mCompressionInitialized)
+        CODEC_THROW(kAudioCodecUnspecifiedError);
+
+    ogg_page op;
+
+    if (!WrapOggPage(&op, inInputData, inPacketDescription->mDataByteSize, inPacketDescription->mStartOffset))
+        CODEC_THROW(kAudioCodecUnspecifiedError);
+
+    ogg_packet opk;
+    SInt32 packet_count = 0;
+    int oret;
+    AudioStreamPacketDescription flac_packet_desc = {0, 0, 0};
+    UInt32 page_packets = ogg_page_packets(&op);
+
+    ogg_stream_pagein(&mO_st, &op);
+    while ((oret = ogg_stream_packetout(&mO_st, &opk)) != 0) {
+        if (oret < 0) {
+            page_packets--;
+            continue;
+        }
+
+        packet_count++;
+
+        flac_packet_desc.mDataByteSize = opk.bytes;
+
+        CAFLACDecoder::InPacket(opk.packet, &flac_packet_desc);
+    }
+
+    mFramesBufferedList.push_back(packet_count);
+}
+
+
+void CAOggFLACDecoder::InitializeCompressionSettings()
+{
+    if (mCookie != NULL) {
+        if (mCompressionInitialized)
+            ogg_stream_clear(&mO_st);
+
+        OggSerialNoAtom *atom = reinterpret_cast<OggSerialNoAtom*> (mCookie);
+
+        if (EndianS32_BtoN(atom->type) == kCookieTypeOggSerialNo && EndianS32_BtoN(atom->size) <= mCookieSize) {
+            ogg_stream_init(&mO_st, EndianS32_BtoN(atom->serialno));
+        }
+    }
+
+    ogg_stream_reset(&mO_st);
+
+    CAFLACDecoder::InitializeCompressionSettings();
+}


Property changes on: trunk/xiph-qt/CAFLAC/src/CAOggFLACDecoder.cpp
___________________________________________________________________
Name: svn:keywords
   + Id

Added: trunk/xiph-qt/CAFLAC/src/CAOggFLACDecoder.h
===================================================================
--- trunk/xiph-qt/CAFLAC/src/CAOggFLACDecoder.h	2006-01-28 13:04:14 UTC (rev 10760)
+++ trunk/xiph-qt/CAFLAC/src/CAOggFLACDecoder.h	2006-01-28 19:30:37 UTC (rev 10761)
@@ -0,0 +1,69 @@
+/*
+ *  CAOggFLACDecoder.h
+ *
+ *    CAOggFLACDecoder class definition.
+ *
+ *
+ *  Copyright (c) 2005-2006  Arek Korbik
+ *
+ *  This file is part of XiphQT, the Xiph QuickTime Components.
+ *
+ *  XiphQT is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 of the License, or (at your option) any later version.
+ *
+ *  XiphQT 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
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ *
+ *  Last modified: $Id$
+ *
+ */
+
+
+#if !defined(__CAOggFLACDecoder_h__)
+#define __CAOggFLACDecoder_h__
+
+#include <Ogg/ogg.h>
+#include <vector>
+
+#include "CAFLACDecoder.h"
+
+#include "CAStreamBasicDescription.h"
+
+
+class CAOggFLACDecoder :
+public CAFLACDecoder
+{
+ public:
+    CAOggFLACDecoder();
+    virtual ~CAOggFLACDecoder();
+
+    virtual UInt32          ProduceOutputPackets(void* outOutputData, UInt32& ioOutputDataByteSize, UInt32& ioNumberPackets,
+                                                 AudioStreamPacketDescription* outPacketDescription);
+    virtual void            SetCurrentInputFormat(const AudioStreamBasicDescription& inInputFormat);
+
+ protected:
+    virtual void            BDCInitialize(UInt32 inInputBufferByteSize);
+    virtual void            BDCUninitialize();
+    virtual void            BDCReset();
+    virtual void            BDCReallocate(UInt32 inInputBufferByteSize);
+
+    virtual void            InPacket(const void* inInputData, const AudioStreamPacketDescription* inPacketDescription);
+
+    void                    InitializeCompressionSettings();
+
+    ogg_stream_state        mO_st;
+    std::vector<SInt32>     mFramesBufferedList;
+};
+
+
+
+#endif /* __CAOggFLACDecoder_h__ */


Property changes on: trunk/xiph-qt/CAFLAC/src/CAOggFLACDecoder.h
___________________________________________________________________
Name: svn:keywords
   + Id

Added: trunk/xiph-qt/CAFLAC/src/flac_entrypoints.cpp
===================================================================
--- trunk/xiph-qt/CAFLAC/src/flac_entrypoints.cpp	2006-01-28 13:04:14 UTC (rev 10760)
+++ trunk/xiph-qt/CAFLAC/src/flac_entrypoints.cpp	2006-01-28 19:30:37 UTC (rev 10761)
@@ -0,0 +1,46 @@
+/*
+ *  flac_entrypoints.cpp
+ *
+ *    Declaration of the entry points for the FLAC component.
+ *
+ *
+ *  Copyright (c) 2005-2006  Arek Korbik
+ *
+ *  This file is part of XiphQT, the Xiph QuickTime Components.
+ *
+ *  XiphQT is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 of the License, or (at your option) any later version.
+ *
+ *  XiphQT 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
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with XiphQT; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ *
+ *  Last modified: $Id$
+ *
+ */
+
+
+#include "CAFLACDecoder.h"
+#include "CAOggFLACDecoder.h"
+
+#include "ACCodecDispatch.h"
+
+extern "C"
+ComponentResult	CAFLACDecoderEntry(ComponentParameters* inParameters, CAFLACDecoder* inThis)
+{
+    return ACCodecDispatch(inParameters, inThis);
+}
+
+extern "C"
+ComponentResult	CAOggFLACDecoderEntry(ComponentParameters* inParameters, CAOggFLACDecoder* inThis)
+{
+    return ACCodecDispatch(inParameters, inThis);
+}


Property changes on: trunk/xiph-qt/CAFLAC/src/flac_entrypoints.cpp
___________________________________________________________________
Name: svn:keywords
   + Id

Added: trunk/xiph-qt/CAFLAC/src/flac_versions.h
===================================================================
--- trunk/xiph-qt/CAFLAC/src/flac_versions.h	2006-01-28 13:04:14 UTC (rev 10760)
+++ trunk/xiph-qt/CAFLAC/src/flac_versions.h	2006-01-28 19:30:37 UTC (rev 10761)
@@ -0,0 +1,40 @@
+/*
+ *  flac_versions.h
+ *
+ *    The current version of the FLAC component.
+ *
+ *
+ *  Copyright (c) 2005-2006  Arek Korbik
+ *
+ *  This file is part of XiphQT, the Xiph QuickTime Components.
+ *
+ *  XiphQT is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 of the License, or (at your option) any later version.
+ *
+ *  XiphQT 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
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with XiphQT; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ *
+ *  Last modified: $Id$
+ *
+ */
+
+
+#if !defined(__flac_versions_h__)
+#define __flac_versions_h__
+
+#ifdef DEBUG
+#define kCAFLAC_adec_Version		(0x00FF0101)
+#else
+#define kCAFLAC_adec_Version		(0x00000101)
+#endif /* DEBUG */
+
+#endif /* __flac_versions_h__ */


Property changes on: trunk/xiph-qt/CAFLAC/src/flac_versions.h
___________________________________________________________________
Name: svn:keywords
   + Id



More information about the commits mailing list