1 #include "AudioEncoder.h" 2 #include "MyQScriptEngine.h" 3 4 namespace ADM_qtScript 5 { AudioEncoder(QScriptEngine * engine,IEditor * editor,ADM_audioEncoder * encoder,int encoderIndex,EditableAudioTrack * track)6 AudioEncoder::AudioEncoder( 7 QScriptEngine* engine, IEditor* editor, ADM_audioEncoder* encoder, int encoderIndex, 8 EditableAudioTrack* track) : QtScriptConfigObject(editor) 9 { 10 this->_encoderConf = NULL; 11 this->encoderPlugin = encoder; 12 this->encoderIndex = encoderIndex; 13 this->_track = track; 14 15 if (track == NULL) 16 { 17 this->resetConfiguration(); 18 } 19 20 this->_configObject = this->createConfigContainer( 21 engine, QtScriptConfigObject::defaultConfigGetterSetter); 22 } 23 ~AudioEncoder()24 AudioEncoder::~AudioEncoder() 25 { 26 if (this->_encoderConf) 27 { 28 delete this->_encoderConf; 29 } 30 } 31 constructor(QScriptContext * context,QScriptEngine * engine)32 QScriptValue AudioEncoder::constructor(QScriptContext *context, QScriptEngine *engine) 33 { 34 if (context->isCalledAsConstructor()) 35 { 36 AudioEncoder *audioEncProto = qobject_cast<AudioEncoder*>( 37 context->thisObject().prototype().toQObject()); 38 AudioEncoder *audioEnc = new AudioEncoder( 39 engine, static_cast<MyQScriptEngine*>(engine)->wrapperEngine->editor(), audioEncProto->encoderPlugin, 40 audioEncProto->encoderIndex); 41 42 return engine->newQObject(audioEnc, QScriptEngine::ScriptOwnership); 43 } 44 45 return engine->undefinedValue(); 46 } 47 48 getName(void)49 QScriptValue AudioEncoder::getName(void) 50 { 51 return this->encoderPlugin->menuName; 52 } 53 getConfiguration(void)54 QScriptValue AudioEncoder::getConfiguration(void) 55 { 56 return this->_configObject; 57 } 58 resetConfiguration(void)59 void AudioEncoder::resetConfiguration(void) 60 { 61 if (this->encoderPlugin && this->encoderPlugin->getDefaultConfiguration) 62 { 63 CONFcouple* couple; 64 65 this->encoderPlugin->getDefaultConfiguration(&couple); 66 this->setEncoderConfiguration(couple); 67 } 68 } 69 getConfCouple(CONFcouple ** conf,const QString & containerName)70 void AudioEncoder::getConfCouple(CONFcouple** conf, const QString& containerName) 71 { 72 *conf = CONFcouple::duplicate(this->getEncoderConfiguration()); 73 } 74 setConfCouple(CONFcouple * conf,const QString & containerName)75 void AudioEncoder::setConfCouple(CONFcouple* conf, const QString& containerName) 76 { 77 this->setEncoderConfiguration(CONFcouple::duplicate(conf)); 78 } 79 getEncoderConfiguration()80 CONFcouple* AudioEncoder::getEncoderConfiguration() 81 { 82 if (this->_track) 83 { 84 return this->_track->encoderConf; 85 } 86 else 87 { 88 return this->_encoderConf; 89 } 90 } 91 setEncoderConfiguration(CONFcouple * couple)92 void AudioEncoder::setEncoderConfiguration(CONFcouple *couple) 93 { 94 if (this->_encoderConf) 95 { 96 delete this->_encoderConf; 97 this->_encoderConf = NULL; 98 } 99 100 if (_track) 101 { 102 if (this->_track->encoderConf) 103 { 104 delete this->_track->encoderConf; 105 } 106 107 this->_track->encoderConf = couple; 108 } 109 else 110 { 111 this->_encoderConf = couple; 112 } 113 } 114 useEncoderForAudioOutput(EditableAudioTrack * track)115 void AudioEncoder::useEncoderForAudioOutput(EditableAudioTrack* track) 116 { 117 this->_track = track; 118 this->_track->encoderIndex = this->encoderIndex; 119 this->setEncoderConfiguration(CONFcouple::duplicate(this->_encoderConf)); 120 } 121 isEncoderUsed()122 bool AudioEncoder::isEncoderUsed() 123 { 124 return this->_track != NULL; 125 } 126 } 127