#pragma once
// *********************************************************************
// *** C/C++ definitions for plugins ***
// *** Last modified: 2011NOV22 ***
// *** (c) Christian Schnettelker 2011, 2012 ***
// *** ***
// *** www.finefiles.com mail@finefiles.com ***
// *********************************************************************
#include "ffBasic.h"
// Version info. This is the current plugin version code, NOT the finefiles version
// You get the current version finefiles uses to communicate with the plugins when
// the member function ____ffPlugin__Type() is called
#define __FFPLUGIN__VERSION 100
// Return one of these values in ____ffPlugin__Type()
#define __FFPLUGIN__TYPE__NONE 0 // return this in case of version conflicts
// finefiles will not call any functions
#define __FFPLUGIN__TYPE__INPUT 10 // return this if the plugin can be accessed in the Input section
// finefiles will call ____ffPlugin__Input()
#define __FFPLUGIN__TYPE__INSP 20 // return this if the plugin can be accessed in the Inspection section
// finefiles will call ____ffPlugin__Insp()
#define __FFPLUGIN__TYPE__II 30 // return this if the plugin can be accessed in both Input und Inspection Section
// finefiles will call ____ffPlugin__Input() and/or ____ffPlugin__Insp()
// Return one of these values in ____ffPlugin__Input() and ____ffPlugin__Insp()
#define __FFPLUGIN__RETURN__TRUE 1
#define __FFPLUGIN__RETURN__FALSE 2
#define __FFPLUGIN__RETURN__ABORT 90
#define __FPPLUGIN__RETURN__SKIPFILE 91
// Additional definitions
#define __FFPLUGIN__MSG__MAX 50 // max. chars finefiles will accept when calling ____ffPlugin__FailMsg()
/* Important: Puts packing alignment value 1 on the internal compiler */
#pragma pack( push,1 )
/* stack and sets the current packing alignment value to 1 */
// Registers
typedef struct { WORD wStructVersion;
WORD wDateStamp__Year, wDateStamp__Month, wDateStamp__Day;
WORD wTimeStamp__Hour, wTimeStamp__Min, wTimeStamp__Sec;
int iFileType;
////// VIDEO
WORD wVideoWidth, wVideoHeight;
double dVideoFPS;
WORD wVideoHour, wVideoMin, wVideoSec;
char cReserved1[ 20 ];
////// AUDIO
WORD wAudioHour, wAudioMin, wAudioSec;
WORD wBitrate; // Bitrate in kbps, for example 192
int iSamplingRate; // Sampling frequency, for example 44100
WORD wChannels; // # of channels (1 or 2)
char cReserved2[ 20 ];
////// IMAGES
WORD wImageWidth, wImageHeight;
char cReserved3[ 20 ];
////// Reserved for future use
char cReserved4[ 80 ];
}
__FFPLUGIN__REGISTERS;
/* Important: undo packing alignment value 1 */
#pragma pack()
/* Important: undo packing alignment value 1 */
/* eof */