TuttleOFX  1
WriterPluginFactory.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_PLUGIN_WRITERPLUGINFACTORY_HPP_
00002 #define _TUTTLE_PLUGIN_WRITERPLUGINFACTORY_HPP_
00003 
00004 #include "WriterDefinition.hpp"
00005 
00006 #include <tuttle/plugin/exceptions.hpp>
00007 
00008 #include <ofxsImageEffect.h>
00009 #include <ofxsMultiThread.h>
00010 
00011 namespace tuttle {
00012 namespace plugin {
00013 
00014 void describeWriterParamsInContext( OFX::ImageEffectDescriptor& desc,
00015                                     OFX::EContext               context )
00016 {
00017         OFX::StringParamDescriptor* filename = desc.defineStringParam( kTuttlePluginFilename );
00018         filename->setLabel( kTuttlePluginFilenameLabel );
00019         filename->setStringType( OFX::eStringTypeFilePath );
00020         filename->setCacheInvalidation( OFX::eCacheInvalidateValueAll );
00021         desc.addClipPreferencesSlaveParam( *filename );
00022 
00023         OFX::ChoiceParamDescriptor* channel = desc.defineChoiceParam( kTuttlePluginChannel );
00024         channel->setLabel( kTuttlePluginChannelLabel );
00025         channel->appendOption( kTuttlePluginChannelAuto );
00026         channel->appendOption( kTuttlePluginChannelGray );
00027         channel->appendOption( kTuttlePluginChannelRGB );
00028         channel->appendOption( kTuttlePluginChannelRGBA );
00029         channel->setDefault( 0 );
00030 
00031         OFX::ChoiceParamDescriptor* bitDepth = desc.defineChoiceParam( kTuttlePluginBitDepth );
00032         bitDepth->setLabel( kTuttlePluginBitDepthLabel );
00033         bitDepth->appendOption( kTuttlePluginBitDepth8 );
00034         bitDepth->appendOption( kTuttlePluginBitDepth16 );
00035         bitDepth->setDefault( 0 );
00036         
00037         OFX::BooleanParamDescriptor* premult = desc.defineBooleanParam( kParamPremultiplied );
00038         premult->setLabel( kParamPremultipliedLabel );
00039         premult->setDefault( false );
00040         
00041         OFX::PushButtonParamDescriptor* render = desc.definePushButtonParam( kParamWriterRender );
00042         render->setLabels( "Render", "Render", "Render step" );
00043         render->setHint("Force render (writing)");
00044 
00045         OFX::BooleanParamDescriptor* renderAlways = desc.defineBooleanParam( kParamWriterRenderAlways );
00046         renderAlways->setLabel( "Render always" );
00047 //      renderAlways->setDefault( false );
00048         renderAlways->setDefault( true ); // because tuttle is not declared as a background renderer
00049 
00050         OFX::IntParamDescriptor* forceNewRender = desc.defineIntParam( kParamWriterForceNewRender );
00051         forceNewRender->setLabel( "Force new render" );
00052         forceNewRender->setEnabled( false );
00053         forceNewRender->setIsSecret( true );
00054         forceNewRender->setIsPersistant( false );
00055         forceNewRender->setAnimates( false );
00056         forceNewRender->setCacheInvalidation( OFX::eCacheInvalidateValueAll );
00057         forceNewRender->setEvaluateOnChange( true );
00058         forceNewRender->setDefault( 0 );
00059 }
00060 
00061 }
00062 }
00063 
00064 
00065 #endif
00066