mirror of
https://github.com/dyne/FreeJ.git
synced 2026-02-09 06:19:20 +01:00
flash vectorial graphics in a layer git-svn-id: svn://dyne.org/rastasoft/freej/freej@621 383723c8-4afa-0310-b8a8-b1afb83214fc
134 lines
3.9 KiB
C
134 lines
3.9 KiB
C
/*///////////////////////////////////////////////////////////
|
|
// Flash Plugin and Player
|
|
// Copyright (C) 1998 Olivier Debon
|
|
//
|
|
// This program is free software; you can redistribute it and/or
|
|
// modify it under the terms of the GNU General Public License
|
|
// as published by the Free Software Foundation; either version 2
|
|
// of the License, or (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with this program; if not, write to the Free Software
|
|
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
//
|
|
///////////////////////////////////////////////////////////// */
|
|
#ifndef _FLASH_H_
|
|
#define _FLASH_H_
|
|
|
|
#define PLUGIN_NAME "Shockwave Flash"
|
|
#define FLASH_VERSION_STRING "Version 0.4.12"
|
|
|
|
/* Flags to pass to FlashExec */
|
|
#define FLASH_WAKEUP 0x01
|
|
#define FLASH_EVENT 0x02
|
|
#define FLASH_CMD 0x04
|
|
|
|
/* Mask to extract commands */
|
|
#define FLASH_CMD_MASK 0xf0
|
|
/* Commands */
|
|
#define FLASH_STOP 0x10 /* Pause the movie */
|
|
#define FLASH_CONT 0x20 /* Continue the movie after pause */
|
|
#define FLASH_REWIND 0x30 /* Rewind the movie and pause */
|
|
#define FLASH_STEP 0x40 /* Frame by frame operation */
|
|
|
|
/* return codes of FlashExec */
|
|
#define FLASH_STATUS_WAKEUP 0x01 /* FlashExec must be called again after a given time */
|
|
|
|
/* fileformat enum */
|
|
enum fileFormat_e { FLASH_COMPRESSED = 0x1, FLASH_EXE = 0x2, };
|
|
|
|
struct FlashInfo {
|
|
long frameRate;
|
|
long frameCount;
|
|
long frameWidth;
|
|
long frameHeight;
|
|
long version;
|
|
int fileFormat;
|
|
};
|
|
|
|
/* Player settings */
|
|
#define PLAYER_LOOP (1<<0)
|
|
#define PLAYER_QUALITY (1<<1)
|
|
#define PLAYER_MENU (1<<2)
|
|
|
|
/* Parser status */
|
|
#define FLASH_PARSE_ERROR 0
|
|
#define FLASH_PARSE_START 1
|
|
#define FLASH_PARSE_NEED_DATA 2
|
|
#define FLASH_PARSE_EOM 4
|
|
#define FLASH_PARSE_WAKEUP 8
|
|
#define FLASH_PARSE_OOM 16 /* Out Of Memory */
|
|
|
|
typedef void *FlashHandle;
|
|
|
|
#if defined(__cplusplus) || defined(c_plusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
enum FlashEventType {
|
|
FeNone,
|
|
FeMouseMove,
|
|
FeButtonPress,
|
|
FeButtonRelease,
|
|
FeRefresh,
|
|
FeKeyPress,
|
|
/* internal events */
|
|
FeKeyRelease,
|
|
};
|
|
|
|
enum FlashKey {
|
|
FeKeyUp = 1,
|
|
FeKeyDown,
|
|
FeKeyLeft,
|
|
FeKeyRight,
|
|
FeKeyEnter,
|
|
FeKeyNext
|
|
};
|
|
|
|
|
|
|
|
typedef struct FlashEvent {
|
|
enum FlashEventType type;
|
|
int x,y; /* Mouse coordinates,
|
|
relative to upper-left window corner */
|
|
enum FlashKey key;
|
|
} FlashEvent;
|
|
|
|
typedef struct FlashDisplay {
|
|
void *pixels;
|
|
int bpl; /* bytes per line */
|
|
int width;
|
|
int height;
|
|
int depth;
|
|
int bpp;
|
|
int flash_refresh;
|
|
/* Clipping region */
|
|
int clip_x, clip_y;
|
|
int clip_width, clip_height;
|
|
} FlashDisplay;
|
|
|
|
extern FlashHandle FlashNew();
|
|
extern void FlashGetInfo(FlashHandle fh, struct FlashInfo *fi);
|
|
extern long FlashGraphicInit(FlashHandle fh, FlashDisplay *fd);
|
|
extern void FlashSoundInit(FlashHandle fh, char *device);
|
|
extern int FlashParse(FlashHandle fh, int level, char *data, long size);
|
|
extern long FlashExec(FlashHandle fh, long flag, FlashEvent *fe, struct timeval *wakeDate);
|
|
extern void FlashClose(FlashHandle fh);
|
|
extern void FlashSetGetUrlMethod(FlashHandle flashHandle, void (*getUrl)(char *, char *, void *), void *);
|
|
extern void FlashSetGetSwfMethod(FlashHandle flashHandle, void (*getSwf)(char *url, int level, void *clientData), void *clientData);
|
|
extern void FlashSetCursorOnOffMethod(FlashHandle flashHandle, void (*cursorOnOff)(int , void *), void *clientData);
|
|
extern void FlashZoom(FlashHandle fh, int zoom);
|
|
extern void FlashOffset(FlashHandle fh, int x, int y);
|
|
extern void FlashSettings(FlashHandle fh, long settings);
|
|
|
|
#if defined(__cplusplus) || defined(c_plusplus)
|
|
};
|
|
#endif
|
|
|
|
#endif /* _FLASH_H_ */
|