OSDN Git Service

add tstools.
[rec10/rec10-git.git] / tstools / DtsEdit / src / gpac / options.h
diff --git a/tstools/DtsEdit/src/gpac/options.h b/tstools/DtsEdit/src/gpac/options.h
new file mode 100644 (file)
index 0000000..1db6a80
--- /dev/null
@@ -0,0 +1,291 @@
+/*\r
+ *                     GPAC - Multimedia Framework C SDK\r
+ *\r
+ *                     Copyright (c) Jean Le Feuvre 2000-2005 \r
+ *                                     All rights reserved\r
+ *\r
+ *  This file is part of GPAC / Stream Management sub-project\r
+ *\r
+ *  GPAC is free software; you can redistribute it and/or modify\r
+ *  it under the terms of the GNU Lesser General Public License as published by\r
+ *  the Free Software Foundation; either version 2, or (at your option)\r
+ *  any later version.\r
+ *   \r
+ *  GPAC is distributed in the hope that it will be useful,\r
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ *  GNU Lesser General Public License for more details.\r
+ *   \r
+ *  You should have received a copy of the GNU Lesser General Public\r
+ *  License along with this library; see the file COPYING.  If not, write to\r
+ *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. \r
+ *\r
+ */\r
+\r
+\r
+\r
+#ifndef _GF_OPTIONS_H_\r
+#define _GF_OPTIONS_H_\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+\r
+/*AspectRatio Type */\r
+enum\r
+{\r
+       GF_ASPECT_RATIO_KEEP = 0, /*keep AR*/\r
+       GF_ASPECT_RATIO_16_9, /*keep 16/9*/\r
+       GF_ASPECT_RATIO_4_3, /*keep 4/3*/\r
+       GF_ASPECT_RATIO_FILL_SCREEN /*none (all rendering area used)*/\r
+};\r
+\r
+/*AntiAlias settings*/\r
+enum\r
+{\r
+       GF_ANTIALIAS_NONE = 0, /*no antialiasing*/\r
+       GF_ANTIALIAS_TEXT, /*only text has antialiasing*/\r
+       GF_ANTIALIAS_FULL /*full antialiasing*/\r
+};\r
+\r
+/*GF_StreamingCache settings*/\r
+enum\r
+{\r
+       GF_MEDIA_CACHE_ENABLED = 0, /*cache on (with SET option, turns it on if possible)*/\r
+       GF_MEDIA_CACHE_DISABLED, /*cache off (with SET option saves current cache if any)*/\r
+       GF_MEDIA_CACHE_DISCARD, /*only used for SET option: turns cache off and discards current cache if any*/\r
+       GF_MEDIA_CACHE_RUNNING, /*only used in GET option: caching is enabled and currently running*/\r
+};\r
+\r
+/*PlayState settings*/\r
+enum\r
+{\r
+       GF_STATE_PLAYING = 0,   /*terminal is playing*/\r
+       GF_STATE_PAUSED, /*terminal is paused*/\r
+       GF_STATE_STEP_PAUSE, /*get/set only: terminal will pause after next frame (simulation tick). On get, indicates that rendering step hasn't performed yet*/\r
+};\r
+\r
+/*refresh mode*/\r
+enum\r
+{\r
+       GF_REFRESH_NORMAL = 0, /*posts normal redraw message */\r
+       GF_REFRESH_FULL, /*posts full redraw message, including reset of hardware resources*/\r
+};\r
+\r
+/*interaction level settings*/\r
+enum\r
+{      \r
+       /*regular interactions enabled (touch sensors)*/\r
+       GF_INTERACT_NORMAL = 1,\r
+       /*InputSensor interactions enabled (mouse and keyboard)*/\r
+       GF_INTERACT_INPUT_SENSOR = 2,\r
+       /*all navigation interactions enabled (mouse and keyboard)*/\r
+       GF_INTERACT_NAVIGATION = 4,\r
+\r
+       /*NOTE: GF_INTERACT_NORMAL and GF_INTERACT_NAVIGATION filter events. If set, any event processed by\r
+       these 2 modules won't be forwarded to the user*/\r
+};\r
+\r
+/*BoundingVolume settings*/\r
+enum\r
+{\r
+       GF_BOUNDS_NONE = 0, /*doesn't draw bounding volume*/\r
+       GF_BOUNDS_BOX, /*draw object bounding box / rect*/\r
+       GF_BOUNDS_AABB  /*draw object AABB tree (3D only) */\r
+};\r
+\r
+/*Wireframe settings*/\r
+enum\r
+{\r
+       GF_WIREFRAME_NONE = 0, /*draw solid volumes*/\r
+       GF_WIREFRAME_ONLY, /*draw only wireframe*/\r
+       GF_WIREFRAME_SOLID /*draw wireframe on solid object*/\r
+};\r
+\r
+\r
+/*navigation type*/\r
+enum \r
+{\r
+       /*navigation is disabled by content and cannot be forced by user*/\r
+       GF_NAVIGATE_TYPE_NONE,\r
+       /*2D navigation modes only can be used*/\r
+       GF_NAVIGATE_TYPE_2D,\r
+       /*3D navigation modes only can be used*/\r
+       GF_NAVIGATE_TYPE_3D\r
+};\r
+\r
+/*navigation modes - non-VRML ones are simply blaxxun contact ones*/\r
+enum\r
+{\r
+       /*no navigation*/\r
+       GF_NAVIGATE_NONE = 0,\r
+       /*3D navigation modes*/\r
+       /*walk navigation*/\r
+       GF_NAVIGATE_WALK,\r
+       /*fly navigation*/\r
+       GF_NAVIGATE_FLY,\r
+       /*pan navigation*/\r
+       GF_NAVIGATE_PAN,\r
+       /*game navigation*/\r
+       GF_NAVIGATE_GAME,\r
+       /*slide navigation, for 2D and 3D*/\r
+       GF_NAVIGATE_SLIDE,\r
+       /*all modes below disable collision detection & gravity in 3D*/\r
+       /*examine navigation, for 2D and 3D */\r
+       GF_NAVIGATE_EXAMINE,\r
+       /*orbit navigation - 3D only*/\r
+       GF_NAVIGATE_ORBIT,\r
+       /*QT-VR like navigation - 3D only*/\r
+       GF_NAVIGATE_VR,\r
+};\r
+\r
+/*collision flags*/\r
+enum\r
+{\r
+       /*no collision*/\r
+       GF_COLLISION_NONE,\r
+       /*regular collision*/\r
+       GF_COLLISION_NORMAL,\r
+       /*collision with camera displacement*/\r
+       GF_COLLISION_DISPLACEMENT,\r
+};\r
+\r
+/*TextTexturing settings*/\r
+enum\r
+{\r
+       GF_TEXTURE_TEXT_DEFAULT = 0, /*text drawn as texture in 3D mode, regular in 2D mode*/\r
+       GF_TEXTURE_TEXT_NEVER, /*text never drawn as texture*/\r
+       GF_TEXTURE_TEXT_ALWAYS /*text always drawn*/\r
+};\r
+\r
+/*Normal drawing settings*/\r
+enum\r
+{\r
+       GF_NORMALS_NONE = 0, /*normals never drawn*/\r
+       GF_NORMALS_FACE, /*normals drawn per face (at barycenter)*/\r
+       GF_NORMALS_VERTEX /*normals drawn per vertex*/\r
+};\r
+\r
+\r
+/*Back-face culling mode*/\r
+enum\r
+{\r
+       GF_BACK_CULL_OFF = 0, /*backface culling disabled*/\r
+       GF_BACK_CULL_ON, /*backface culliong enabled*/\r
+       GF_BACK_CULL_ALPHA, /*backface culling enabled alos for transparent meshes*/\r
+};\r
+\r
+/*high-level options*/\r
+enum\r
+{\r
+       /*set/get antialias flag (value: one of the AntiAlias enum) - may be ignored in OpenGL mode depending on graphic cards*/\r
+       GF_OPT_ANTIALIAS  =0,\r
+       /*set/get fast mode (value: boolean) */\r
+       GF_OPT_HIGHSPEED,\r
+       /*set/get fullscreen flag (value: boolean) */\r
+       GF_OPT_FULLSCREEN,\r
+       /*reset top-level transform to original (value: boolean)*/\r
+       GF_OPT_ORIGINAL_VIEW,\r
+       /*overrides BIFS size info for simple AV - this is not recommended since\r
+       it will resize the window to the size of the biggest texture (thus some elements\r
+       may be lost)*/\r
+       GF_OPT_OVERRIDE_SIZE,\r
+       /*set / get audio volume (value is intensity between 0 and 100) */\r
+       GF_OPT_AUDIO_VOLUME,\r
+       /*set / get audio pan (value is pan between 0 (all left) and 100(all right) )*/\r
+       GF_OPT_AUDIO_PAN,\r
+       /*get javascript flag (no set, depends on compil) - value: boolean, true if JS enabled in build*/\r
+       GF_OPT_HAS_JAVASCRIPT,\r
+       /*get selectable stream flag (no set) - value: boolean, true if audio/video/subtitle stream selection is \r
+       possible with content (if an MPEG-4 scene description is not present). Use regular OD browsing to get streams*/\r
+       GF_OPT_CAN_SELECT_STREAMS,\r
+       /*set/get control interaction, OR'ed combination of interaction flags*/\r
+       GF_OPT_INTERACTION_LEVEL,\r
+       /*set display window visible / get show/hide state*/\r
+       GF_OPT_VISIBLE,\r
+       /*set freeze display on/off / get freeze state freeze_display prevents any screen updates \r
+       needed when output driver uses direct video memory access*/\r
+       GF_OPT_FREEZE_DISPLAY,\r
+       /*get isOver flag: if true the file can be restarted, otherwise it should not\r
+       this is used to check is there are several timelines, timesensors or interactions, in which case \r
+       the file could be running for an undetermined period.\r
+       Note that nothing prevents the user app to restart such a file*/\r
+       GF_OPT_IS_FINISHED,\r
+       /*set/get aspect ratio (value: one of AspectRatio enum) */\r
+       GF_OPT_ASPECT_RATIO,\r
+       /*send a redraw message (SetOption only): all graphics info (display list, vectorial path) is \r
+       recomputed, and textures are reloaded in HW*/\r
+       GF_OPT_REFRESH,\r
+       /*set/get stress mode (value: boolean) - in stress mode a GF_OPT_FORCE_REDRAW is emulated at each frame*/\r
+       GF_OPT_STRESS_MODE,\r
+       /*get/set bounding volume drawing (value: one of the above option)*/\r
+       GF_OPT_DRAW_BOUNDS,\r
+       /*get/set texture text option - when enabled and usable (that depends on content), text is first rendered \r
+       to a texture and only the texture is drawn, rather than drawing all the text each time (CPU intensive)*/\r
+       GF_OPT_TEXTURE_TEXT,\r
+       /*fake option, reload config file (set only), including drivers. Plugins configs are not reloaded*/\r
+       GF_OPT_RELOAD_CONFIG,\r
+       /*get: returns whether the content enable navigation and if it's 2D or 3D.\r
+       set: reset viewpoint (whatever value is given)*/\r
+       GF_OPT_NAVIGATION_TYPE,\r
+       /*get current navigation mode - set navigation mode if allowed by content - this is not a resident\r
+       option (eg not stored in cfg)*/\r
+       GF_OPT_NAVIGATION,\r
+       /*get/set GF_StreamingCache state - cf above states for set*/\r
+       GF_OPT_MEDIA_CACHE,\r
+       /*get/set Play state - cf above states for set*/\r
+       GF_OPT_PLAY_STATE,\r
+       /*get/set OpenGL force mode - returns error if OpenGL is not supported*/\r
+       GF_OPT_USE_OPENGL,\r
+\r
+       /*set/get direct draw flag. In direct draw, the screen is entirely redrawn at each frame\r
+       value: boolean\r
+       */\r
+       GF_OPT_DIRECT_DRAW,\r
+       /*set/get scalable zoom (value: boolean)*/\r
+       GF_OPT_SCALABLE_ZOOM,\r
+       /*set/get YUV acceleration (value: boolean) */\r
+       GF_OPT_YUV_HARDWARE,\r
+       /*get (set not supported yet) hardware YUV format (value: YUV 4CC) */\r
+       GF_OPT_YUV_FORMAT,\r
+\r
+       /*max video cache size in kbytes*/\r
+       GF_OPT_VIDEO_CACHE_SIZE,\r
+\r
+       \r
+       /*              3D ONLY OPTIONS         */\r
+       /*set/get raster outline flag (value: boolean) - when set, no vectorial outlining is done, only \r
+       openGL raster outline*/\r
+       GF_OPT_RASTER_OUTLINES,\r
+       /*set/get pow2 emulation flag (value: boolean) - when set, video textures with non power of 2 dimensions\r
+       are emulated as pow2 by expanding the video buffer (image is not scaled). Otherwise the entire image\r
+       is rescaled. This flag does not affect image textures, which are always rescaled*/\r
+       GF_OPT_EMULATE_POW2,\r
+       /*get/set polygon antialiasing flag (value: boolean) (may be ugly with some cards)*/\r
+       GF_OPT_POLYGON_ANTIALIAS,\r
+       /*get/set wireframe flag (value: cf above) (may be ugly with some cards)*/\r
+       GF_OPT_WIREFRAME,\r
+       /*get/set wireframe flag (value: cf above) (may be ugly with some cards)*/\r
+       GF_OPT_NORMALS,\r
+       /*disable backface culling*/\r
+       GF_OPT_BACK_CULL,\r
+       /*get/set RECT Ext flag (value: boolean) - when set, GL rectangular texture extension is not used \r
+       (but NPO2 texturing is if available)*/\r
+       GF_OPT_NO_RECT_TEXTURE,\r
+       /*get/set bitmap draw mode. If set, bitmap doesn't use texturing but direct video copy*/\r
+       GF_OPT_BITMAP_COPY,\r
+       /*set/get headlight (value: boolean)*/\r
+       GF_OPT_HEADLIGHT,\r
+       /*set/get collision (value: cf above)*/\r
+       GF_OPT_COLLISION,\r
+       /*set/get gravity*/\r
+       GF_OPT_GRAVITY,\r
+};\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /*_GF_USER_H_*/\r
+\r