+void KdenliveSettingsDialog::slotUpdateHDMIModes()
+{
+ QStringList modes = m_configCapture.kcfg_hdmi_capturedevice->itemData(m_configCapture.kcfg_hdmi_capturedevice->currentIndex()).toStringList();
+ m_configCapture.kcfg_hdmi_capturemode->clear();
+ m_configCapture.kcfg_hdmi_capturemode->insertItems(0, modes);
+}
+
+void KdenliveSettingsDialog::slotUpdateRmdRegionStatus()
+{
+ m_configCapture.region_group->setHidden(m_configCapture.kcfg_rmd_capture_type->currentIndex() != 1);
+}
+
+void KdenliveSettingsDialog::slotEnableCaptureFolder()
+{
+ m_configEnv.capturefolderurl->setEnabled(!m_configEnv.kcfg_capturetoprojectfolder->isChecked());
+}
+
+void KdenliveSettingsDialog::checkProfile()
+{
+ m_configProject.kcfg_profiles_list->clear();
+ QMap <QString, QString> profilesInfo = ProfilesDialog::getProfilesInfo();
+ QMapIterator<QString, QString> i(profilesInfo);
+ while (i.hasNext()) {
+ i.next();
+ m_configProject.kcfg_profiles_list->addItem(i.key(), i.value());
+ }
+
+ if (!KdenliveSettings::default_profile().isEmpty()) {
+ for (int i = 0; i < m_configProject.kcfg_profiles_list->count(); i++) {
+ if (m_configProject.kcfg_profiles_list->itemData(i).toString() == KdenliveSettings::default_profile()) {
+ m_configProject.kcfg_profiles_list->setCurrentIndex(i);
+ KdenliveSettings::setProfiles_list(i);
+ break;
+ }
+ }
+ }
+}
+
+void KdenliveSettingsDialog::initDevices()
+{
+ // Fill audio drivers
+ m_configSdl.kcfg_audio_driver->addItem(i18n("Automatic"), QString());
+#ifndef Q_WS_MAC
+ m_configSdl.kcfg_audio_driver->addItem(i18n("OSS"), "dsp");
+ m_configSdl.kcfg_audio_driver->addItem(i18n("ALSA"), "alsa");
+ m_configSdl.kcfg_audio_driver->addItem(i18n("PulseAudio"), "pulse");
+ m_configSdl.kcfg_audio_driver->addItem(i18n("OSS with DMA access"), "dma");
+ m_configSdl.kcfg_audio_driver->addItem(i18n("Esound daemon"), "esd");
+ m_configSdl.kcfg_audio_driver->addItem(i18n("ARTS daemon"), "artsc");
+#endif
+
+ if (!KdenliveSettings::audiodrivername().isEmpty())
+ for (int i = 1; i < m_configSdl.kcfg_audio_driver->count(); i++) {
+ if (m_configSdl.kcfg_audio_driver->itemData(i).toString() == KdenliveSettings::audiodrivername()) {
+ m_configSdl.kcfg_audio_driver->setCurrentIndex(i);
+ KdenliveSettings::setAudio_driver((uint) i);
+ }
+ }
+
+ // Fill video drivers
+ m_configSdl.kcfg_video_driver->addItem(i18n("Automatic"), QString());
+#ifndef Q_WS_MAC
+ m_configSdl.kcfg_video_driver->addItem(i18n("XVideo"), "x11");
+ m_configSdl.kcfg_video_driver->addItem(i18n("X11"), "x11_noaccel");
+ m_configSdl.kcfg_video_driver->addItem(i18n("XFree86 DGA 2.0"), "dga");
+ m_configSdl.kcfg_video_driver->addItem(i18n("Nano X"), "nanox");
+ m_configSdl.kcfg_video_driver->addItem(i18n("Framebuffer console"), "fbcon");
+ m_configSdl.kcfg_video_driver->addItem(i18n("Direct FB"), "directfb");
+ m_configSdl.kcfg_video_driver->addItem(i18n("SVGAlib"), "svgalib");
+ m_configSdl.kcfg_video_driver->addItem(i18n("General graphics interface"), "ggi");
+ m_configSdl.kcfg_video_driver->addItem(i18n("Ascii art library"), "aalib");
+#endif
+
+ // Fill the list of audio playback devices
+ m_configSdl.kcfg_audio_device->addItem(i18n("Default"), QString());
+ m_configCapture.kcfg_rmd_alsa_device->addItem(i18n("Default"), QString());
+ if (!KStandardDirs::findExe("aplay").isEmpty()) {
+ m_readProcess.setOutputChannelMode(KProcess::OnlyStdoutChannel);
+ m_readProcess.setProgram("aplay", QStringList() << "-l");
+ connect(&m_readProcess, SIGNAL(readyReadStandardOutput()) , this, SLOT(slotReadAudioDevices()));
+ m_readProcess.execute(5000);
+ } else {
+ // If aplay is not installed on the system, parse the /proc/asound/pcm file
+ QFile file("/proc/asound/pcm");
+ if (file.open(QIODevice::ReadOnly)) {
+ QTextStream stream(&file);
+ QString line;
+ QString deviceId;
+ while (!stream.atEnd()) {
+ line = stream.readLine();
+ if (line.contains("playback")) {
+ deviceId = line.section(':', 0, 0);
+ m_configSdl.kcfg_audio_device->addItem(line.section(':', 1, 1), "plughw:" + QString::number(deviceId.section('-', 0, 0).toInt()) + ',' + QString::number(deviceId.section('-', 1, 1).toInt()));
+ }
+ if (line.contains("capture")) {
+ deviceId = line.section(':', 0, 0);
+ m_configCapture.kcfg_rmd_alsa_device->addItem(line.section(':', 1, 1), "plughw:" + QString::number(deviceId.section('-', 0, 0).toInt()) + ',' + QString::number(deviceId.section('-', 1, 1).toInt()));
+ }
+ }
+ file.close();
+ }
+ }
+ if (!KdenliveSettings::audiodevicename().isEmpty()) {
+ // Select correct alsa device
+ int ix = m_configSdl.kcfg_audio_device->findData(KdenliveSettings::audiodevicename());
+ m_configSdl.kcfg_audio_device->setCurrentIndex(ix);
+ KdenliveSettings::setAudio_device(ix);
+ }
+ if (!KdenliveSettings::rmd_alsadevicename().isEmpty()) {
+ // Select correct alsa device
+ int ix = m_configCapture.kcfg_rmd_alsa_device->findData(KdenliveSettings::rmd_alsadevicename());
+ m_configCapture.kcfg_rmd_alsa_device->setCurrentIndex(ix);
+ KdenliveSettings::setRmd_alsa_device(ix);
+ }
+}
+
+
+void KdenliveSettingsDialog::slotReadAudioDevices()
+{
+ QString result = QString(m_readProcess.readAllStandardOutput());
+ kDebug() << "// / / / / / READING APLAY: ";
+ kDebug() << result;
+ QStringList lines = result.split('\n');
+ foreach(const QString & data, lines) {
+ kDebug() << "// READING LINE: " << data;
+ if (data.simplified().startsWith("card")) {
+ QString card = data.section(':', 0, 0).section(' ', -1);
+ QString device = data.section(':', 1, 1).section(' ', -1);
+ m_configSdl.kcfg_audio_device->addItem(data.section(':', -1), "plughw:" + card + ',' + device);
+ m_configCapture.kcfg_rmd_alsa_device->addItem(data.section(':', -1), "plughw:" + card + ',' + device);
+ }
+ }
+}
+
+void KdenliveSettingsDialog::showPage(int page, int option)
+{