]> git.sesse.net Git - kdenlive/blobdiff - src/recmonitor.cpp
Make screen capture work with more than one jack port:
[kdenlive] / src / recmonitor.cpp
index 5671ccf4e5afa6edda6eade360d6e4bc471fb887..479392badc751f7226acfd2c2aaa7c9820c75295 100644 (file)
@@ -31,6 +31,7 @@
 #include <KIO/NetAccess>
 #include <KFileItem>
 #include <KMessageBox>
+#include <KApplication>
 
 #if KDE_IS_VERSION(4,2,0)
 #include <KDiskFreeSpaceInfo>
@@ -142,7 +143,9 @@ RecMonitor::RecMonitor(QString name, QWidget *parent) :
 
 RecMonitor::~RecMonitor()
 {
+#if KDE_IS_VERSION(4,2,0)
     m_spaceTimer.stop();
+#endif
     delete m_captureProcess;
     delete m_displayProcess;
 }
@@ -252,6 +255,7 @@ QPixmap RecMonitor::mergeSideBySide(const QPixmap& pix, const QString txt)
     res.fill(Qt::transparent);
     p.begin(&res);
     p.drawPixmap(0, 0, pix);
+    p.setPen(kapp->palette().text().color());
     p.drawText(QRect(pixWidth + 8, 0, strWidth, strHeight), 0, txt);
     p.end();
     return res;
@@ -277,7 +281,7 @@ void RecMonitor::slotDisconnect()
         m_didCapture = false;
         slotStartCapture(false);
         m_discAction->setIcon(KIcon("network-disconnect"));
-        m_discAction->setText(i18n("Disonnect"));
+        m_discAction->setText(i18n("Disconnect"));
         m_recAction->setEnabled(true);
         m_stopAction->setEnabled(true);
         m_playAction->setEnabled(true);
@@ -443,7 +447,9 @@ void RecMonitor::slotRecord()
         m_isCapturing = true;
         m_didCapture = true;
         m_captureProcess->write("c\n", 3);
+#if KDE_IS_VERSION(4,2,0)
         m_spaceTimer.start();
+#endif
         return;
     }
     if (m_captureProcess->state() == QProcess::NotRunning) {
@@ -489,12 +495,17 @@ void RecMonitor::slotRecord()
                 }
                 break;
             }
+            if (KdenliveSettings::rmd_hide_mouse()) m_captureArgs << "--no-cursor";
             m_isCapturing = true;
             if (KdenliveSettings::rmd_capture_audio()) {
                 m_captureArgs << "-freq" << KdenliveSettings::rmd_freq();
                 m_captureArgs << "-channels" << QString::number(KdenliveSettings::rmd_audio_channels());
                 if (KdenliveSettings::rmd_use_jack()) {
-                    m_captureArgs << "-use-jack" << KdenliveSettings::rmd_jackports();
+                    m_captureArgs << "-use-jack";
+                    QStringList ports = KdenliveSettings::rmd_jackports().split(" ", QString::SkipEmptyParts);
+                    for(int i = 0; i < ports.count(); ++i) {
+                        m_captureArgs << ports.at(i);
+                    }
                     if (KdenliveSettings::rmd_jack_buffer() > 0.0)
                         m_captureArgs << "-ring-buffer-size" << QString::number(KdenliveSettings::rmd_jack_buffer());
                 } else {
@@ -506,6 +517,8 @@ void RecMonitor::slotRecord()
             } else m_captureArgs << "--no-sound";
 
             if (KdenliveSettings::rmd_fullshots()) m_captureArgs << "--full-shots";
+            m_captureArgs << "--v_bitrate" << QString::number(KdenliveSettings::rmd_bitrate());
+            m_captureArgs << "--v_quality" << QString::number(KdenliveSettings::rmd_quality());
             m_captureArgs << "-workdir" << KdenliveSettings::currenttmpfolder();
             m_captureArgs << "-fps" << QString::number(KdenliveSettings::rmd_fps()) << "-o" << m_captureFile.path();
             m_captureProcess->start(KdenliveSettings::rmd_path(), m_captureArgs);
@@ -585,9 +598,9 @@ void RecMonitor::slotProcessStatus(QProcess::ProcessState status)
             else video_frame->setPixmap(mergeSideBySide(KIcon("video-display").pixmap(QSize(50, 50)), i18n("Press record button\nto start screen capture\nFiles will be saved in:\n%1", KdenliveSettings::capturefolder())));
         }
         m_isCapturing = false;
-        m_spaceTimer.stop();
 
 #if KDE_IS_VERSION(4,2,0)
+        m_spaceTimer.stop();
         // update free space info
         slotUpdateFreeSpace();
 #endif
@@ -702,4 +715,5 @@ void RecMonitor::slotReadDvgrabInfo()
     m_dvinfo.updateGeometry();
 }
 
-#include "recmonitor.moc"
\ No newline at end of file
+#include "recmonitor.moc"
+