1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
31
38
39
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
67
68
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
97
98
103
104
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/* ... */
#ifndef __MAIN_H
#define __MAIN_H
#include "stdio.h"
#include "usbh_core.h"
#include "usbh_mtp.h"
#include "stm324xg_eval_io.h"
#include "stm324xg_eval_audio.h"
#include "lcd_log.h"
6 includes
Includes
typedef enum {
MTP_DEMO_IDLE = 0,
MTP_DEMO_WAIT,
MTP_DEMO_EXPLORE,
MTP_DEMO_PLAYBACK,
MTP_REENUMERATE,
...}MTP_Demo_State;
typedef struct _DemoStateMachine {
__IO MTP_Demo_State state;
__IO uint8_t select;
...}MTP_DEMO_StateMachine;
typedef struct AUDIO_Info_t {
uint32_t ChunkID;
uint32_t FileSize;
uint32_t FileFormat;
uint32_t SubChunk1ID;
uint32_t SubChunk1Size;
uint16_t AudioFormat;
uint16_t NbrChannels;
uint32_t SampleRate;
uint32_t ByteRate;
uint16_t BlockAlign;
uint16_t BitPerSample;
uint32_t SubChunk2ID;
uint32_t SubChunk2Size;
...}WAV_InfoTypedef;
typedef enum {
AUDIO_DEMO_IDLE = 0,
AUDIO_DEMO_WAIT,
AUDIO_DEMO_EXPLORE,
AUDIO_DEMO_PLAYBACK,
AUDIO_REENUMERATE
...}AUDIO_Demo_State;
typedef enum {
APPLICATION_IDLE = 0,
APPLICATION_START,
APPLICATION_READY,
APPLICATION_DISCONNECT,
...}MTP_ApplicationTypeDef;
typedef enum {
AUDIO_STATE_IDLE = 0,
AUDIO_STATE_WAIT,
AUDIO_STATE_INIT,
AUDIO_STATE_CONFIG,
AUDIO_STATE_PLAY,
AUDIO_STATE_NEXT,
AUDIO_STATE_PREVIOUS,
AUDIO_STATE_FORWARD,
AUDIO_STATE_BACKWARD,
AUDIO_STATE_STOP,
AUDIO_STATE_PAUSE,
AUDIO_STATE_RESUME,
AUDIO_STATE_VOLUME_UP,
AUDIO_STATE_VOLUME_DOWN,
...}AUDIO_PLAYBACK_StateTypeDef;
typedef enum {
AUDIO_ERROR_NONE = 0,
AUDIO_ERROR_IO,
AUDIO_ERROR_EOF,
...}AUDIO_ErrorTypeDef;
typedef enum {
MTP_ERROR_NONE = 0,
MTP_ERROR_IO,
MTP_ERROR_INVALID_VALUE,
...}MTP_ErrorTypeDef;
typedef enum {
MTP_SELECT_MENU = 0,
MTP_PLAYBACK_CONTROL ,
...}MTP_DEMO_SelectMode;
extern USBH_HandleTypeDef hUSBHost;
extern MTP_ApplicationTypeDef Appli_state;
extern AUDIO_PLAYBACK_StateTypeDef audio_state;
Exported types
void Toggle_Leds(void);
void MTP_MenuInit(void);
void MTP_MenuProcess(void);
void AUDIO_PlaybackProbeKey(JOYState_TypeDef state);
uint8_t MTP_ExploreWavFile(void);
uint8_t MTP_GetData(uint32_t file_idx, uint32_t offset, uint32_t maxbytes,
uint8_t *object, uint32_t *len);
uint8_t MTP_GetWavObjectName(uint16_t object_index, uint8_t *filename);
uint8_t MTP_Init(void);
uint16_t MTP_GetWavObjectNumber(void);
AUDIO_ErrorTypeDef AUDIO_Init(void);
AUDIO_ErrorTypeDef AUDIO_Start(uint8_t idx);
AUDIO_ErrorTypeDef AUDIO_Process(void);
AUDIO_ErrorTypeDef AUDIO_Stop(void);Exported functions
/* ... */#endif