AFHI_BITRATE_OFFSET = 4,
/** Position of the frequency. */
AFHI_FREQUENCY_OFFSET = 8,
+ /** Location of the audio file header. */
+ AFHI_HEADER_OFFSET_OFFSET = 12,
+ /* Length of the audio file header. Zero means: No header. */
+ AFHI_HEADER_LEN_OFFSET = 16,
/** Number of channels is stored here. */
- AFHI_CHANNELS_OFFSET = 12,
+ AFHI_CHANNELS_OFFSET = 20,
/** EOF timeout in ms. */
- AFHI_EOF_OFFSET = 13,
+ AFHI_EOF_OFFSET = 21,
/** The tag info position. */
- AFHI_INFO_STRING_OFFSET = 15,
+ AFHI_INFO_STRING_OFFSET = 23,
/** Minimal on-disk size of a valid afhi struct. */
- MIN_AFHI_SIZE = 16
+ MIN_AFHI_SIZE = 24
};
static unsigned sizeof_afhi_buf(const struct afh_info *afhi)
afhi->seconds_total);
write_u32(buf + AFHI_BITRATE_OFFSET, afhi->bitrate);
write_u32(buf + AFHI_FREQUENCY_OFFSET, afhi->frequency);
+ write_u32(buf + AFHI_HEADER_OFFSET_OFFSET, afhi->header_offset);
+ write_u32(buf + AFHI_HEADER_LEN_OFFSET, afhi->header_len);
write_u8(buf + AFHI_CHANNELS_OFFSET, afhi->channels);
write_u16(buf + AFHI_EOF_OFFSET, tv2ms(&afhi->eof_tv));
strcpy(buf + AFHI_INFO_STRING_OFFSET, afhi->info_string); /* OK */
afhi->bitrate = read_u32(buf + AFHI_BITRATE_OFFSET);
afhi->frequency = read_u32(buf + AFHI_FREQUENCY_OFFSET);
afhi->channels = read_u8(buf + AFHI_CHANNELS_OFFSET);
+ afhi->header_offset = read_u32(buf + AFHI_HEADER_OFFSET_OFFSET);
+ afhi->header_len = read_u32(buf + AFHI_HEADER_LEN_OFFSET);
ms2tv(read_u16(buf + AFHI_EOF_OFFSET), &afhi->eof_tv);
strcpy(afhi->info_string, buf + AFHI_INFO_STRING_OFFSET);
}
"Received: from\nTo: bar\nFrom: a\n"
"Subject: %s\n\n" /* path */
"%s%s%s" /* score */
- "%s"
+ "%s\n" /* attributes */
"hash: %s\n"
"image_id: %s\n"
"lyrics_id: %s\n"