home *** CD-ROM | disk | FTP | other *** search
- /*///////////////////////////////////////////////////////////
- // 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_
-
- #ifdef AMIGA
- #include "amiga_specific.h"
- #define AMIGAFLAG_MONO 1
- #endif
-
- #define PLUGIN_NAME "Shockwave Flash"
- #define FLASH_VERSION_STRING "Version 0.4.10"
-
- /* 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 */
-
- struct FlashInfo {
- long frameRate;
- long frameCount;
- long frameWidth;
- long frameHeight;
- long version;
- };
-
- /* 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 myTimeval *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);
-
- extern void AmigaFlashSoundInit(FlashHandle fh, int flag);
-
- #if defined(__cplusplus) || defined(c_plusplus)
- };
- #endif
-
- #endif /* _FLASH_H_ */
-