📄 apron.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 + -