void VolumeFaderEffect::setParameterValue(const EffectParameter &p, const QVariant &newValue) { K_XT(VolumeFaderEffect); const int parameterId = p.id(); debug() << Q_FUNC_INFO << parameterId << newValue; switch (static_cast<ParameterIds>(parameterId)) { case VolumeParameter: setVolume(newValue.toDouble()); break; case FadeCurveParameter: setFadeCurve(static_cast<Phonon::VolumeFaderEffect::FadeCurve>(newValue.toInt())); break; case FadeToParameter: xt->m_parameters.fadeTo = newValue.toDouble(); break; case FadeTimeParameter: xt->m_parameters.fadeTime = newValue.toInt(); break; case StartFadeParameter: if (newValue.toBool()) { fadeTo(xt->m_parameters.fadeTo, xt->m_parameters.fadeTime); } break; default: qWarning() << "request for unknown parameter " << parameterId; break; } }
void VolumeFaderEffect::setFadeCurve(Phonon::VolumeFaderEffect::FadeCurve curve) { K_XT(VolumeFaderEffect); //debug() << Q_FUNC_INFO << curve; xt->m_parameters.fadeCurve = curve; }
void VolumeFaderEffect::setVolume(float volume) { K_XT(VolumeFaderEffect); //debug() << Q_FUNC_INFO << volume; xt->m_parameters.currentVolume = volume; }
void VolumeFaderEffect::fadeTo(float volume, int fadeTime) { K_XT(VolumeFaderEffect); //debug() << Q_FUNC_INFO << volume << fadeTime; xt->m_parameters.fadeTo = volume; xt->m_parameters.fadeTime = fadeTime; if (xt->m_pluginApi) { xt->m_pluginApi->set_parameters(xt->m_plugin, &xt->m_parameters); } }
void AudioOutput::aboutToChangeXineEngine() { K_XT(AudioOutput); if (xt->m_audioPort) { AudioOutputXT *xt2 = new AudioOutputXT; xt2->m_xine = xt->m_xine; xt2->m_audioPort = xt->m_audioPort; xt->m_audioPort = 0; KeepReference<> *keep = new KeepReference<>; keep->addObject(xt2); keep->ready(); } }
void VideoDataOutput::setFrontendObject(Experimental::AbstractVideoDataOutput *x) { K_XT(VideoDataOutput); if (xt->setFrontendObject(x)) { // we need to recreate and rewire the output SourceNode *src = source(); if (src) { QList<WireCall> wireCall; wireCall << WireCall(src, this); QCoreApplication::postEvent(XineThread::instance(), new RewireEvent(wireCall, QList<WireCall>())); } } }
void VideoDataOutput::aboutToChangeXineEngine() { K_XT(VideoDataOutput); if (xt->m_videoPort) { VideoDataOutputXT *xt2 = new VideoDataOutputXT(); xt2->m_xine = xt->m_xine; xt2->m_videoPort = xt->m_videoPort; xt2->m_needNewPort = false; xt->m_needNewPort = true; xt->m_videoPort = 0; KeepReference<> *keep = new KeepReference<>; keep->addObject(xt2); keep->ready(); } }
bool AudioOutput::setOutputDevice(const AudioOutputDevice &newDevice) { K_XT(AudioOutput); if (!xt->m_xine) { // remember the choice until we have a xine_t m_device = newDevice; return true; } xine_audio_port_t *port = createPort(newDevice); if (!port) { debug() << Q_FUNC_INFO << "new audio port is invalid"; return false; } KeepReference<> *keep = new KeepReference<>; keep->addObject(xt); keep->ready(); AudioOutputXT *newXt = new AudioOutputXT; newXt->m_audioPort = port; newXt->m_xine = xt->m_xine; m_threadSafeObject = newXt; m_device = newDevice; SourceNode *src = source(); if (src) { QList<WireCall> wireCall; QList<WireCall> unwireCall; wireCall << WireCall(src, this); unwireCall << WireCall(src, QExplicitlySharedDataPointer<SinkNodeXT>(xt)); QCoreApplication::postEvent(XineThread::instance(), new RewireEvent(wireCall, unwireCall)); graphChanged(); } AudioDataOutputXT *dataOutput = dynamic_cast<AudioDataOutputXT*>(m_source->threadSafeObject().data()); if (dataOutput) dataOutput->intercept(xt->m_audioPort); return true; }
void AudioOutput::xineEngineChanged() { K_XT(AudioOutput); if (xt->m_xine) { xine_audio_port_t *port = createPort(m_device); if (!port) { debug() << Q_FUNC_INFO << "stored audio port is invalid"; QMetaObject::invokeMethod(this, "audioDeviceFailed", Qt::QueuedConnection); return; } // our XT object is in a wirecall, better not delete it Q_ASSERT(xt->m_audioPort == 0); xt->m_audioPort = port; AudioDataOutputXT *dataOutput = dynamic_cast<AudioDataOutputXT*>(m_source->threadSafeObject().data()); if (dataOutput) dataOutput->intercept(xt->m_audioPort); } }
AudioDataOutput::~AudioDataOutput() { K_XT(AudioDataOutput); delete xt; }