📄 ipod_app.h
字号:
/** @file
*
* iPod operation API
*
*/
/*************************************************************************
** **
** Copyright (C) 1999 Amlogic,Inc. **
** All rights reserved **
** Filename : iPod_app.h / Project: iPod **
** Revision : 1.0 **
** **
*************************************************************************/
#ifndef _IPOD_CONTROL_H_
#define _IPOD_CONTROL_H_
//iPod ->Now Playing
//iPod ->Songs ->Now Playing
//iPod ->Audiobooks ->Now Playing
//iPod ->Albums ->Songs ->Now Playing
//iPod ->Playlists ->Songs ->Now Playing
//iPod ->Podcasts ->Episode Track ->Now Playing
//iPod ->Artists ->Albums ->Songs ->Now Playing
//iPod ->Composers ->Albums ->Songs ->Now Playing
//iPod ->Genres ->Artists ->Albums ->Songs ->Now Playing
#define IPOD_MENULEVEL 6
#ifdef AVOS
#include <avtimer.h>
#ifndef __ROM_
#define M_IPOD_DIAG(x) \
AVSchedLock(); \
printf x; \
AVSchedUnlock();
#else
#define M_IPOD_DIAG(x)
#endif
#define IPOD_malloc AVMem_malloc
#define IPOD_free AVMem_free
#define IPOD_memcpy memcpy
#define IPOD_memset memset
#define IPOD_CATEGORYNUM 11
//#define DISPLAYITEMNUMBER (IPOD_CATEGORYNUM-1)
#define DISPLAYITEMNUMBER 5
/** The maximal length of an item name from iPod*/
#define IPOD_MAXITEMNAMELEN 32
//#define IPOD_MAXITEMNAMELEN 24
/** Awaiting time (in milliseconds) of query play status in playing mode*/
#define IPOD_QUERY_INTERVAL 500
/** Awaiting time (in IPOD_QUERY_INTERVAL) of back to now playing menu in playing mode*/
#define IPOD_BACK2NOWPLAYING_INTERVAL 10
typedef struct _iPod_time_s {
INT8U min; // 0~99
INT8U sec; // 0~59
} IPOD_TIME;
typedef struct _ipod_displaymsg_s {
INT8U menu_type; // 0: display Main Menu; 1: display Playing Menu
INT8U play_status; // 0: On Pause; 1: Playing
// 2: FF; 3: FB
union {
struct {
char *main_menu_name; // 64 bytes string
char *menu_item[DISPLAYITEMNUMBER]; // 64 bytes string
INT8U highlighted_item; // which item need to be highlighted displayed. 0 ~ DISPLAYITEMNUMBER-1
//char *item_position; // 64 bytes string, something like “2 of 40”
INT32U current_page;
INT32U total_page;
} main_menu;
struct {
char *playing_menu_name;// 64 bytes string
char *song_name; // 64 bytes string
char *artist_name; // 64 bytes string
char *album_name; // 64 bytes string
IPOD_TIME elapsed_time;
IPOD_TIME remaining_time;
INT8U play_mode;
} playing_menu;
}menu;
} IPOD_DISPLAY_MSG ;
#elif (defined HARMAN_STYLE)
#define INT8U unsigned char
#define INT16U unsigned short
#define INT32U unsigned int
#define INT8S char
#define INT16S short
#define INT32S int
#ifndef __ROM_
#define M_IPOD_DIAG(x) printf x;
#else
#define M_IPOD_DIAG(x)
#endif
#define IPOD_malloc mem_alloc
#define IPOD_free mem_free
#define IPOD_memcpy memcpy
#define IPOD_memset memset
#define IPOD_CATEGORYNUM 10
//#define DISPLAYITEMNUMBER (IPOD_CATEGORYNUM-1)
#define DISPLAYITEMNUMBER 8
/** The maximal length of an item name from iPod*/
//#define IPOD_MAXITEMNAMELEN 32
#define IPOD_MAXITEMNAMELEN 24
/** Awaiting time (in milliseconds) of query play status in playing mode*/
#define IPOD_QUERY_INTERVAL 100
/** Awaiting time (in IPOD_QUERY_INTERVAL) of back to now playing menu in playing mode*/
#define IPOD_BACK2NOWPLAYING_INTERVAL 20
typedef struct _iPod_menu_UImsg_s {
unsigned char msg_type; //0: number select 1: up/down 2: repeat mode change 3: shuffle mode change
unsigned int msg_value; // number_vlaue 0: up 1: down 0:off 1:1 2:all 0:off 1:shuffle songs 2: shuffle Albums
}IPOD_UI_MSG;
typedef struct _iPod_fast_browsing_s {
unsigned char enable;
unsigned int last_time;
unsigned int time_interval;
unsigned int song_counter;
unsigned int song_interval;
}IPOD_FAST_BROWSING_MSG;
typedef struct _ipod_displaymsg_s {
unsigned char menu_type; // 0: Main Menu; 1: Playing Menu
unsigned char play_status; // 0: On Pause; 1: Playing; 2: Fastforward; 3: Fastbackward
unsigned int current_item_number;
unsigned int total_item_numbers;
unsigned char repeat_mode; // 0: off; 1: repeat one; 2: repeat all
unsigned char random_mode; // 0: off; 1: random songs 2: random albums
unsigned int elapsed_time; // in seconds
unsigned int total_time; // in seconds
unsigned char topbottom_flag;
union {
struct {
char *main_menu_name; // 256 bytes string
char *menu_item[DISPLAYITEMNUMBER]; // 256 bytes string
unsigned char highlighted_item; // which item need to be highlighted displayed. 0 ~ DISPLAYITEMNUMBER-1
unsigned char playing_item;
unsigned char file_type;
unsigned char item_numbers; // 1~DISPLAYITEMNUMBER
} main_menu;
struct {
char *song_name; // 256 bytes string
char *artist_name; // 256 bytes string
char *album_name; // 256 bytes string
} playing_menu;
}menu;
} IPOD_DISPLAY_MSG ;
unsigned char DoMoudle_iPodNavigation(void);
unsigned int iPod_check_dock_status(void);
unsigned int iPod_check_mailbox2_ISR_switch(void);
void iPod_set_dock_status(unsigned int status);
void iPod_set_mailbox2_ISR_switch(unsigned int new_type);
#endif
#define SHOW_IPOD_MAIN_MENU 0
#define SHOW_IPOD_PLAYING_MENU 1
#define IPOD_STOP 0
#define IPOD_PLAYING 1
#define IPOD_PAUSE 2
#define IPOD_PLAYING_FF 3
#define IPOD_PLAYING_FB 4
#define IPOD_PLAYMODE_REPEATOFF 0x01
#define IPOD_PLAYMODE_REPEATONE 0x02
#define IPOD_PLAYMODE_REPEATALL 0x04
#define IPOD_PLAYMODE_SHUFFLEOFF 0x10
#define IPOD_PLAYMODE_SHUFFLESONGS 0x20
#define IPOD_PLAYMODE_SHUFFLEDISCS 0x40
#define IPOD_REPEATMODE_OFF 0x00
#define IPOD_REPEATMODE_ONE 0x01
#define IPOD_REPEATMODE_ALL 0x02
#define IPOD_SHUFFLEMODE_OFF 0x00
#define IPOD_SHUFFLEMODE_SONGS 0x01
#define IPOD_SHUFFLEMODE_ALBUMS 0x02
#define IPOD_DOCK_STATUS_UNDOCKED 0
#define IPOD_DOCK_STATUS_DOCKED 1
#define IPOD_DOCK_STATUS_READY2TALK 2
#define IPOD_DOCK_STATUS_READY2UNDOCK 3
typedef struct _iPod_menu_path_s {
INT32U category;
INT32U index;
} IMP; //IPOD_MENU_PATH
struct _ipod_msg_s{
INT8U *sendMsg;
INT8U *recvMsg;
char *songName;
char *songPosition;
char *artistName;
char *albumName;
char *menuName;
char *audiobookName;
char *podcastName;
char *itemNames[DISPLAYITEMNUMBER];
INT32U displayPageFirstIndex;
INT32U displayPageLastIndex;
INT32U sendMsgLength;
INT32U recvMsgLength;
INT32U recvMsgShift;
INT8U currentMenu;
INT8U menuLevelIndex;
INT8U menuLevel[IPOD_MENULEVEL];
char *menuLevelName[IPOD_MENULEVEL];
INT32U menuIndex;
INT32U menuSize;
INT32U playingIndex;
INT8U playStatus;
INT8U playMode;
INT32U totalTime;
INT32U elapsedTime;
INT32U categoryMenuIndex[IPOD_CATEGORYNUM];
IMP categoryMenuPath[IPOD_CATEGORYNUM][IPOD_MENULEVEL];
IMP playingSongPath[IPOD_MENULEVEL];
INT32U categoryDisplayPageFirstIndex[IPOD_CATEGORYNUM];
INT32U back2NowplayingCount;
INT8U fastplayingFlag;
INT32U playingSongIndex;
INT32U playingSongAmount;
INT8U settingFlag;
INT32U displayTimer;
INT8U initFlag;
INT8U jump2NowPlayingFlag;
INT8U jump2NowPlayingLevel;
INT8U lingoMode;
INT8U app_status;
INT16U last_uop_code;
#ifdef AVOS
EventSubscriber_t *listener; /* event loop listener */
PAPPTASKARG app; /* application handle */
INT32S rs232_fd;
AVSysEvent_t queryTimerEndEventID;
AVSysEvent_t queryTimerEndEventHandle;
AVTimer_t queryTimer;
#elif (defined HARMAN_STYLE)
IPOD_UI_MSG UI_msg;
IPOD_FAST_BROWSING_MSG browsing_msg;
#endif
IPOD_DISPLAY_MSG *displayMsg; /* OSD display */
};
typedef struct _ipod_msg_s IPOD_MSG;
/** The maximal length of an output message to iPod*/
#define IPOD_MAXSENDMSGLEN 256
/** The maximal length of an input message from iPod*/
#define IPOD_MAXRECVMSGLEN 1024
/** Maximum awaiting response time (in seconds) from iPod*/
#define IPOD_MAXRECVTIME 15
#define UOP_IPOD 119
void iPodInit(void);
void iPodFree(void);
void iPod_Playing(INT16U uop_code);
INT32S iPodInitCommunication(void);
INT32S iPodInitCommunication2(void);
INT8U iPodGetDisplayFlag(void);
#endif // _IPOD_CONTROL_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -