1 #ifndef QtScriptEngine_h 2 #define QtScriptEngine_h 3 4 #include <map> 5 #include <set> 6 #include <vector> 7 8 #include "IScriptEngine.h" 9 #include "ADM_muxerInternal.h" 10 #include "ADM_coreVideoEncoderInternal.h" 11 #include "audioencoderInternal.h" 12 13 struct QMetaObject; 14 class QScriptContext; 15 class QScriptEngine; 16 class QScriptValue; 17 class QString; 18 19 namespace ADM_qtScript 20 { 21 class AudioEncoder; 22 class Muxer; 23 class VideoEncoder; 24 class AdmScriptMapper; 25 26 class QtScriptEngine : public IScriptEngine 27 { 28 private: 29 IEditor *_editor; 30 std::set<eventHandlerFunc*> _eventHandlerSet; 31 ADM_qtScript::AdmScriptMapper *_mapper; 32 33 void copyEnumsToScriptObject(QScriptEngine *engine, const QMetaObject *metaObject, QScriptValue *object); 34 static QScriptValue executeFunction(QScriptContext *context, QScriptEngine *engine); 35 static QScriptValue includeFunction(QScriptContext *context, QScriptEngine *engine); 36 static QScriptValue printFunction(QScriptContext *context, QScriptEngine *engine); 37 void registerAudioEncoderPlugins(QScriptEngine *engine); 38 void registerMuxerPlugins(QScriptEngine *engine, std::map<ADM_dynMuxer*, ADM_qtScript::Muxer*>* muxers); 39 void registerDialogClasses(QScriptEngine *engine); 40 void registerScriptClasses( 41 QScriptEngine *engine, std::map<ADM_dynMuxer*, ADM_qtScript::Muxer*>* muxers, 42 std::map<ADM_videoEncoder6*, ADM_qtScript::VideoEncoder*>* videoEncoders); 43 void registerScriptEnums( 44 QScriptEngine *engine, const QString& parentPropertyName, const QMetaObject* metaObject); 45 void registerVideoEncoderPlugins( 46 QScriptEngine *engine, std::map<ADM_videoEncoder6*, ADM_qtScript::VideoEncoder*>* encoders); 47 void registerVideoFilterPlugins(QScriptEngine *engine); 48 bool runScript(const QString& script, const QString& name, RunMode mode); 49 50 public: 51 QtScriptEngine(); 52 ~QtScriptEngine(); 53 54 void callEventHandlers(EventType eventType, const char *fileName, int lineNo, const char *message); 55 Capabilities capabilities(); 56 IScriptWriter* createScriptWriter(); 57 std::string defaultFileExtension(); 58 IEditor* editor(); 59 void initialise(IEditor *videoBody); 60 std::string name(); 61 int maturityRanking(); 62 void openDebuggerShell(); 63 void registerEventHandler(eventHandlerFunc *func); 64 std::string referenceUrl(); 65 bool runScript(std::string script, RunMode mode); 66 bool runScriptFile(std::string name, RunMode mode); 67 void unregisterEventHandler(eventHandlerFunc *func); 68 }; 69 } 70 #endif 71