Fawkes API
Fawkes Development Version
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
firevision::_fvff_block_header_t::size
uint32_t size
size in bytes of this block, does not include any headers
Definition:
fvff.h:78
firevision::_fvff_header_t::num_blocks
uint16_t num_blocks
number of rectification info blocks in this file
Definition:
fvff.h:62
firevision::_fvff_header_t::endianess
uint16_t endianess
endianess of the file, 0 means little endian, 1 means big endian
Definition:
fvff.h:60
firevision::_fvff_header_t::magic_token
uint16_t magic_token
magic token
Definition:
fvff.h:58
firevision
Definition:
vision_master.h:32
firevision::_fvff_header_t::created_sec
uint64_t created_sec
creation unix timestamp, seconds
Definition:
fvff.h:64
firevision::_fvff_header_t::created_usec
uint64_t created_usec
creation unix timestamp, useconds
Definition:
fvff.h:65
firevision::_fvff_header_t::spec_head_size
uint32_t spec_head_size
data specific header size
Definition:
fvff.h:63
firevision::_fvff_block_header_t
Block header.
Definition:
fvff.h:76
firevision::_fvff_header_t::version
uint16_t version
version of the data file, this header defines version 1
Definition:
fvff.h:59
firevision::_fvff_header_t::reserved
uint16_t reserved
reserved for future use
Definition:
fvff.h:61
firevision::_fvff_block_header_t::spec_head_size
uint32_t spec_head_size
the size of the following content specific block header
Definition:
fvff.h:79
firevision::_fvff_header_t
Header for a FireVision file format file.
Definition:
fvff.h:57
firevision::_fvff_block_header_t::type
uint32_t type
The type of the block, content-specific.
Definition:
fvff.h:77
firevision::_fvff_header_t::comment
char comment[FVFF_COMMENT_SIZE]
optional comment
Definition:
fvff.h:66
src
libs
fvutils
fileformat
fvff.h
Generated by
1.8.13