GPAC
Open Source Multimedia Framework. For more information, check out http://gpac.wp.mines-telecom.fr
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups
smjs_api.h File Reference
#include <gpac/setup.h>
#include <jsapi.h>
+ Include dependency graph for smjs_api.h:
+ This graph shows which files directly or indirectly include this file:

Data Structures

struct  GF_JSClass
 

Macros

#define JS_VERSION   170
 
#define SMJS_DECL_FUNC_PROP_SET(func_name)   JSBool func_name(JSContext *c, JSObject *obj, jsval id, jsval *vp)
 
#define SMJS_FUNC_PROP_SET(func_name)   SMJS_DECL_FUNC_PROP_SET(func_name) {
 
#define SMJS_FUNC_PROP_SET_NOVP   SMJS_FUNC_PROP_SET
 
#define SMJS_DECL_FUNC_PROP_GET(func_name)   JSBool func_name(JSContext *c, JSObject *obj, jsval id, jsval *vp)
 
#define SMJS_FUNC_PROP_GET(func_name)   SMJS_DECL_FUNC_PROP_GET( func_name) {
 
#define DECL_FINALIZE(func_name)   void func_name(JSContext *c, JSObject *obj) {
 
#define SMJS_CALL_PROP_STUB()   JS_PropertyStub(c, obj, id, vp)
 
#define SMJS_PROP_SETTER   jsval id
 
#define SMJS_PROP_GETTER   jsval id
 
#define JS_PropertyStub_forSetter   JS_PropertyStub
 
#define SMJS_FUNCTION_SPEC(__name, __fun, __argc)   {__name, __fun, __argc, 0, 0}
 
#define SMJS_PROPERTY_SPEC(__name, __tinyid, __flags, __getter, __setter)   {__name, __tinyid, __flags, __getter, __setter}
 
#define SMJS_FUNCTION(__name)   __name(JSContext *c, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 
#define SMJS_FUNCTION_EXT(__name, __ext)   __name(JSContext *c, JSObject *obj, uintN argc, jsval *argv, jsval *rval, __ext)
 
#define SMJS_ARGS
 
#define SMJS_OBJ
 
#define SMJS_OBJ_CONSTRUCTOR(__classp)
 
#define SMJS_GET_RVAL   rval
 
#define SMJS_SET_RVAL(__rval)   *rval = __rval
 
#define SMJS_CALL_ARGS   c, obj, argc, argv, rval
 
#define SMJS_DECL_RVAL
 
#define SMJS_CHARS_FROM_STRING(__c, __str)   JS_GetStringBytes(__str)
 
#define SMJS_CHARS(__c, __val)   JS_GetStringBytes(JSVAL_TO_STRING(__val))
 
#define SMJS_FREE(__c, __str)
 
#define SMJS_ID_IS_STRING   JSVAL_IS_STRING
 
#define SMJS_ID_TO_STRING   JSVAL_TO_STRING
 
#define SMJS_ID_IS_INT   JSVAL_IS_INT
 
#define SMJS_ID_TO_INT   JSVAL_TO_INT
 
#define SMJS_CONSTRUCT_OBJECT(__ctx, __class, __parent)   JS_ConstructObject(__ctx, &(__class)->_class, 0, __parent)
 
#define SMJS_GET_PRIVATE(__ctx, __obj)   JS_GetPrivate(__ctx, __obj)
 
#define SMJS_SET_PRIVATE(__ctx, __obj, __val)   JS_SetPrivate(__ctx, __obj, __val)
 
#define SMJS_GET_PARENT(__ctx, __obj)   JS_GetParent(__ctx, __obj)
 
#define JS_SETUP_CLASS(the_class, cname, flag, getp, setp, fin)
 
#define JS_MAKE_DOUBLE(__c, __double)   DOUBLE_TO_JSVAL(JS_NewDouble(__c, __double) )
 
#define GF_JS_InstanceOf(_a, _b, __class, _d)   JS_InstanceOf(_a, _b, & (__class)->_class, NULL)
 
#define GF_JS_InitClass(cx, obj, parent_proto, clasp, constructor, nargs, ps, fs, static_ps, static_fs)   (clasp)->_proto = JS_InitClass(cx, obj, parent_proto, &(clasp)->_class, constructor, nargs, ps, fs, static_ps, static_fs);
 

Functions

JSBool gf_sg_js_has_instance (JSContext *c, JSObject *obj, jsval val, JSBool *vp)
 
JSObject * gf_sg_js_global_object (JSContext *cx, GF_JSClass *__class)
 

Data Structure Documentation

struct GF_JSClass
+ Collaboration diagram for GF_JSClass:
Data Fields
JSClass _class
JSObject * _proto

Macro Definition Documentation

#define JS_VERSION   170
#define SMJS_DECL_FUNC_PROP_SET (   func_name)    JSBool func_name(JSContext *c, JSObject *obj, jsval id, jsval *vp)
#define SMJS_FUNC_PROP_SET (   func_name)    SMJS_DECL_FUNC_PROP_SET(func_name) {
#define SMJS_FUNC_PROP_SET_NOVP   SMJS_FUNC_PROP_SET
#define SMJS_DECL_FUNC_PROP_GET (   func_name)    JSBool func_name(JSContext *c, JSObject *obj, jsval id, jsval *vp)
#define SMJS_FUNC_PROP_GET (   func_name)    SMJS_DECL_FUNC_PROP_GET( func_name) {
#define DECL_FINALIZE (   func_name)    void func_name(JSContext *c, JSObject *obj) {
#define SMJS_CALL_PROP_STUB ( )    JS_PropertyStub(c, obj, id, vp)
#define SMJS_PROP_SETTER   jsval id
#define SMJS_PROP_GETTER   jsval id
#define JS_PropertyStub_forSetter   JS_PropertyStub
#define SMJS_FUNCTION_SPEC (   __name,
  __fun,
  __argc 
)    {__name, __fun, __argc, 0, 0}
#define SMJS_PROPERTY_SPEC (   __name,
  __tinyid,
  __flags,
  __getter,
  __setter 
)    {__name, __tinyid, __flags, __getter, __setter}
#define SMJS_FUNCTION (   __name)    __name(JSContext *c, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
#define SMJS_FUNCTION_EXT (   __name,
  __ext 
)    __name(JSContext *c, JSObject *obj, uintN argc, jsval *argv, jsval *rval, __ext)
#define SMJS_ARGS
#define SMJS_OBJ
#define SMJS_OBJ_CONSTRUCTOR (   __classp)
#define SMJS_GET_RVAL   rval
#define SMJS_SET_RVAL (   __rval)    *rval = __rval
#define SMJS_CALL_ARGS   c, obj, argc, argv, rval
#define SMJS_DECL_RVAL
#define SMJS_CHARS_FROM_STRING (   __c,
  __str 
)    JS_GetStringBytes(__str)
#define SMJS_CHARS (   __c,
  __val 
)    JS_GetStringBytes(JSVAL_TO_STRING(__val))
#define SMJS_FREE (   __c,
  __str 
)
#define SMJS_ID_IS_STRING   JSVAL_IS_STRING
#define SMJS_ID_TO_STRING   JSVAL_TO_STRING
#define SMJS_ID_IS_INT   JSVAL_IS_INT
#define SMJS_ID_TO_INT   JSVAL_TO_INT
#define SMJS_CONSTRUCT_OBJECT (   __ctx,
  __class,
  __parent 
)    JS_ConstructObject(__ctx, &(__class)->_class, 0, __parent)
#define SMJS_GET_PRIVATE (   __ctx,
  __obj 
)    JS_GetPrivate(__ctx, __obj)
#define SMJS_SET_PRIVATE (   __ctx,
  __obj,
  __val 
)    JS_SetPrivate(__ctx, __obj, __val)
#define SMJS_GET_PARENT (   __ctx,
  __obj 
)    JS_GetParent(__ctx, __obj)
#define JS_SETUP_CLASS (   the_class,
  cname,
  flag,
  getp,
  setp,
  fin 
)
Value:
memset(&the_class, 0, sizeof(the_class)); \
the_class._class.name = cname; \
the_class._class.flags = flag; \
the_class._class.addProperty = JS_PropertyStub; \
the_class._class.delProperty = JS_PropertyStub; \
the_class._class.getProperty = getp; \
the_class._class.setProperty = setp; \
the_class._class.enumerate = JS_EnumerateStub; \
the_class._class.resolve = JS_ResolveStub; \
the_class._class.convert = JS_ConvertStub; \
the_class._class.finalize = (JSFinalizeOp) fin; \
the_class._class.hasInstance = gf_sg_js_has_instance;
JSBool gf_sg_js_has_instance(JSContext *c, JSObject *obj, jsval val, JSBool *vp)
#define JS_MAKE_DOUBLE (   __c,
  __double 
)    DOUBLE_TO_JSVAL(JS_NewDouble(__c, __double) )
#define GF_JS_InstanceOf (   _a,
  _b,
  __class,
  _d 
)    JS_InstanceOf(_a, _b, & (__class)->_class, NULL)
#define GF_JS_InitClass (   cx,
  obj,
  parent_proto,
  clasp,
  constructor,
  nargs,
  ps,
  fs,
  static_ps,
  static_fs 
)    (clasp)->_proto = JS_InitClass(cx, obj, parent_proto, &(clasp)->_class, constructor, nargs, ps, fs, static_ps, static_fs);

Function Documentation

JSBool gf_sg_js_has_instance ( JSContext *  c,
JSObject *  obj,
jsval  val,
JSBool *  vp 
)
JSObject* gf_sg_js_global_object ( JSContext *  cx,
GF_JSClass __class 
)