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

📄 apron.h

📁 这是一个在Brew环境下开发的SVG矢量图播放器
💻 H
字号:

/*=====================================================================

                        APRON - SVG Viewer

FILE
  apron.h

GENERAL DESCRIPTION
  Apron is a SVG Viewer application written using BREW APIs. 
  
  All svg & svgz content based on SVG Tiny 1.2 specification can be 
  viewed. The content can be animated or non-animated. Interactive 
  content which accepts focus or pointer events can also be viewed 
  & interacted. Zoom & Pan operations can be performed depending on 
  the content's support. Content with embedded audio/video or scripts 
  cannot be viewed 

EXTERNALIZED FUNCTIONS
  boolean apron_InitAppData(apron* pMe);
  void    apron_FreeAppData(apron* pMe);

INITIALIZATION AND SEQUENCING REQUIREMENTS
  None.

      Copyright (c) 2008
                    by QUALCOMM Incorporated. All Rights Reserved.
======================================================================*/

/*=====================================================================
                        EDIT HISTORY FOR MODULE

This section contains comments describing changes made to the module.
Notice that changes are listed in reverse chronological order.

$Header: //brewplus/extensions/SVG/main/brew_3.1/sdk/examples/apron/apron.h#3 $

when       who      what, where, why 
--------   ---      --------------------------------------------------------
07/19/06    rk      Updated Copyright
07/18/06    rk      Added headers & descriptions for code sections
09/18/06    rk      Removed macros defining boundaries
======================================================================*/

#ifndef APRON_H
#define APRON_H

/*=====================================================================
                     INCLUDE FILES FOR MODULE
======================================================================*/
#include "AEEModGen.h"          // Module interface definitions
#include "AEEAppGen.h"          // Applet interface definitions
#include "AEEShell.h"           // Shell interface definitions
#include "AEEFile.h"            // File interface definitions
#include "AEEMenu.h"
#include "AEEImage.h"
#include "AEEMedia.h"           // BREW MultiMedia Services
#include "AEEMediaSVG.h"        // BREW SVG Services
#include "AEEIMediaSVG.h"        // BREW SVG Services
#include "AEEStdLib.h"          // Helper functions/macros 
#include "AEEGraphics.h" 
#include "AEEText.h"

#include "apron.bid"            // Class ID
#include "apron.brh"            // Resource Variables

/*=====================================================================
             DEFINITIONS AND DECLARATIONS FOR MODULE
======================================================================*/
//Apron Version Info

/*
 ----------------------------------------------------------------------  
  "1.00"  Initial Public Release
 ----------------------------------------------------------------------  
*/                                                    

#define APRON_VERSION_NUMBER                "v1.00"

#define APRON_SPLASH_SCREEN_TIMER           750 // Timeout for banners and splash screens

//File System
#define APRON_MAX_FILE_NAME                 MAX_FILE_NAME
#define APRON_MAX_CONTENT_FILES             100
#define APRON_CONTENT_DIRECTORY             "fs:/mod/apron/content/"
#define APRON_FILE_EXTENSION_LENGTH         5
#define APRON_FILE_NAME_EXTENSION_SEPERATOR ('.')
#define APRON_DIRECTORY_FILE_NAME_SEPERATOR DIRECTORY_CHAR

#define APRON_SUPPORTED_FILE_TYPES          {{"svg"}, {"svgz"}}

#define APRON_BACKGROUND_COLOR              (MAKE_RGB(0xFF, 0xFF, 0xFF)) //Black

//Sensitivities
#define APRON_SENSITIVITY_POINTER_HIGH      8
#define APRON_SENSITIVITY_POINTER_MEDIUM    5
#define APRON_SENSITIVITY_POINTER_LOW       2

#define APRON_SENSITIVITY_PAN_HIGH          8
#define APRON_SENSITIVITY_PAN_MEDIUM        5
#define APRON_SENSITIVITY_PAN_LOW           2

//Dimensions
#define APRON_CONTEXT_MENU_HEIGHT           43
#define APRON_STATUS_MENU_HEIGHT            30
#define APRON_POINTER_HEIGHT                4
#define APRON_POINTER_WIDTH                 4

//FrameRates
#define APRON_FRAMERATE_AUTO                0       //Special Value
#define APRON_FRAMERATE_96                  96.0f
#define APRON_FRAMERATE_48                  48.0f
#define APRON_FRAMERATE_24                  24.0f
#define APRON_FRAMERATE_12                  12.0f
#define APRON_FRAMERATE_6                   6.0f
#define APRON_FRAMERATE_3                   3.0f
#define APRON_FRAMERATE_1                   1.0f
#define APRON_FRAMERATE_POINT5              0.5f
#define APRON_FRAMERATE_POINT25             0.25f

#define APRON_DEFAULT_SENSITIVITY_POINTER   APRON_SENSITIVITY_POINTER_MEDIUM
#define APRON_DEFAULT_SENSITIVITY_PAN       APRON_SENSITIVITY_PAN_MEDIUM
#define APRON_DEFAULT_SENSITIVITY_ROTATE    5 //not used
#define APRON_DEFAULT_SENSITIVITY_ZOOM      5 //not used

//Progress Sensitivity
#define APRON_PROGRESS_SENSITIVITY          1000 //1 sec

//User Event Type
#define APRON_DEFAULT_USER_EVENT_TYPE       APRON_USER_EVENT_TYPE_FOCUS

//Modes
#define APRON_DEFAULT_MODE_ZOOM             MM_SVG_CENTER_MODE_UNCENTERED

//Name 
#define APRON_CODE_NAME                     "Apron SVG Viewer"

#define APRON_COPYRIGHT_NOTICE              "Copyright 2008. Qualcomm Incorporated."

//Help Text
#define APRON_HELP_FILE                     "fs:/mod/apron/help.txt"

/*=====================================================================
      Typedefs
======================================================================*/
typedef enum _apron_app_state_enum
{
    APRON_STATE_ENTRY,
    APRON_STATE_EXIT, 

    APRON_STATE_HELP,
    APRON_STATE_ABOUT,

    APRON_STATE_OPTIONS_MENU,

    APRON_STATE_CONTENT_MENU,
    APRON_STATE_CONTENT_PLAY,
    APRON_STATE_CONTENT_PAUSE,
    APRON_STATE_CONTENT_STOP,

    APRON_STATE_SUSPEND
}apron_app_state_enum;

typedef enum _apron_app_event_enum
{
    APRON_EVENT_STARTUP,
    APRON_EVENT_TIMEOUT,

    APRON_EVENT_END,

    APRON_EVENT_HELP,
    APRON_EVENT_ABOUT,
    APRON_EVENT_OPTIONS_MENU,

    APRON_EVENT_OPEN,
    APRON_EVENT_CONTENT_CONTEXT_MENU_TOGGLE,
    APRON_EVENT_OPTIONS_CONTEXT_MENU_TOGGLE,

    APRON_EVENT_PLAY,

    APRON_EVENT_CONTENT_MENU,
    APRON_EVENT_PAUSE,  
    APRON_EVENT_STOP,
    APRON_EVENT_SEEKBACKWARD,
    APRON_EVENT_SEEKFORWARD,
    APRON_EVENT_NEXT,
    APRON_EVENT_PREVIOUS,

    APRON_EVENT_USER_EVENT_SET,
    APRON_EVENT_USER_EVENT_RESET,

    APRON_EVENT_KEY_UP,
    APRON_EVENT_KEY_DOWN,

    APRON_EVENT_FOCUS_UP,
    APRON_EVENT_FOCUS_DOWN,
    APRON_EVENT_FOCUS_RIGHT,
    APRON_EVENT_FOCUS_LEFT,
    APRON_EVENT_FOCUS_SELECT,

    APRON_EVENT_POINTER_UP,
    APRON_EVENT_POINTER_DOWN,
    APRON_EVENT_POINTER_RIGHT,
    APRON_EVENT_POINTER_LEFT,
    APRON_EVENT_POINTER_CLICK,

    APRON_EVENT_PAN_SET,
    APRON_EVENT_PAN_RESET,
    APRON_EVENT_PAN_UP,
    APRON_EVENT_PAN_DOWN,
    APRON_EVENT_PAN_RIGHT,
    APRON_EVENT_PAN_LEFT,

    APRON_EVENT_ZOOM_SET,
    APRON_EVENT_ZOOM_RESET,
    APRON_EVENT_ZOOM_IN,
    APRON_EVENT_ZOOM_OUT,

    APRON_EVENT_ROTATE_SET,
    APRON_EVENT_ROTATE_RESET,
    APRON_EVENT_ROTATE_CLOCKWISE,
    APRON_EVENT_ROTATE_COUNTER_CLOCKWISE,

    APRON_EVENT_RESET_ALL,

    APRON_EVENT_POINTER_SENSITIVITY_SET,
    APRON_EVENT_POINTER_SENSITIVITY_HIGH,
    APRON_EVENT_POINTER_SENSITIVITY_MEDIUM,
    APRON_EVENT_POINTER_SENSITIVITY_LOW,

    APRON_EVENT_PAN_SENSITIVITY_SET,
    APRON_EVENT_PAN_SENSITIVITY_HIGH,
    APRON_EVENT_PAN_SENSITIVITY_MEDIUM,
    APRON_EVENT_PAN_SENSITIVITY_LOW,

    APRON_EVENT_ROTATE_SENSITIVITY_SET,
    APRON_EVENT_ROTATE_SENSITIVITY_HIGH,
    APRON_EVENT_ROTATE_SENSITIVITY_MEDIUM,
    APRON_EVENT_ROTATE_SENSITIVITY_LOW,

    APRON_EVENT_ZOOM_SENSITIVITY_SET,
    APRON_EVENT_ZOOM_SENSITIVITY_HIGH,
    APRON_EVENT_ZOOM_SENSITIVITY_MEDIUM,
    APRON_EVENT_ZOOM_SENSITIVITY_LOW,

    APRON_EVENT_USER_EVENT_TYPE_SET,
    APRON_EVENT_USER_EVENT_POINTER,
    APRON_EVENT_USER_EVENT_FOCUS,

    APRON_EVENT_FRAMERATE_SET,
    APRON_EVENT_FRAMERATE_AUTO,
    APRON_EVENT_FRAMERATE_96,
    APRON_EVENT_FRAMERATE_48,
    APRON_EVENT_FRAMERATE_24,
    APRON_EVENT_FRAMERATE_12,
    APRON_EVENT_FRAMERATE_6,
    APRON_EVENT_FRAMERATE_3,
    APRON_EVENT_FRAMERATE_1,
    APRON_EVENT_FRAMERATE_POINT5,
    APRON_EVENT_FRAMERATE_POINT25,

    APRON_EVENT_SEEK_INTERVAL_SET,
    APRON_EVENT_SEEK_INTERVAL_SET_DONE,

    APRON_EVENT_UNKNOWN,
    APRON_EVENT_NONE
}apron_app_event_enum;

typedef enum _apron_content_state_enum
{
    APRON_CONTENT_STATE_PLAY,
    APRON_CONTENT_STATE_PAUSE,
    APRON_CONTENT_STATE_STOP,

    APRON_CONTENT_STATE_ROTATE,
    APRON_CONTENT_STATE_PAN,
    APRON_CONTENT_STATE_ZOOM,
    APRON_CONTENT_STATE_FOCUS,
    APRON_CONTENT_STATE_POINTER,

    APRON_CONTENT_STATE_NONE
}apron_content_state_enum;

typedef enum _apron_user_event_type_enum
{
    APRON_USER_EVENT_TYPE_FOCUS,
    APRON_USER_EVENT_TYPE_POINTER
}apron_user_event_type_enum;

typedef enum _apron_content_order_enum
{
    APRON_CONTENT_ORDER_NEW,
    APRON_CONTENT_ORDER_CURRENT,
    APRON_CONTENT_ORDER_NEXT,
    APRON_CONTENT_ORDER_PREVIOUS
}apron_content_order_enum;

typedef struct _apron_menu_info_struct
{
    uint16 wItemID;
    uint16 wImage;
}apron_menu_info_struct;

typedef struct _apron_content_info_struct
{
    char ** ppFileNames;
    uint16  numFiles;
    uint16  currentContent;
    uint32  startTime;
    uint32  endTime;
    uint32  frameNum;
    int32   totalTime;
    int32   totalPlayTime;
    int32   curPlayTime;
    int32   curFrameTimeStampT1;
    int32   curFrameTimeStampT2;
    boolean bZoomPanAllowed;
    boolean bInteractionAllowed;
}apron_content_info_struct;

typedef struct _apron_app_options_struct
{
    int16                       pointerSensitivity;
    int16                       panSensitivity;
    int16                       rotateSensitivity;
    uint16                      seekInterval;
    uint32                      zoomSensitivity;
    int32                       frameInterval;
    boolean                     bRepeatPlay;
    apron_user_event_type_enum  userEventType;
}apron_app_options_struct;

/*=====================================================================
      Applet structure. All variables in here are reference via "pMe->"
======================================================================*/
// create an applet structure that's passed around. All variables in
// here will be able to be referenced as static.
typedef struct _apron 
{
    AEEApplet       a ;          /* First element of this structure must be AEEApplet */
    AEEDeviceInfo   deviceInfo;  /* always have access to the hardware device information */

    // add your own variables here...
    IShell *                pShell;
    IDisplay *              pDisplay;
    IMedia *                pMediaSVG;      // pointer to IMedia   
    IMenuCtl *              pOptionsMenu;   // Options Menu
    IMenuCtl *              pContentMenu;   // Content Menu
    IMenuCtl *              pContextMenu;   // Context Menu
    IFileMgr *              pFileMgr;
    IBitmap *               pFrame;
    IGraphics *             pDrawSurface;
    IStatic *               pReadOnlyMenu;
    ITextCtl *              pTextInputMenu;

    AEERect                     screenRect; // Screen Rect

    apron_app_options_struct    appOptions;

    SVGPointerData *            pPointerInfo;
    SVGPanData *                pPanInfo;
    SVGZoomData *               pZoomInfo;
    apron_app_state_enum        appState;     // Application Status
    apron_content_info_struct   contentInfo;
    apron_content_state_enum    contentState;
}apron;

/*=====================================================================
      Constants and Macros 
======================================================================*/
//Defaults
const int32 APRON_DEFAULT_FRAMEINTERVAL     = APRON_FRAMERATE_AUTO; //INFO: AUTO is a special case
const uint16 APRON_DEFAULT_SEEK_INTERVAL    = 1000;     //1 sec in ms
const uint16 APRON_SEEK_INTERVAL_MIN        = 100;      //100 ms
const uint16 APRON_SEEK_INTERVAL_MAX        = 60000;    //1 min

/*=====================================================================
      Variables
======================================================================*/

/*=====================================================================
               FUNCTION DECLARATIONS FOR MODULE
======================================================================*/
boolean apron_InitAppData(apron* pMe);
void    apron_FreeAppData(apron* pMe);

#endif /* APRON_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -