Added documentation to LazyUSF public interface header
parent
c438cc7ed1
commit
486ce41c7f
|
@ -1,3 +1,5 @@
|
||||||
|
/* LazyUSF Public Interface */
|
||||||
|
|
||||||
#ifndef _USF_H_
|
#ifndef _USF_H_
|
||||||
#define _USF_H_
|
#define _USF_H_
|
||||||
#define _CRT_SECURE_NO_WARNINGS
|
#define _CRT_SECURE_NO_WARNINGS
|
||||||
|
@ -14,19 +16,41 @@ typedef struct usf_state_helper usf_state_helper_t;
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
size_t get_usf_state_size();
|
/* Returns the size of the base emulator state. */
|
||||||
|
size_t usf_get_state_size();
|
||||||
|
|
||||||
|
/* Clears and prepares an allocated state.
|
||||||
|
Do not call this on a state which has already been rendering
|
||||||
|
without calling usf_shutdown first, or else you will leak memory. */
|
||||||
void usf_clear(void * state);
|
void usf_clear(void * state);
|
||||||
|
|
||||||
|
/* These are both required functions before calling usf_render.
|
||||||
|
Their values are assumed to be zero, unless the respective
|
||||||
|
_enablecompare or _enablefifofull tags are present in the file. */
|
||||||
void usf_set_compare(void * state, int enable);
|
void usf_set_compare(void * state, int enable);
|
||||||
void usf_set_fifo_full(void * state, int enable);
|
void usf_set_fifo_full(void * state, int enable);
|
||||||
|
|
||||||
|
/* This processes and uploads the ROM and/or Project 64 save state data
|
||||||
|
present in the reserved section of each USF file. They should be
|
||||||
|
uploaded in the order in which psf_load processes them, or in priority
|
||||||
|
of deepest and first nested _lib first, top level files, then numbered
|
||||||
|
_lib# files.
|
||||||
|
Returns -1 on invalid data error, or 0 on success. */
|
||||||
int usf_upload_section(void * state, const uint8_t * data, size_t size);
|
int usf_upload_section(void * state, const uint8_t * data, size_t size);
|
||||||
|
|
||||||
|
/* Renders at least enough sample DMA blocks to fill the count passed in.
|
||||||
|
A null pointer is acceptable, in which case samples will be discarded.
|
||||||
|
Requesting zero samples with a null pointer is an acceptable way to
|
||||||
|
force at least one block of samples to render and return the current
|
||||||
|
sample rate in the variable passed in. */
|
||||||
void usf_render(void * state, int16_t * buffer, size_t count, int32_t * sample_rate);
|
void usf_render(void * state, int16_t * buffer, size_t count, int32_t * sample_rate);
|
||||||
|
|
||||||
|
/* Reloads the ROM and save state, effectively restarting emulation. Also
|
||||||
|
discards any buffered sample data. */
|
||||||
void usf_restart(void * state);
|
void usf_restart(void * state);
|
||||||
|
|
||||||
|
/* Frees all allocated memory associated with the emulator state. Necessary
|
||||||
|
after at least one call to usf_render, or else the memory will be leaked. */
|
||||||
void usf_shutdown(void * state);
|
void usf_shutdown(void * state);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
Loading…
Reference in New Issue