/******************************************************************************************************

	UQuickTimeComponent.h
	
 ******************************************************************************************************

	Author:			Peter Baumgartner		peter@baumgartner.com
					Achim Breidenbach		achim@boinx.com
					Michael Ehrmann			michael@boinx.com		
	
	Copyright:		� 2005-2006 by IMAGINE GbR - All Rights Reserved
					� 2005-2006 by Boinx Software - All Rights Reserved

 ******************************************************************************************************/
 
#if !__LP64__
 
/******************************************************************************************************
	READ ME
 ******************************************************************************************************/

	#pragma mark READ ME

	// This class provides methods for working with QuickTime exporter components...


	
/******************************************************************************************************
	INCLUDES
 ******************************************************************************************************/

	#pragma mark INCLUDES	
	
	#import <Carbon/Carbon.h>
	#import <Cocoa/Cocoa.h>
	#import <QuickTime/QuickTime.h>



	#pragma mark

/******************************************************************************************************
	UQuickTimeComponent
 ******************************************************************************************************/

	class UQuickTimeComponent
	{
		// Availability...
		
		public:
		
			static bool IsComponentInstalled(NSDictionary* inPreset); // Old function used by FotoMagico
			static bool IsComponentInstalled(OSType inType,OSType inSubType,OSType inManufacturer,NSData* inSettings); // Old function used by FotoMagico
			static bool IsAppleIntermediateCodecInstalled();
			
		// Finding...
			
		public:
			
			static Component FindComponentWithParameters(OSType inType, OSType inSubType, OSType inManufacturer, UInt32 inFlags, UInt32 inFlagsMask);
				
		// Open & Close...
				
		public:
				
			static ComponentInstance OpenComponentWithParameters(OSType inType, OSType inSubType, OSType inManufacturer, UInt32 inFlags, UInt32 inFlagsMask);
			static ComponentInstance OpenComponent(Component inComponent);
			static ComponentInstance OpenComponent(OSType inType,OSType inSubType,OSType inManufacturer); // Old function used by FotoMagico
			
			static OSStatus CloseComponent(ComponentInstance *ioComponent);
			static OSStatus CloseComponent(ComponentInstance inExporter); // Old function used by FotoMagico
			
		// Settings...
		
		public:
		
			static NSData* GetComponentSettings(ComponentInstance inComponent);
			static OSStatus SetComponentSettings(ComponentInstance inComponent,NSData* inData);
			static OSStatus SaveComponentSettingsToFile(ComponentInstance inComponent,NSString* inPath);
			static OSStatus	LoadComponentSettingsFromFile(ComponentInstance inComponent,NSString* inPath);
	};

	
	
/******************************************************************************************************/

#endif