⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ipod_app.h

📁 AMLOGIC DPF source code
💻 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 + -