]> git.sesse.net Git - kdenlive/commitdiff
Merge remote-tracking branch 'origin/master' into bugfix/jogshuttle
authorEd Rogalsky <ed.rogalsky@googlemail.com>
Tue, 20 Nov 2012 09:40:20 +0000 (10:40 +0100)
committerEd Rogalsky <ed.rogalsky@googlemail.com>
Tue, 20 Nov 2012 09:40:20 +0000 (10:40 +0100)
src/jogshuttle.cpp
src/jogshuttle.h
src/kdenlivesettingsdialog.cpp
src/mainwindow.cpp
src/widgets/configjogshuttle_ui.ui

index 16fd171f4d0e17ce80a982a84c1647716de610db..f9049511dceefcc568ecf037e33c2fdec5b3ea0c 100644 (file)
@@ -207,7 +207,7 @@ JogShuttle::JogShuttle(QString device, QObject *parent) :
 
 JogShuttle::~JogShuttle()
 {
-    if (m_shuttleProcess.isRunning()) m_shuttleProcess.exit();
+       stopDevice();
 }
 
 void JogShuttle::initDevice(QString device)
@@ -222,8 +222,19 @@ void JogShuttle::initDevice(QString device)
 
 void JogShuttle::stopDevice()
 {
-    if (m_shuttleProcess.isRunning())
+    if (m_shuttleProcess.isRunning()) {
+       /* the read fd is in blocking mode => stop_me is broken at the moment */
         m_shuttleProcess.stop_me = true;
+        m_shuttleProcess.exit();
+        /* give the thread some time to shutdown */
+        m_shuttleProcess.wait(100);
+
+        /* if still running - do it in the hardcore way */
+        if (m_shuttleProcess.isRunning()) {
+               m_shuttleProcess.terminate();
+            kDebug() << "/// terminate jogshuttle process\n";
+        }
+    }
 }
 
 void JogShuttle::customEvent(QEvent* e)
index 34673fa65348c697c1b622ae749606273a1c8f64..9a6ecc0287c5dbb01483b724f49c492e6dc411c7 100644 (file)
@@ -40,7 +40,7 @@ public:
     int shuttlecounter;
     unsigned short jogvalue;
     bool isWorking();
-    bool stop_me;
+    volatile bool stop_me;
     QString m_device;
 
 private:
index 58d713769f8bd6de11b58c5d3b02a74cd44f2e7a..c42b1d7946d8a51e13ef2ccd23df9c30822f2155 100644 (file)
@@ -137,11 +137,22 @@ KdenliveSettingsDialog::KdenliveSettingsDialog(const QMap<QString, QString>& map
     m_configShuttle.shuttledisabled->hide();
 
     // Store the button pointers into an array for easier handling them in the other functions.
+    // TODO: impl enumerator or live with cut and paste :-)))
     m_shuttle_buttons.push_back(m_configShuttle.shuttle1);
     m_shuttle_buttons.push_back(m_configShuttle.shuttle2);
     m_shuttle_buttons.push_back(m_configShuttle.shuttle3);
     m_shuttle_buttons.push_back(m_configShuttle.shuttle4);
     m_shuttle_buttons.push_back(m_configShuttle.shuttle5);
+    m_shuttle_buttons.push_back(m_configShuttle.shuttle6);
+    m_shuttle_buttons.push_back(m_configShuttle.shuttle7);
+    m_shuttle_buttons.push_back(m_configShuttle.shuttle8);
+    m_shuttle_buttons.push_back(m_configShuttle.shuttle9);
+    m_shuttle_buttons.push_back(m_configShuttle.shuttle10);
+    m_shuttle_buttons.push_back(m_configShuttle.shuttle11);
+    m_shuttle_buttons.push_back(m_configShuttle.shuttle12);
+    m_shuttle_buttons.push_back(m_configShuttle.shuttle13);
+    m_shuttle_buttons.push_back(m_configShuttle.shuttle14);
+    m_shuttle_buttons.push_back(m_configShuttle.shuttle15);
 
     // populate the buttons with the current configuration. The items are sorted
     // according to the user-selected language, so they do not appear in random order.
index f22a0e4412349016d55a043ffa039f8083b019eb..f9d5900be0d2a9cd872b9d3974acde4ae8144caf 100644 (file)
@@ -676,6 +676,12 @@ MainWindow::~MainWindow()
     if (m_stopmotion) {
         delete m_stopmotion;
     }
+
+#ifdef USE_JOGSHUTTLE
+    if (m_jogProcess)
+       delete m_jogProcess;
+#endif
+
     m_effectStack->slotClipItemSelected(NULL);
     m_transitionConfig->slotTransitionItemSelected(NULL, 0, QPoint(), false);
 
index 455a3b17b50a3be4fc00bee08563d63900368d75..2b69f8c887ff9bc4365f5a55c24de47fea53575b 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>287</width>
-    <height>253</height>
+    <width>299</width>
+    <height>548</height>
    </rect>
   </property>
   <layout class="QGridLayout" name="gridLayout_2">
       <string>Device configuration</string>
      </property>
      <layout class="QGridLayout" name="gridLayout">
+      <item row="12" column="0">
+       <widget class="QLabel" name="label_13">
+        <property name="text">
+         <string>Button 12</string>
+        </property>
+       </widget>
+      </item>
+      <item row="14" column="0">
+       <widget class="QLabel" name="label_15">
+        <property name="text">
+         <string>Button 14</string>
+        </property>
+       </widget>
+      </item>
+      <item row="13" column="0">
+       <widget class="QLabel" name="label_14">
+        <property name="text">
+         <string>Button 13</string>
+        </property>
+       </widget>
+      </item>
+      <item row="11" column="0">
+       <widget class="QLabel" name="label_12">
+        <property name="text">
+         <string>Button 11</string>
+        </property>
+       </widget>
+      </item>
+      <item row="7" column="0">
+       <widget class="QLabel" name="label_8">
+        <property name="text">
+         <string>Button  7</string>
+        </property>
+       </widget>
+      </item>
+      <item row="8" column="0">
+       <widget class="QLabel" name="label_9">
+        <property name="text">
+         <string>Button  8</string>
+        </property>
+       </widget>
+      </item>
+      <item row="9" column="0">
+       <widget class="QLabel" name="label_10">
+        <property name="text">
+         <string>Button  9</string>
+        </property>
+       </widget>
+      </item>
+      <item row="6" column="0">
+       <widget class="QLabel" name="label_6">
+        <property name="text">
+         <string>Button  6</string>
+        </property>
+       </widget>
+      </item>
       <item row="0" column="0">
        <widget class="QLabel" name="label">
         <property name="text">
       <item row="1" column="0">
        <widget class="QLabel" name="label_2">
         <property name="text">
-         <string>Button 1</string>
+         <string>Button  1</string>
         </property>
        </widget>
       </item>
       <item row="2" column="0">
        <widget class="QLabel" name="label_4">
         <property name="text">
-         <string>Button 2</string>
+         <string>Button  2</string>
         </property>
        </widget>
       </item>
       <item row="3" column="0">
        <widget class="QLabel" name="label_3">
         <property name="text">
-         <string>Button 3</string>
+         <string>Button  3</string>
         </property>
        </widget>
       </item>
       <item row="3" column="1" colspan="2">
        <widget class="KComboBox" name="shuttle3"/>
       </item>
+      <item row="4" column="1" colspan="2">
+       <widget class="KComboBox" name="shuttle4"/>
+      </item>
       <item row="4" column="0">
        <widget class="QLabel" name="label_7">
         <property name="text">
-         <string>Button 4</string>
+         <string>Button  4</string>
         </property>
        </widget>
       </item>
-      <item row="4" column="1" colspan="2">
-       <widget class="KComboBox" name="shuttle4"/>
-      </item>
       <item row="5" column="0">
        <widget class="QLabel" name="label_5">
         <property name="text">
-         <string>Button 5</string>
+         <string>Button  5</string>
         </property>
        </widget>
       </item>
       <item row="5" column="1" colspan="2">
        <widget class="KComboBox" name="shuttle5"/>
       </item>
+      <item row="10" column="0">
+       <widget class="QLabel" name="label_11">
+        <property name="text">
+         <string>Button 10</string>
+        </property>
+       </widget>
+      </item>
+      <item row="6" column="1" colspan="2">
+       <widget class="KComboBox" name="shuttle6"/>
+      </item>
+      <item row="7" column="1" colspan="2">
+       <widget class="KComboBox" name="shuttle7"/>
+      </item>
+      <item row="8" column="1" colspan="2">
+       <widget class="KComboBox" name="shuttle8"/>
+      </item>
+      <item row="9" column="1" colspan="2">
+       <widget class="KComboBox" name="shuttle9"/>
+      </item>
+      <item row="10" column="1" colspan="2">
+       <widget class="KComboBox" name="shuttle10"/>
+      </item>
+      <item row="15" column="0">
+       <widget class="QLabel" name="label_16">
+        <property name="text">
+         <string>Button 15</string>
+        </property>
+       </widget>
+      </item>
+      <item row="11" column="1" colspan="2">
+       <widget class="KComboBox" name="shuttle11"/>
+      </item>
+      <item row="12" column="1" colspan="2">
+       <widget class="KComboBox" name="shuttle12"/>
+      </item>
+      <item row="13" column="1" colspan="2">
+       <widget class="KComboBox" name="shuttle13"/>
+      </item>
+      <item row="14" column="1" colspan="2">
+       <widget class="KComboBox" name="shuttle14"/>
+      </item>
+      <item row="15" column="1" colspan="2">
+       <widget class="KComboBox" name="shuttle15"/>
+      </item>
      </layout>
     </widget>
    </item>
   </layout>
  </widget>
  <customwidgets>
-  <customwidget>
-   <class>KLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>klineedit.h</header>
-  </customwidget>
   <customwidget>
    <class>KComboBox</class>
    <extends>QComboBox</extends>
    <header>kcombobox.h</header>
   </customwidget>
+  <customwidget>
+   <class>KLineEdit</class>
+   <extends>QLineEdit</extends>
+   <header>klineedit.h</header>
+  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>