view src/cs/services/buzm/buzm_struct_i.h @ 297:8dfdf88d632f

BUZM SWE initial implementation
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 29 Mar 2022 03:45:41 +0000
parents
children
line wrap: on
line source

/*
 * This header file holds the internal structure definition
 * for BUZM SWE.
 */

#ifndef __BUZM_STRUCT_I
#define __BUZM_STRUCT_I

#include "rv/rv_general.h"
#include "rvf/rvf_api.h"
#include "ffs/ffs_api.h"

#define	MELODY_CHUNK_SIZE	64	/* entries, not bytes */

struct melody_entry {
	UINT8	pwt_note;
	UINT8	note_volume;
	UINT16	duration;
};

struct buzm_env {
	/* RiViera boilerplate */
	T_RVF_ADDR_ID	addr_id;
	T_RVF_MB_ID	prim_id;
	/* global flag */
	BOOL		melody_running;
	/* all following vars are valid only during melody play */
	T_FFS_FD	ffs_fd;
	UINT8		play_volume;
	BOOL		loop_mode;
	struct melody_entry chunk_buf[MELODY_CHUNK_SIZE];
	UINT8		chunk_play_ptr;
	UINT8		chunk_end_ptr;
	BOOL		melody_end_flag;
};

#endif	/* include guard */