sc68fordevelopers  2.2.1
Data Structures | Macros | Variables
file68.h File Reference

sc68 file. More...

#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...
 

Macros

#define SC68_IDSTR   "SC68 Music-file / (c) (BeN)jamin Gerard / SasHipA-Dev "
 SC68 file identification string definition (use SC68file_idstr instead). More...
 
#define SC68_NOFILENAME   "???"
 SC68 unknown filename or author. More...
 
#define SC68_LOADADDR   0x8000
 Default load address in 68K memory. More...
 
#define SC68_MAX_TRACK   99
 Maximum track per disk (display rules). More...
 
Features flag definitions for music68_t.
#define SC68_YM   1
 YM-2149 actif. More...
 
#define SC68_STE   2
 STE sound actif. More...
 
#define SC68_AMIGA   4
 AMIGA sound actif. More...
 
#define SC68_STECHOICE   8
 Optionnal STF/STE (not tested). More...
 
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.
 

Functions

File verify functions.
int SC68file_verify (istream_t *is)
 Verify SC68 file from stream. More...
 
int SC68file_verify_file (const char *fname)
 Verify SC68 file. More...
 
int SC68file_verify_mem (const void *buffer, int len)
 Verify SC68 file mapped into memory buffer. More...
 
int SC68file_diskname (istream_t *is, char *dest, int max)
 Get SC68 disk name. More...
 
File load functions.
disk68_tSC68file_load (istream_t *is)
 Load SC68 file from stream. More...
 
disk68_tSC68file_load_file (const char *fname)
 Load SC68 file. More...
 
disk68_tSC68file_load_mem (const void *buffer, int len)
 Load SC68 file mapped into memory buffer. More...
 
File save functions.
int SC68file_save (istream_t *os, const disk68_t *mb)
 Save SC68 disk into stream. More...
 
int SC68file_save_file (const char *fname, const disk68_t *mb)
 Save SC68 disk into file. More...
 
int SC68file_save_mem (const char *buffer, int len, const disk68_t *mb)
 Save SC68 disk into memory buffer. More...
 

Variables

const char SC68file_idstr []
 SC68 file identifier string. More...
 

Detailed Description

sc68 file.

Author
Benjamin Gerard ben@s.nosp@m.ashi.nosp@m.pa.co.nosp@m.m
Date
1998/09/03
Id
file68.h,v 2.1 2003/08/25 20:15:51 benjihan Exp

Macro Definition Documentation

#define SC68_IDSTR   "SC68 Music-file / (c) (BeN)jamin Gerard / SasHipA-Dev "

SC68 file identification string definition (use SC68file_idstr instead).

See also
SC68file_idstr
#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).

#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).

Function Documentation

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.

Parameters
isinput stream to verify
Returns
error-code
Return values
0success, seems to be a valid SC68 file
<0failure, file error or invalid SC68 file
See also
SC68file_load()
SC68file_save()
SC68file_diskname()
int SC68file_verify_file ( const char *  fname)

Verify SC68 file.

Parameters
fnamepath to file to verify.
int SC68file_verify_mem ( const void *  buffer,
int  len 
)

Verify SC68 file mapped into memory buffer.

Parameters
bufferbuffer address
lenbuffer 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.

Parameters
isinput stream
destdisk name destination buffer
maxnumber of bytes of dest buffer
Returns
error-code
Return values
0success, found a disk-name
<0failure, file error, invalid SC68 file or disk-name not found
See also
SC68file_load()
SC68file_save()
SC68file_diskname()
disk68_t* SC68file_load ( istream_t is)

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.

Parameters
isinput stream
Returns
pointer to allocated disk68_t disk structure
Return values
0failure
See also
SC68file_verify()
SC68file_save()
disk68_t* SC68file_load_file ( const char *  fname)

Load SC68 file.

Parameters
fnamepath to file to load.
disk68_t* SC68file_load_mem ( const void *  buffer,
int  len 
)

Load SC68 file mapped into memory buffer.

Parameters
bufferbuffer address
lenbuffer length
int SC68file_save ( istream_t os,
const disk68_t mb 
)

Save SC68 disk into stream.

Parameters
osoutput stream (must be seekable)
mbpointer to SC68 disk to save
Returns
error-code
Return values
0success
<0failure
See also
SC68file_load()
SC68file_verify()
SC68file_diskname()
int SC68file_save_file ( const char *  fname,
const disk68_t mb 
)

Save SC68 disk into file.

Parameters
fnamefilename.
mbpointer to SC68 disk to save
int SC68file_save_mem ( const char *  buffer,
int  len,
const disk68_t mb 
)

Save SC68 disk into memory buffer.

Parameters
bufferdestination buffer.
lensize of destination buffer.
mbpointer to SC68 disk to save

Variable Documentation

const char SC68file_idstr[]

SC68 file identifier string.

See also
SC68_IDSTR