ba25ca5cf0
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6808 a95241bf-73f2-0310-859d-f6bbb57e9c96
87 lines
2.9 KiB
C
87 lines
2.9 KiB
C
/********************************************************************************
|
|
/
|
|
/ File: TranslationDefs.h
|
|
/
|
|
/ Description: Miscellaneous basic definitions for the Translation Kit
|
|
/
|
|
/ Copyright 1998, Be Incorporated, All Rights Reserved.
|
|
/ Copyright 1995-1997, Jon Watte
|
|
/
|
|
/ 2002 - translation_data struct added by Michael Wilber, OBOS TransKit Team
|
|
********************************************************************************/
|
|
|
|
#if !defined(_TRANSLATION_DEFS_H)
|
|
#define _TRANSLATION_DEFS_H
|
|
|
|
#include <BeBuild.h>
|
|
#include <SupportDefs.h>
|
|
#include <TranslationErrors.h>
|
|
|
|
|
|
typedef unsigned long translator_id;
|
|
|
|
|
|
/* when you export this struct, end with an empty */
|
|
/* record that has 0 for "type" */
|
|
|
|
|
|
/* These are defines, because they reflect the state at which the app was compiled */
|
|
#define B_TRANSLATION_CURRENT_VERSION B_BEOS_VERSION
|
|
#define B_TRANSLATION_MIN_VERSION 161
|
|
|
|
extern const char * B_TRANSLATOR_MIME_TYPE;
|
|
|
|
struct translation_format {
|
|
uint32 type; /* B_ASCII_TYPE, ...*/
|
|
uint32 group; /* B_TRANSLATOR_BITMAP, B_TRANSLATOR_TEXT, ...*/
|
|
float quality; /* ability of the format to retain the data of its group (0.0-1.0) */
|
|
float capability; /* ability of the translator to decode the format (0.0-1.0) */
|
|
char MIME[251]; /* MIME string*/
|
|
char name[251]; /* only descriptive */
|
|
};
|
|
|
|
|
|
/* This struct is different from the format struct for a reason: */
|
|
/* to separate the notion of formats from the notion of translations */
|
|
|
|
struct translator_info { /* Info about a specific translation*/
|
|
uint32 type; /* B_ASCII_TYPE, ...*/
|
|
translator_id translator; /* Filled in by BTranslationRoster*/
|
|
uint32 group; /* B_TRANSLATOR_BITMAP, B_TRANSLATOR_TEXT, ...*/
|
|
float quality; /* ability of the format to retain the data of its group (0.0-1.0) */
|
|
float capability; /* ability of the translator to decode the format (0.0-1.0) */
|
|
char name[251];
|
|
char MIME[251];
|
|
};
|
|
|
|
// BEGIN: Added by Michael Wilber
|
|
struct translator_data {
|
|
const char *translatorName;
|
|
const char *translatorInfo;
|
|
int32 translatorVersion;
|
|
const translation_format *inputFormats;
|
|
const translation_format *outputFormats;
|
|
|
|
status_t (*Identify)(BPositionIO *inSource,
|
|
const translation_format *inFormat, BMessage *ioExtension,
|
|
translator_info *outInfo, uint32 outType);
|
|
|
|
status_t (*Translate)(BPositionIO *inSource,
|
|
const translator_info *inInfo, BMessage *ioExtension,
|
|
uint32 outType, BPositionIO *outDestination);
|
|
|
|
status_t (*MakeConfig)(BMessage *ioExtension,
|
|
BView **outView, BRect *outExtent);
|
|
|
|
status_t (*GetConfigMessage)(BMessage *ioExtension);
|
|
};
|
|
|
|
#define B_TRANSLATION_MAKE_VER(mjr,mnr,rev) ((mjr << 8) | ((mnr << 4) & 0xf0) | (rev & 0x0f))
|
|
#define B_TRANSLATION_MAJOR_VER(v) (v >> 8)
|
|
#define B_TRANSLATION_MINOR_VER(v) ((v >> 4) & 0xf)
|
|
#define B_TRANSLATION_REVSN_VER(v) (v & 0xf)
|
|
|
|
// END: Added by Michael Wilber
|
|
|
|
#endif /* _TRANSLATION_DEFS_H */
|