1/* 2 * Copyright 2009, Haiku Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _TRANSLATOR_FORMATS_H 6#define _TRANSLATOR_FORMATS_H 7 8 9#include <GraphicsDefs.h> 10#include <Rect.h> 11 12 13// Standard fields for the extension message 14extern char B_TRANSLATOR_EXT_HEADER_ONLY[]; 15extern char B_TRANSLATOR_EXT_DATA_ONLY[]; 16extern char B_TRANSLATOR_EXT_COMMENT[]; 17extern char B_TRANSLATOR_EXT_TIME[]; 18extern char B_TRANSLATOR_EXT_FRAME[]; 19extern char B_TRANSLATOR_EXT_BITMAP_RECT[]; 20extern char B_TRANSLATOR_EXT_BITMAP_COLOR_SPACE[]; 21extern char B_TRANSLATOR_EXT_BITMAP_PALETTE[]; 22extern char B_TRANSLATOR_EXT_SOUND_CHANNEL[]; 23extern char B_TRANSLATOR_EXT_SOUND_MONO[]; 24extern char B_TRANSLATOR_EXT_SOUND_MARKER[]; 25extern char B_TRANSLATOR_EXT_SOUND_LOOP[]; 26 27 28// Standard formats 29 30enum TranslatorGroups { 31 B_TRANSLATOR_BITMAP = 'bits', 32 B_TRANSLATOR_PICTURE = 'pict', 33 B_TRANSLATOR_SOUND = 'nois', 34 B_TRANSLATOR_TEXT = 'TEXT', 35 B_TRANSLATOR_MIDI = 'midi', 36 B_TRANSLATOR_MEDIA = 'mhi!', 37 B_TRANSLATOR_NONE = 'none', 38 B_TRANSLATOR_ANY_TYPE = 0 39}; 40 41 42enum { 43 // Bitmap formats 44 B_GIF_FORMAT = 'GIF ', 45 B_JPEG_FORMAT = 'JPEG', 46 B_PNG_FORMAT = 'PNG ', 47 B_PPM_FORMAT = 'PPM ', 48 B_TGA_FORMAT = 'TGA ', 49 B_BMP_FORMAT = 'BMP ', 50 B_TIFF_FORMAT = 'TIFF', 51 52 // Picture formats 53 B_DXF_FORMAT = 'DXF ', 54 B_EPS_FORMAT = 'EPS ', 55 B_PICT_FORMAT = 'PICT', 56 57 // Sound formats 58 B_WAV_FORMAT = 'WAV ', 59 B_AIFF_FORMAT = 'AIFF', 60 B_CD_FORMAT = 'CD ', 61 B_AU_FORMAT = 'AU ', 62 63 // Text formats 64 B_STYLED_TEXT_FORMAT = 'STXT' 65}; 66 67 68// Bitmap format (always in big endian) 69struct TranslatorBitmap { 70 uint32 magic; // B_TRANSLATOR_BITMAP 71 BRect bounds; 72 uint32 rowBytes; 73 color_space colors; 74 uint32 dataSize; 75 76 // actual data follows 77}; 78 79 80// Sound format (always in big endian) 81struct TranslatorSound { 82 uint32 magic; // B_TRANSLATOR_SOUND 83 uint32 channels; 84 float sampleFreq; 85 uint32 numFrames; 86 87 // actual data follows 88}; 89 90 91// Text format (always in big endian) 92struct TranslatorStyledTextRecordHeader { 93 uint32 magic; 94 uint32 header_size; 95 uint32 data_size; 96}; 97 98struct TranslatorStyledTextStreamHeader { 99 enum { 100 STREAM_HEADER_MAGIC = 'STXT' 101 }; 102 103 TranslatorStyledTextRecordHeader header; 104 int32 version; 105}; 106 107struct TranslatorStyledTextTextHeader { 108 enum { 109 TEXT_HEADER_MAGIC = 'TEXT' 110 }; 111 112 TranslatorStyledTextRecordHeader header; 113 int32 charset; 114 115 // actual data follows 116}; 117 118struct TranslatorStyledTextStyleHeader { 119 enum { 120 STYLE_HEADER_MAGIC = 'STYL' 121 }; 122 123 TranslatorStyledTextRecordHeader header; 124 uint32 apply_offset; 125 uint32 apply_length; 126 127 // flattened style follows 128}; 129 130 131#endif // _TRANSLATOR_FORMATS_H 132