root/src/terminal/input_sensor.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


/*
 *                      GPAC - Multimedia Framework C SDK
 *
 *                      Authors: Jean Le Feuvre
 *                      Copyright (c) Telecom ParisTech 2000-2012
 *                                      All rights reserved
 *
 *  This file is part of GPAC / Media terminal sub-project
 *
 *  GPAC is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU Lesser General Public License as published by
 *  the Free Software Foundation; either version 2, or (at your option)
 *  any later version.
 *
 *  GPAC 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 Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; see the file COPYING.  If not, write to
 *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 */

#ifndef _INPUT_SENSOR_H_
#define _INPUT_SENSOR_H_

#include <gpac/internal/terminal_dev.h>
/*input sensor defs*/
#include <gpac/nodes_mpeg4.h>

#ifndef GPAC_DISABLE_VRML

enum
{
        IS_KeySensor = 1,
        IS_StringSensor,
        IS_Mouse,
        IS_HTKSensor,
};

#define GPAC_HTK_DEMO  0


typedef struct
{
        /*parent scene*/
        GF_Scene *scene;
        /*list of attached nodes*/
        GF_List *is_nodes;
        /*stream ID*/
        u16 ES_ID;
        /*uncompressed data frame*/
        GF_List *ddf;

        GF_InputSensorDevice *io_dev;

        u32 type;

        /*string sensor sep char */
        s16 termChar, delChar;
        /*current typed text in UTF-8*/
        unsigned short enteredText[5000];
        u32 text_len;
        Bool is_local;

#if GPAC_HTK_DEMO
        GF_Thread *th;
        Bool htk_running;
        char szHTKPath[GF_MAX_PATH];
#endif

} ISPriv;


GF_BaseDecoder *gf_isdec_new(GF_ESD *esd, u32 PL);
void gf_isdec_del(GF_BaseDecoder *plug);
GF_Err gf_isdec_configure(GF_BaseDecoder *plug, GF_Scene *scene, Bool is_remote);


typedef struct
{
        /*stream context*/
        u16 ES_ID;
        Bool registered;
        GF_MediaObject *mo;
        M_InputSensor *is;
} ISStack;


void InitInputSensor(GF_Scene *scene, GF_Node *node);
void InputSensorModified(GF_Node *n);

void InitKeySensor(GF_Scene *scene, GF_Node *node);


typedef struct
{
        u16 enteredText[5000];
        u32 text_len;
        GF_Terminal *term;
} StringSensorStack;

void InitStringSensor(GF_Scene *scene, GF_Node *node);

#endif /*GPAC_DISABLE_VRML*/


#endif  /*_INPUT_SENSOR_H_*/


/* [<][>][^][v][top][bottom][index][help] */