📄 sing.h
字号:
/*
** Kenobi2 version 1.3
**
** ** This code has been made to check/learn the 1161 functionalities **
** ** Release 25-Feb-2002 **
**
** OKANO, Akifumi
**
** Computing Segment, Semisonductors Div, Philips Japan Ltd.
** akifumi.okano@philips.com
** +81-3-3740-4668
*/
#include "isr.h"
//#define AUDIO_FILENAME "../music/allnight.wav"
//#define AUDIO_FILENAME "../music/morethan.wav"
//#define AUDIO_FILENAME "../music/koyoino.wav"
//#define AUDIO_FILENAME "../music/allnight.wav"
//#define AUDIO_FILENAME "../music/sin.wav"
//#define AUDIO_FILENAME "../music/sq.wav"
//#define AUDIO_FILENAME "../music/ramp.wav"
//#define AUDIO_FILENAME "../music/ramp2.wav"
#define AUDIO_FILENAME "default.wav"
#define MAX_NUM_OF_AUDIO_FILES 10
#define FILE_NAME_LENGTH 256
#define NUM_OF_BUFFER_UNITS 1 // <-- for adjusting whole buffer size // 1764 bytes * n
#define BUFFER_UNIT ((176 * 9) + 180) // 1764 bytes : data for 10 USB frames
#define FRAME_PER_BUFFER 10 // data for 10 USB frames
#define DOUBLE_BUFFERING 2
#define SINGLE_BUFFER_SIZE__BYTES (BUFFER_UNIT * NUM_OF_BUFFER_UNITS) // 1764 bytes
#define TOTTAL_BUFFER_SIZE__BYTES (SINGLE_BUFFER_SIZE__BYTES * DOUBLE_BUFFERING) // 1764 bytes * 2 = double buffer
#define SINGLE_BUFFER_SIZE__SHORT (SINGLE_BUFFER_SIZE__BYTES >> 1) // 882 of 16 bit samples
#define SOURCE_IS_NON_FILE 0
#define SOURCE_IS_FILE 1
#define FILE_ACCESS_FREE 0
#define FILE_ACCESS_READ 0
#define FILE_ACCESS_RESERVE 1
#define FILE_ACCESS_RESERVED 1
#define FILE_ACCESS_DENIED 2
#define FILE_ACCESS_REQUEST_FROM_NONE 0
#define FILE_ACCESS_REQUEST_FROM_SING 1
#define FILE_ACCESS_REQUEST_FROM_PRTR 2
typedef struct wav_head { /* See http://www.kk.iij4u.or.jp/~kondo/wave (Japanese page) */
char riff_h[ 4 ];
unsigned long file_size;
char wave_h[ 4 ];
char fmt_h[ 4 ];
unsigned long fmt_size;
unsigned short fmt_id;
unsigned short num_of_channels;
unsigned long sampling_rate;
unsigned long data_speed;
unsigned short block_size;
unsigned short bit_per_sample;
char data_h[ 4 ];
unsigned long data_sample_size_in_bytes;
}
wave_header;
extern char g_sing_file_str[ MAX_NUM_OF_AUDIO_FILES ][ FILE_NAME_LENGTH ];
extern char g_sing_list_file_str[ FILE_NAME_LENGTH ];
extern unsigned char g_ITL_test_value;
unsigned short audio_initialize( device_instance *dvi_ptr, char *filename, unsigned int (*buffer_fill_method)() );
unsigned char is_audio_active( void );
void audio_start( void );
void audio_stop( void );
void asynchronus_iso_buffer_fill( void );
unsigned char audio_main( void );
device_instance *find_audio_device( void );
unsigned char dos_read_exclusive( int file_handle, void *buffer_ptr, unsigned len, unsigned *nread, unsigned char flag, unsigned char requester );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -