npolibvlc.h
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:5k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * npolibvlc.h: official Javascript APIs
  3.  *****************************************************************************
  4.  * Copyright (C) 2002-2006 the VideoLAN team
  5.  *
  6.  * Authors: Damien Fouilleul <damien.fouilleul@laposte.net>
  7.  *
  8.  * This program is free software; you can redistribute it and/or modify
  9.  * it under the terms of the GNU General Public License as published by
  10.  * the Free Software Foundation; either version 2 of the License, or
  11.  * (at your option) any later version.
  12.  *
  13.  * This program is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.  * GNU General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU General Public License
  19.  * along with this program; if not, write to the Free Software
  20.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  21.  *****************************************************************************/
  22. /*
  23. ** defined runtime script objects
  24. */
  25. #include <vlc/vlc.h>
  26. #include "nporuntime.h"
  27. class LibvlcRootNPObject: public RuntimeNPObject
  28. {
  29. protected:
  30.     friend class RuntimeNPClass<LibvlcRootNPObject>;
  31.     LibvlcRootNPObject(NPP instance, const NPClass *aClass) :
  32.         RuntimeNPObject(instance, aClass),
  33.     audioObj(NULL),
  34.     inputObj(NULL),
  35.     playlistObj(NULL),
  36.     videoObj(NULL) {};
  37.     virtual ~LibvlcRootNPObject();
  38.     static const int propertyCount;
  39.     static const NPUTF8 * const propertyNames[];
  40.     InvokeResult getProperty(int index, NPVariant &result);
  41.     static const int methodCount;
  42.     static const NPUTF8 * const methodNames[];
  43.     InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
  44. private:
  45.     NPObject *audioObj;
  46.     NPObject *inputObj;
  47.     NPObject *playlistObj;
  48.     NPObject *videoObj;
  49. };
  50. class LibvlcAudioNPObject: public RuntimeNPObject
  51. {
  52. protected:
  53.     LibvlcAudioNPObject(NPP instance, const NPClass *aClass) :
  54.         RuntimeNPObject(instance, aClass) {};
  55.     virtual ~LibvlcAudioNPObject() {};
  56.     friend class RuntimeNPClass<LibvlcAudioNPObject>;
  57.     static const int propertyCount;
  58.     static const NPUTF8 * const propertyNames[];
  59.     InvokeResult getProperty(int index, NPVariant &result);
  60.     InvokeResult setProperty(int index, const NPVariant &value);
  61.     static const int methodCount;
  62.     static const NPUTF8 * const methodNames[];
  63.     InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
  64. };
  65. class LibvlcInputNPObject: public RuntimeNPObject
  66. {
  67. protected:
  68.     friend class RuntimeNPClass<LibvlcInputNPObject>;
  69.     LibvlcInputNPObject(NPP instance, const NPClass *aClass) :
  70.         RuntimeNPObject(instance, aClass) {};
  71.     virtual ~LibvlcInputNPObject() {};
  72.     static const int propertyCount;
  73.     static const NPUTF8 * const propertyNames[];
  74.     InvokeResult getProperty(int index, NPVariant &result);
  75.     InvokeResult setProperty(int index, const NPVariant &value);
  76.     static const int methodCount;
  77.     static const NPUTF8 * const methodNames[];
  78.     InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
  79. };
  80. class LibvlcPlaylistItemsNPObject: public RuntimeNPObject
  81. {
  82. protected:
  83.     friend class RuntimeNPClass<LibvlcPlaylistItemsNPObject>;
  84.     LibvlcPlaylistItemsNPObject(NPP instance, const NPClass *aClass) :
  85.         RuntimeNPObject(instance, aClass) {};
  86.     virtual ~LibvlcPlaylistItemsNPObject() {};
  87.     static const int propertyCount;
  88.     static const NPUTF8 * const propertyNames[];
  89.     InvokeResult getProperty(int index, NPVariant &result);
  90.     static const int methodCount;
  91.     static const NPUTF8 * const methodNames[];
  92.     InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
  93. };
  94. class LibvlcPlaylistNPObject: public RuntimeNPObject
  95. {
  96. protected:
  97.     friend class RuntimeNPClass<LibvlcPlaylistNPObject>;
  98.     LibvlcPlaylistNPObject(NPP instance, const NPClass *aClass) :
  99.     RuntimeNPObject(instance, aClass),
  100.     playlistItemsObj(NULL) {};
  101.     
  102.     virtual ~LibvlcPlaylistNPObject();
  103.     static const int propertyCount;
  104.     static const NPUTF8 * const propertyNames[];
  105.     InvokeResult getProperty(int index, NPVariant &result);
  106.     static const int methodCount;
  107.     static const NPUTF8 * const methodNames[];
  108.     InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
  109.     void parseOptions(const NPString &s, int *i_options, char*** ppsz_options);
  110.     void parseOptions(NPObject *obj, int *i_options, char*** ppsz_options);
  111. private:
  112.     NPObject*  playlistItemsObj;
  113. };
  114. class LibvlcVideoNPObject: public RuntimeNPObject
  115. {
  116. protected:
  117.     friend class RuntimeNPClass<LibvlcVideoNPObject>;
  118.     LibvlcVideoNPObject(NPP instance, const NPClass *aClass) :
  119.         RuntimeNPObject(instance, aClass) {};
  120.     virtual ~LibvlcVideoNPObject() {};
  121.     static const int propertyCount;
  122.     static const NPUTF8 * const propertyNames[];
  123.     InvokeResult getProperty(int index, NPVariant &result);
  124.     InvokeResult setProperty(int index, const NPVariant &value);
  125.     static const int methodCount;
  126.     static const NPUTF8 * const methodNames[];
  127.     InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
  128. };