fplayer
C99 Falcon Sequence (fseq) file player for Light-O-Rama hardware (like xLights)
|
FSEQ sequence file encoding function implementations. More...
#include "writer.h"
#include <assert.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include "tinyfseq.h"
#include "fseq/enc.h"
#include "std2/errcode.h"
#include "std2/fc.h"
Macros | |
#define | HEADER_SIZE 32 |
Size of the FSEQ file format header in bytes. | |
#define | VAR_HEADER_SIZE 4 |
Size of a FSEQ file format variable header in bytes. | |
Functions | |
int | fseqWriteHeader (struct FC *fc, const struct tf_header_t *header) |
Encodes the given header and writes it at the beginning of the file. | |
int | fseqWriteCompressionBlocks (struct FC *fc, const struct tf_header_t *header, const struct tf_compression_block_t *blocks) |
Encodes the given compression blocks writes them to the file at the at the end of the format header. | |
static int | fseqGetVarSectionSize (const struct fseq_var_s *vars, const int count, const bool align, uint16_t *size) |
Calculates the size in bytes of the variable section according to the given variables. The size is stored in the given pointer. | |
int | fseqWriteVars (struct FC *fc, const struct tf_header_t *header, const struct fseq_var_s *vars, const int count) |
Encodes the given variables and writes them to the file after the compression block and channel range tables. | |
int | fseqRealignHeaderOffsets (struct tf_header_t *header, const struct fseq_var_s *vars, const int count) |
Re-aligns the offsets in the given header to account for the length of the variable data that will be written to the file. | |
FSEQ sequence file encoding function implementations.
#define HEADER_SIZE 32 |
Size of the FSEQ file format header in bytes.
#define VAR_HEADER_SIZE 4 |
Size of a FSEQ file format variable header in bytes.
|
static |
Calculates the size in bytes of the variable section according to the given variables. The size is stored in the given pointer.
vars | variables to calculate the size of |
count | number of variables in the array |
align | whether to align the size to the nearest multiple of 4 |
size | pointer to store the calculated size |
int fseqRealignHeaderOffsets | ( | struct tf_header_t * | header, |
const struct fseq_var_s * | vars, | ||
int | count ) |
Re-aligns the offsets in the given header to account for the length of the variable data that will be written to the file.
header | header to update |
vars | variables to account for |
count | number of variables in the array |
int fseqWriteCompressionBlocks | ( | struct FC * | fc, |
const struct tf_header_t * | header, | ||
const struct tf_compression_block_t * | blocks ) |
Encodes the given compression blocks writes them to the file at the at the end of the format header.
fc | target file controller |
header | header to account for |
blocks | compression blocks to encode and write |
int fseqWriteHeader | ( | struct FC * | fc, |
const struct tf_header_t * | header ) |
Encodes the given header and writes it at the beginning of the file.
fc | target file controller |
header | header to encode and write |
int fseqWriteVars | ( | struct FC * | fc, |
const struct tf_header_t * | header, | ||
const struct fseq_var_s * | vars, | ||
int | count ) |
Encodes the given variables and writes them to the file after the compression block and channel range tables.
fc | target file controller |
header | header to account for |
vars | variables to encode and write |
count | number of variables in the array |