nt9856x/code/application/source/cardv/SrcCode/Gx/GxSound/sxsound/PlaySoundInt.h
2023-03-28 15:07:53 +08:00

98 lines
3.1 KiB
C
Executable File

/**
Copyright Novatek Microelectronics Corp. 2005. All rights reserved.
@file PlaySoundInt.h
@ingroup mIPRJAPKey
@brief Internal header file of Play Sound Task
Internal Header file of task handles the sound playback of startup, keypad ...
@note Nothing.
@date 2006/01/23
*/
/** \addtogroup mIPRJAPKey */
//@{
#ifndef _PLAYSOUNDINT_H
#define _PLAYSOUNDINT_H
#include "../GxSoundIntr.h"
#include "GxSound.h"
#include "vendor_audioout.h"
#define FLGSOUND_STOP 0x00000001
#define FLGSOUND_PLAY 0x00000002
#define FLGSOUND_STOPPED 0x00000004
#define FLGSOUND_QUIT 0x00000008
#define FLGSOUND_EXIT 0x00000010
#define FLGSOUND_ALL 0xFFFFFFFF
#define FLGDATA_STOP 0x00000001
#define FLGDATA_PLAY 0x00000002
#define FLGDATA_STOPPED 0x00000004
#define FLGDATA_QUIT 0x00000008
#define FLGDATA_EXIT 0x00000010
#define FLGDATA_ALL 0xFFFFFFFF
#define PLAYSOUND_STS_STOPPED 0
#define PLAYSOUND_STS_PLAYING 1
#define GXSOUND_NONTBL_SND_ID 0xFFFFFFFF
#define GXSOUND_WAV_HEADER_RIFF 0x46464952
#define GXSOUND_WAV_RIFFTYPE_WAVE 0x45564157
#define GXSOUND_WAV_FORMAT_ID 0x20746D66
/**
PCM Wave Header
@note Size is 44 bytes
*/
typedef struct {
UINT32 uiHeaderID; ///< Wave Header
///< @note Should be "RIFF" (0x46464952)
UINT32 uiHeaderSize; ///< Header Size
///< @note = FileSize - 8 or DataChunkSize + 36 + UserDataSize
UINT32 uiRIFFType; ///< RIFF Type
///< @note Should be "WAVE" (0x45564157)
UINT32 uiFormatID; ///< Format Chunk ID
///< @note Should be "fmt " (0x20746D66)
UINT32 uiFormatSize; ///< Format Chunk Size
///< @note Should be 0x00000010
UINT16 uiCompressionCode; ///< Compression Code
///< @note Should be 0x0001 for PCM format WAV file
UINT16 uiNumOfChannels; ///< Number Of Channels
///< - @b 0x0001: Mono
///< - @b 0x0002: Stereo
UINT32 uiSamplingRate; ///< Sampling rate
UINT32 uiAvgBytePerSec; ///< Average Byte Per Second
///< @note = Sampling Rate * Block Align
UINT16 uiBlockAlign; ///< Block Align
///< @note = Significant Bits Per Sample * Number Of Channles / 8
UINT16 uiSigBitsPerSample; ///< Significant Bits Per Sample
///< @note Should be 0x0010 or 0x0008, PCM is 8/16 bits per sample
UINT32 uiDataID; ///< Data Chunk ID
///< @note Should be "data" (0x61746164)
UINT32 uiDataSize; ///< Data Chunk Size
///<
///< Data byte count
} WAV_PCMHEADER, *PWAV_PCMHEADER;
extern HD_PATH_ID gxsound_ctrl_id;
extern HD_PATH_ID gxsound_path_id;
extern SOUND_MEM gxsound_mem;
extern void PlaySound_AudioHdl(UINT32 uiEventID);
extern void GxSound_ResetParam(void);
extern ER GxSound_TxfWav2PCM(SOUND_DATA *pSndData);
extern void _GxSound_Stop(void);
extern void _GxSound_Play(SOUND_DATA *pSoundData);
extern THREAD_RETTYPE PlaySoundTsk(void);
extern THREAD_RETTYPE PlayDataTsk(void);
#endif
//@}