Loading...
Searching...
No Matches
janus_duktape_data.h File Reference
Plugins » Duktape plugin API

Janus Duktape data/session definition (headers). More...

`#include <duktape.h>`
`#include "duktape-deps/duk_console.h"`
`#include "duktape-deps/duk_module_duktape.h"`
`#include "plugin.h"`
`#include "debug.h"`
`#include "apierror.h"`
`#include "config.h"`
`#include "mutex.h"`
`#include "rtp.h"`
`#include "rtcp.h"`
`#include "sdp-utils.h"`
`#include "record.h"`
`#include "utils.h"`
Include dependency graph for janus_duktape_data.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures

struct | janus_duktape_session

## Typedefs

typedef struct janus_duktape_session | janus_duktape_session

## Functions

janus_duktape_session * | janus_duktape_lookup_session (janus_plugin_session *handle)

## Variables

volatile gint | duktape_initialized
volatile gint | duktape_stopping
janus_callbacks * | duktape_janus_core
duk_context * | duktape_ctx
janus_mutex | duktape_mutex
GHashTable * | duktape_sessions
GHashTable * | duktape_ids
janus_mutex | duktape_sessions_mutex

## Detailed Description

Janus Duktape data/session definition (headers).

Author
  Lorenzo Miniero loren.nosp@m.zo@m.nosp@m.eetec.nosp@m.ho.c.nosp@m.om

Copyright
  GNU General Public License v3

The Janus Duktape plugin implements all the mandatory hooks to allow the C code to interact with a custom JavaScript script, and vice-versa. That said, the janus_duktape_extra.c code allows for custom hooks to be added in C, to expose additional JavaScript functions and implement more complex media management than the one provided by the stock plugin. For this to work, though, the janus_duktape_session object and its indexing in the hashtable need to be defined externally, which is what this file is for.

Notice that all the management associated to sessions (creating or destroying sessions, locking their global mutex, updating the hashtable) is done in the core of the JavaScript plugin: here we only define them, so that they can be accessed/used by the extra code too.

Duktape plugin API

## Typedef Documentation

## janus_duktape_session

typedef struct janus_duktape_session janus_duktape_session

## Function Documentation

## janus_duktape_lookup_session()

janus_duktape_session * janus_duktape_lookup_session | ( | janus_plugin_session * | handle | ) |

## Variable Documentation

## duktape_ctx

duk_context* duktape_ctx

extern

## duktape_ids

GHashTable * duktape_ids

## duktape_initialized

volatile gint duktape_initialized

extern

## duktape_janus_core

janus_callbacks* duktape_janus_core

extern

## duktape_mutex

janus_mutex duktape_mutex

extern

## duktape_sessions

GHashTable* duktape_sessions

extern

## duktape_sessions_mutex

janus_mutex duktape_sessions_mutex

extern

## duktape_stopping

volatile gint duktape_stopping