Fawkes API
Fawkes Development Version
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
fvff.h
1
2
/***************************************************************************
3
* fvff.h - FireVision file format
4
*
5
* Created: Fri Mar 28 11:12:38 2008
6
* Copyright 2008 Tim Niemueller [www.niemueller.de]
7
*
8
****************************************************************************/
9
10
/* This program is free software; you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation; either version 2 of the License, or
13
* (at your option) any later version. A runtime exception applies to
14
* this software (see LICENSE.GPL_WRE file mentioned below for details).
15
*
16
* This program is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU Library General Public License for more details.
20
*
21
* Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22
*/
23
24
#ifndef __FIREVISION_FVUTILS_FILEFORMAT_FVFF_H_
25
#define __FIREVISION_FVUTILS_FILEFORMAT_FVFF_H_
26
27
#pragma pack(push,4)
28
29
#ifndef __STDC_LIMIT_MACROS
30
#define __STDC_LIMIT_MACROS
31
#endif
32
#include <stdint.h>
33
34
#define FVFF_COMMENT_SIZE 256
35
36
namespace
firevision {
37
#if 0
/* just to make Emacs auto-indent happy */
38
}
39
#endif
40
41
/** Header for a FireVision file format file.
42
* The header defines the basic parameters needed to correctly interpret the
43
* following file contents.
44
*
45
* The header defines a magic by which a rectinfo can be identified. This is
46
* defined by the actual content of the file.
47
* The version is stored as a sequential number. This version has to be changed
48
* whenever either the header or the file data format changes. The version is set
49
* by the concrete data implementation.
50
* The file defines the endianess of the supplied data.
51
* There are several reserved bits that may be used later to store flags. The field
52
* num_blocks define how many info blocks there are in this file.
53
*
54
* Directly following the header is the content specific header. It has to be exactly
55
* the size given in spec_head_size.
56
*/
57
typedef
struct
_fvff_header_t
{
58
uint16_t
magic_token
;
/**< magic token */
59
uint16_t version : 4;
/**< version of the data file, this header defines version 1 */
60
uint16_t endianess : 1;
/**< endianess of the file, 0 means little endian, 1 means big endian */
61
uint16_t reserved : 11;
/**< reserved for future use */
62
uint16_t
num_blocks
;
/**< number of rectification info blocks in this file */
63
uint32_t
spec_head_size
;
/**< data specific header size */
64
uint64_t
created_sec
;
/**< creation unix timestamp, seconds */
65
uint64_t
created_usec
;
/**< creation unix timestamp, useconds */
66
char
comment[FVFF_COMMENT_SIZE];
/**< optional comment */
67
}
fvff_header_t
;
68
69
70
/** Block header.
71
* Each block in a FvFF file has a block header. This header defines only the basic
72
* characteristics that are needed to parse the file.
73
* Directly following the header is the content specific block header. The size has to
74
* be set in spec_head_size.
75
*/
76
typedef
struct
_fvff_block_header_t
{
77
uint32_t
type
;
/**< The type of the block, content-specific */
78
uint32_t
size
;
/**< size in bytes of this block, does not include any headers */
79
uint32_t
spec_head_size
;
/**< the size of the following content specific block header */
80
}
fvff_block_header_t
;
81
82
}
// end namespace firevision
83
84
85
#pragma pack(pop)
86
#endif
src
libs
fvutils
fileformat
fvff.h
Generated by
1.8.1.2