📄 am_custom_tune.h
字号:
#ifndef AM_CUSTOM_TUNE_INCLUDE
#define AM_CUSTOM_TUNE_INCLUDE
#ifdef __cplusplus /* Allow #include in a C++ file. */
extern "C" {
#endif
/* (c) Copyright Motorola 2001, All rights reserved.
Motorola Confidential Proprietary
Contains confidential proprietary information of Motorola, Inc.
Reverse engineering is prohibited.
The copyright notice does not imply publication.
DESCRIPTION:
This file contains definitions used in the generation of a tone.
***************************** REVISION HISTORY ******************************
Date Author Reference Number
======== ======== ================
02-10-30 bof010 CR - LIBbb65108
Invalid format in stored melody (Port the fix from TALON)
01-08-17 shagino CR - LIBbb02768
Merge R1.2 baseline with latest R1.1
- Added function prototype am_custom_tune_set_meta_info
01-03-18 ktang CR - CSGce90044
Renamed am_relay_layer_music.h to am_tune.h
00-08-09 mtaraba CR - CSGce55882
Eliminate file gsm.h from audio manager
99-10-25 ktang PR - CSGce40494
GRiEF AM Music Ringer
- Created file based on am_app_logic_processor_music.h,
am_hw_primitive_builder_tone.h, and MCU_DSP_AUDIO_MUSIC_GEN_ON
MDI message format
*/
/************** HEADER FILE INCLUDES ******************************************/
#include <SUAPI/suapi.h>
#include <ENGINE_AUDIO/td_aud_tone_req_type.h>
#include <ENGINE_AUDIO/td_aud_tone_req_tone_type.h>
#include "am_hw_primitive_builder_tone.h"
#include <SYNERGY_DEVICE_LAYER/dl_audio_auf.h>
/************** CONSTANTS *****************************************************/
#define NUMBER_OF_PITCHES 12
#define AM_CUSTOM_TUNE_BUFFER_SIZE (DL_AUDIO_MAX_ALERT_TUNE_LENGTH * 2)
#define AM_CUSTOM_INVALID_NOTE DL_AUDIO_TONE_TYPE_INVALID_TONE
/************** STRUCTURES, ENUMS, AND TYPEDEFS *******************************/
typedef struct
{
UINT8 tempo;
UINT8 note_numb;
UINT8* tune_ptr;
} TUNE_META;
typedef struct
{
TD_AUD_TONE_REQ_TYPE_T req_type;
TD_AUD_TONE_REQ_TONE_TYPE_T tone_type;
TD_AUD_TONE_SEQUENCE_NUMBER_T sequence;
TD_AUD_TONE_REQ_TONE_TYPE_T vib_type;
TD_AUD_VOLUME_SETTING_T vol_step;
} TUNE_REQUEST;
typedef struct
{
UINT8 data_buf[AM_CUSTOM_TUNE_BUFFER_SIZE];
TUNE_META meta;
TUNE_REQUEST request;
} CUSTOM_TUNE_INFO;
enum
{
S0,
S1,
S2
};
typedef UINT8 IMELODY_STYLE;
enum
{
TEMPO,
NOTE_COUNT,
VOLUME,
STYLE,
TUNE_DURATION,
NUMBER_OF_FIELDS
};
typedef UINT8 IMELODY_TUNE_CHARACTER_FIELD;
enum
{
EFFICIENT_OCTAVE,
VERBOSE_OCTAVE
};
typedef UINT8 IMELODY_OCTAVE_METHOD;
/************** FUNCTION PROTOTYPES *******************************************/
UINT32
am_custom_tune_iMelody_parse(UINT8* input_note_ptr, UINT16 beats, AUD_CUSTOM_TYPE action);
void
am_custom_tune_store_request(TD_AUD_TONE_REQ_TYPE_T req_type,
TD_AUD_TONE_REQ_TONE_TYPE_T tone_type,
TD_AUD_TONE_REQ_TONE_TYPE_T vibrate_type,
TD_AUD_TONE_SEQUENCE_NUMBER_T sequence_number,
TD_AUD_VOLUME_SETTING_T vol_step);
void am_custom_tune_send_request(TD_AUD_MEDIA_INFO_T media_info);
UINT8* am_custom_tune_buffer();
BOOL
am_custom_tune_identify(TD_AUD_TONE_REQ_TONE_TYPE_T tone_type,
TD_AUD_TONE_SEQUENCE_NUMBER_T sequence_number);
void
am_custom_tune_invalidate();
void
am_custom_tune_set_meta_info(TUNE_META meta);
TUNE_META
am_custom_tune_get_meta_info();
TUNE_REQUEST
am_custom_tune_get_request_info();
void
aud_custom_tune_imelody_unpack( UINT8 * imelody_string,
UINT8 * notes_buffer,
UINT16 notes_buffer_size,
UINT16 * beats);
void
aud_custom_tune_imelody_pack( UINT8 * imelody_buffer,
UINT16 imelody_buffer_size,
UINT8 * notes_string,
UINT16 beats);
/************** MACROS ********************************************************/
/************** CLASS DEFINITIONS *********************************************/
/************** GLOBAL VARIABLES **********************************************/
#ifdef __cplusplus /* allow #include in a C++ file (only put this in .h files) */
}
#endif
#endif /* end of - prevent inadvertently including a header file twice */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -