⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 madevdrv.h

📁 是一个手机功能的模拟程序
💻 H
字号:
/****************************************************************************
 *																			*
 *		Copyright (C) 2001-2003	YAMAHA CORPORATION. All rights reserved.	*
 *																			*
 *		Module		: madevdrv.h											*
 *																			*
 *		Description	: MA Device Driver										*
 *																			*
 * 		Version		: 1.3.15.2	2003.03.13									*
 *																			*
 ****************************************************************************/

#ifndef __MADEVDRV_H__
#define __MADEVDRV_H__

#include "mamachdep.h"
#include "madefs.h"
#include "madebug.h"
#include "masndseq.h"
#include "masnddrv.h"

/* Struct Definitions */

typedef struct _MA_SBUF_INFO
{
	UINT8	write_num;
	UINT8	read_num;
	UINT16	buf_total;
	UINT16	buf_ptr;
	UINT16	buf_size[MA_SBUF_NUM];
} MA_SBUF_INFO;

typedef struct _MA_STREAM_AUDIO_INFO
{
	UINT8	state[MA_MAX_STREAM_AUDIO];
	UINT16	write_block[MA_MAX_STREAM_AUDIO];
	UINT16	read_block[MA_MAX_STREAM_AUDIO];
	UINT8	format[MA_MAX_STREAM_AUDIO];
	UINT8 *	wave_ptr[MA_MAX_STREAM_AUDIO];
	UINT32	wave_size[MA_MAX_STREAM_AUDIO];
	UINT32	position[MA_MAX_STREAM_AUDIO];
	UINT16	end_point[MA_MAX_STREAM_AUDIO];
	UINT16	prv_point[MA_MAX_STREAM_AUDIO];
} MA_STREAM_AUDIO_INFO, *PMA_STREAM_AUDIO_INFO;

typedef struct _MADEVDRVINFO
{
	void (* int_func[8])(UINT8 ctrl);
	UINT8	seq_flag;
	UINT8	stop_reg;
	UINT8	stop_flag;
	UINT8	ctrl_seq;
	UINT8	timer0;
	UINT8	mask_interrupt;
	UINT8	int_func_map;
	UINT8	audio_mode;
	UINT8	end_of_sequence[3];
	UINT8	sbuf_buffer[MA_SBUF_NUM][MA_FIFO_SIZE];
	MA_SBUF_INFO			sbuf_info;
	MA_STREAM_AUDIO_INFO	streaminfo;
} MADEVDRVINFO, *PMADEVDRVINFO;

/* Function Definitions */

SINT32	MaDevDrv_Initialize			( void );

UINT8 * MaDevDrv_GetSeekBuffer		( UINT16 * size );
SINT32	MaDevDrv_SeekControl		( SINT32 seq_id, UINT32 size );

void	MaDevDrv_SetAudioMode		( UINT8 mode );

UINT32	MaDevDrv_GetStreamPos		( UINT8 ctrl );

void	MaDevDrv_InitRegisters		( void );
SINT32	MaDevDrv_VerifyRegisters	( void );
SINT32	MaDevDrv_PowerManagement	( UINT8 sw );

SINT32	MaDevDrv_DeviceControl		( UINT8 cmd, UINT8 prm1, UINT8 prm2, UINT8 prm3 );

SINT32	MaDevDrv_StartSequencer		( SINT32 seq_id, UINT8 ctrl );
SINT32	MaDevDrv_StopSequencer		( SINT32 seq_id, UINT8 ctrl );

SINT32	MaDevDrv_EndOfSequence		( void );

SINT32	MaDevDrv_ClearFifo			( void );

void	MaDevDrv_SoftInt0			( UINT8	ctrl );
void	MaDevDrv_SoftInt1			( UINT8 ctrl );
void	MaDevDrv_SoftInt2			( UINT8 ctrl );
void	MaDevDrv_Timer0				( UINT8 ctrl );
void	MaDevDrv_Timer1				( UINT8 ctrl );
void	MaDevDrv_Fifo				( UINT8 ctrl );

SINT32	MaDevDrv_StreamHandler		( UINT8 sa_id, UINT8 ctrl, UINT8 ram_val );

SINT32	MaDevDrv_AddIntFunc			( UINT8 number, void (*func)( UINT8 ctrl ) );
SINT32	MaDevDrv_RemoveIntFunc			( UINT8 number );
void	MaDevDrv_IntHandler			( void );

SINT32	MaDevDrv_SendDirectPacket	( const UINT8 * ptr, UINT32 size );
SINT32 	MaDevDrv_ReceiveData		( UINT32 adrs, UINT8 buf_adrs );
SINT32	MaDevDrv_SendDelayedPacket	( const UINT8 * ptr, UINT32 size );
SINT32	MaDevDrv_SendDirectRamData	( UINT32 adrs, UINT8 type, const UINT8 * ptr, UINT32 size );
SINT32	MaDevDrv_SendDirectRamVal	( UINT32 adrs, UINT32 size, UINT8 val );

void	MaDevDrv_WriteStatusFlagReg	( UINT8 data );
UINT8 	MaDevDrv_ReadStatusFlagReg	( void );
void	MaDevDrv_WriteDataReg		( UINT8 data );
UINT8	MaDevDrv_ReadDataReg		( void );

#endif /*__MADEVDRV_H__*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -