#include "file68/istream68.h"
Go to the source code of this file.
Data Structures | |
struct | chunk68_t |
SC68 file chunk header. More... | |
struct | music68_t |
SC68 music (track) structure. More... | |
struct | disk68_t |
SC68 music disk structure. More... | |
Features flag definitions for music68_t. | |
#define | SC68_YM 1 |
YM-2149 actif. | |
#define | SC68_STE 2 |
STE sound actif. | |
#define | SC68_AMIGA 4 |
AMIGA sound actif. | |
#define | SC68_STECHOICE 8 |
Optionnal STF/STE (not tested). | |
SC68 file chunk definitions. | |
#define | CH68_CHUNK "SC" |
Chunk identifier. | |
#define | CH68_BASE "68" |
Start of file. | |
#define | CH68_FNAME "FN" |
File name. | |
#define | CH68_DEFAULT "DF" |
Default music. | |
#define | CH68_MUSIC "MU" |
Music section start. | |
#define | CH68_MNAME "MN" |
Music name. | |
#define | CH68_ANAME "AN" |
Author name. | |
#define | CH68_CNAME "CN" |
Composer name. | |
#define | CH68_D0 "D0" |
D0 value. | |
#define | CH68_AT "AT" |
Load address. | |
#define | CH68_TIME "TI" |
length in seconds | |
#define | CH68_FRAME "FR" |
length in frames | |
#define | CH68_FRQ "FQ" |
Main replay frequency in Hz. | |
#define | CH68_TYP "TY" |
Not standard st file. | |
#define | CH68_IMG "IM" |
Picture. | |
#define | CH68_REPLAY "RE" |
External replay. | |
#define | CH68_MDATA "DA" |
Music data. | |
#define | CH68_EOF "EF" |
End of file. | |
File verify functions. | |
int | SC68file_verify (istream_t *is) |
Verify SC68 file from stream. | |
int | SC68file_verify_file (const char *fname) |
Verify SC68 file. | |
int | SC68file_verify_mem (const void *buffer, int len) |
Verify SC68 file mapped into memory buffer. | |
int | SC68file_diskname (istream_t *is, char *dest, int max) |
Get SC68 disk name. | |
File load functions. | |
disk68_t * | SC68file_load (istream_t *is) |
Load SC68 file from stream. | |
disk68_t * | SC68file_load_file (const char *fname) |
Load SC68 file. | |
disk68_t * | SC68file_load_mem (const void *buffer, int len) |
Load SC68 file mapped into memory buffer. | |
File save functions. | |
int | SC68file_save (istream_t *os, const disk68_t *mb) |
Save SC68 disk into stream. | |
int | SC68file_save_file (const char *fname, const disk68_t *mb) |
Save SC68 disk into file. | |
int | SC68file_save_mem (const char *buffer, int len, const disk68_t *mb) |
Save SC68 disk into memory buffer. | |
Defines | |
#define | SC68_IDSTR "SC68 Music-file / (c) (BeN)jamin Gerard / SasHipA-Dev " |
SC68 file identification string definition (use SC68file_idstr instead). | |
#define | SC68_NOFILENAME "???" |
SC68 unknown filename or author. | |
#define | SC68_LOADADDR 0x8000 |
Default load address in 68K memory. | |
#define | SC68_MAX_TRACK 99 |
Maximum track per disk (display rules). | |
Variables | |
const char | SC68file_idstr [] |
SC68 file identifier string. |
#define SC68_IDSTR "SC68 Music-file / (c) (BeN)jamin Gerard / SasHipA-Dev " |
int SC68file_verify | ( | istream_t * | is | ) |
Verify SC68 file from stream.
The SC68file_verify() function opens, reads and closes given file to determine if it is a valid SC68 file. This function only checks for a valid file header, and does not perform any consistent error checking.
is | input stream to verify |
0 | success, seems to be a valid SC68 file | |
<0 | failure, file error or invalid SC68 file |
int SC68file_verify_file | ( | const char * | fname | ) |
Verify SC68 file.
fname | path to file to verify. |
int SC68file_verify_mem | ( | const void * | buffer, | |
int | len | |||
) |
Verify SC68 file mapped into memory buffer.
buffer | buffer address | |
len | buffer length |
int SC68file_diskname | ( | istream_t * | is, | |
char * | dest, | |||
int | max | |||
) |
Get SC68 disk name.
The SC68file_diskname() function opens, reads and closes given file to determine if it is a valid SC68 file. In the same time it tries to retrieve the stored disk name into the dest buffer with a maximum length of max bytes. If the name overflows, the last byte of the dest buffer will be non zero.
is | input stream | |
dest | disk name destination buffer | |
max | number of bytes of dest buffer |
0 | success, found a disk-name | |
<0 | failure, file error, invalid SC68 file or disk-name not found |
Load SC68 file from stream.
The SC68file_load() function allocates memory and loads an SC68 file. The function performs all necessary initializations in the returned disk68_t structure. A single buffer has been allocated including disk68_t structure followed by music data. It is user charge to free memory by calling SC68_free() function.
is | input stream |
0 | failure |
disk68_t* SC68file_load_file | ( | const char * | fname | ) |
Load SC68 file.
fname | path to file to load. |
disk68_t* SC68file_load_mem | ( | const void * | buffer, | |
int | len | |||
) |
Load SC68 file mapped into memory buffer.
buffer | buffer address | |
len | buffer length |
Save SC68 disk into stream.
os | output stream (must be seekable) | |
mb | pointer to SC68 disk to save |
0 | success | |
<0 | failure |
int SC68file_save_file | ( | const char * | fname, | |
const disk68_t * | mb | |||
) |
Save SC68 disk into file.
fname | filename. | |
mb | pointer to SC68 disk to save |
int SC68file_save_mem | ( | const char * | buffer, | |
int | len, | |||
const disk68_t * | mb | |||
) |
Save SC68 disk into memory buffer.
buffer | destination buffer. | |
len | size of destination buffer. | |
mb | pointer to SC68 disk to save |
const char SC68file_idstr[] |