[SCM] kmidimon packaging branch, master, updated. debian/0.7.1-1-22-ga3216d5

adiknoth-guest at users.alioth.debian.org adiknoth-guest at users.alioth.debian.org
Mon May 17 10:27:08 UTC 2010


The following commit has been merged in the master branch:
commit 4505e0dae2572033f39967d0369380f5bee50121
Author: Adrian Knoth <adi at drcomp.erfurt.thur.de>
Date:   Mon May 17 11:58:38 2010 +0200

    Backport drumstick fixes from upstream.
    
    kmidimon currently uses a builtin version of drumstick. The lib is
    currently packaged for Debian (#579153). Upon completion, we can drop
    these patches and rely on the shared libdrumstick instead.

diff --git a/debian/patches/drumstick-alsa.patch b/debian/patches/drumstick-alsa.patch
new file mode 100644
index 0000000..b6826ca
--- /dev/null
+++ b/debian/patches/drumstick-alsa.patch
@@ -0,0 +1,225 @@
+Description: Don't cache the MIDI port list.
+ The patch is included in drumstick-0.3.1 and can be dropped upon completion
+ of #579153.
+Origin: http://drumstick.svn.sourceforge.net/viewvc/drumstick?view=rev&revision=165
+
+Index: library/include/alsaclient.h
+===================================================================
+--- library/include/alsaclient.h	(revision 164)
++++ library/include/alsaclient.h	(revision 165)
+@@ -313,6 +313,7 @@
+     bool getEventsEnabled() const { return m_eventsEnabled; }
+     /** Sets a sequencer event handler enabling the callback delivery mode */
+     void setHandler(SequencerEventHandler* handler)  { m_handler = handler; }
++    bool parseAddress( const QString& straddr, snd_seq_addr& result );
+ 
+ signals:
+     /** Signal emitted when an event is received */
+Index: library/src/alsaclient.cpp
+===================================================================
+--- library/src/alsaclient.cpp	(revision 164)
++++ library/src/alsaclient.cpp	(revision 165)
+@@ -47,8 +47,8 @@
+ /**
+ @mainpage drumstick Documentation
+ @author Copyright &copy; 2009-2010 Pedro López-Cabanillas &lt;plcl AT users.sf.net&gt;
+- at date 2010-03-09
+- at version 0.3.0
++ at date 2010-04-18
++ at version 0.3.1
+ 
+ This document is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License.
+ To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/
+@@ -253,7 +253,7 @@
+  * is emitted. In any case, the event pointer must be deleted by the receiver
+  * method.
+  *
+- * @see http://doc.trolltech.com/4.5/threads.html#qobject-reentrancy
++ * @see http://doc.trolltech.com/threads.html#qobject-reentrancy
+  *
+  * @section EventOutput Output
+  *
+@@ -656,7 +656,7 @@
+                     }
+                 } else {
+                     // finally, process signals
+-                    emit  eventReceived(event->clone());
++                    emit eventReceived(event->clone());
+                 }
+             }
+             delete event;
+@@ -789,7 +789,8 @@
+ MidiClient::getClientName(const int clientId)
+ {
+     ClientInfoList::Iterator it;
+-    if (m_NeedRefreshClientList) readClients();
++    if (m_NeedRefreshClientList)
++        readClients();
+     for (it = m_ClientList.begin(); it != m_ClientList.end(); ++it) {
+         if ((*it).getClientId() == clientId) {
+             return (*it).getName();
+@@ -1229,9 +1230,8 @@
+ PortInfoList
+ MidiClient::getAvailableInputs()
+ {
+-    if (m_NeedRefreshClientList || m_InputsAvail.empty()) {
+-        updateAvailablePorts();
+-    }
++    m_NeedRefreshClientList = true;
++    updateAvailablePorts();
+     return m_InputsAvail;
+ }
+ 
+@@ -1242,9 +1242,8 @@
+ PortInfoList
+ MidiClient::getAvailableOutputs()
+ {
+-    if (m_NeedRefreshClientList || m_OutputsAvail.empty()) {
+-        updateAvailablePorts();
+-    }
++    m_NeedRefreshClientList = true;
++    updateAvailablePorts();
+     return m_OutputsAvail;
+ }
+ 
+@@ -1624,6 +1623,49 @@
+ }
+ 
+ /**
++ * Parse a text address representation, returning an ALSA address record.
++ *
++ * This function can be used as a replacement of the standard ALSA function
++ * snd_seq_parse_address().
++ *
++ * @param straddr source text address representation
++ * @param addr returned ALSA address record
++ * @return true if the text address was successfully parsed
++ */
++bool
++MidiClient::parseAddress( const QString& straddr, snd_seq_addr& addr )
++{
++    bool ok(false);
++    QString testClient, testPort;
++    ClientInfoList::ConstIterator cit;
++    int pos = straddr.indexOf(':');
++    if (pos > -1) {
++        testClient = straddr.left(pos);
++        testPort = straddr.mid(pos+1);
++    } else {
++        testClient = straddr;
++        testPort = '0';
++    }
++    addr.client = testClient.toInt(&ok);
++    if (ok)
++        addr.port = testPort.toInt(&ok);
++    if (!ok) {
++        if (m_NeedRefreshClientList)
++            readClients();
++        for ( cit = m_ClientList.constBegin();
++              cit != m_ClientList.constEnd(); ++cit ) {
++            ClientInfo ci = *cit;
++            if (testClient.compare(ci.getName(), Qt::CaseInsensitive) == 0) {
++                addr.client = ci.getClientId();
++                addr.port = testPort.toInt(&ok);
++                return ok;
++            }
++        }
++    }
++    return ok;
++}
++
++/**
+  * Returns true or false depending on the input thread state.
+  * @return true if the input thread is stopped.
+  */
+Index: library/src/alsaport.cpp
+===================================================================
+--- library/src/alsaport.cpp	(revision 164)
++++ library/src/alsaport.cpp	(revision 165)
+@@ -689,9 +689,10 @@
+     if ((m_MidiClient != NULL) && (m_MidiClient->getHandle() != NULL))
+     {
+         subs.setSender(m_Info.getAddr());
+-        snd_seq_parse_address(m_MidiClient->getHandle(), &addr, name.toLocal8Bit().data());
+-        subs.setDest(&addr);
+-        subscribe(&subs);
++        if (m_MidiClient->parseAddress(name, addr)) {
++            subs.setDest(&addr);
++            subscribe(&subs);
++        }
+     }
+ }
+ 
+@@ -707,9 +708,10 @@
+     if ((m_MidiClient != NULL) && (m_MidiClient->getHandle() != NULL))
+     {
+         subs.setSender(m_Info.getAddr());
+-        snd_seq_parse_address(m_MidiClient->getHandle(), &addr, name.toLocal8Bit().data());
+-        subs.setDest(&addr);
+-        unsubscribe(&subs);
++        if (m_MidiClient->parseAddress(name, addr)) {
++            subs.setDest(&addr);
++            unsubscribe(&subs);
++        }
+     }
+ }
+ 
+@@ -780,16 +782,17 @@
+  * @param name A string representing a client:port pair
+  */
+ void
+-MidiPort::subscribeFrom( QString const& name)
++MidiPort::subscribeFrom( QString const& name )
+ {
+     Subscription subs;
+     snd_seq_addr addr;
+     if ((m_MidiClient != NULL) && (m_MidiClient->getHandle() != NULL))
+     {
+-        snd_seq_parse_address(m_MidiClient->getHandle(), &addr, name.toLocal8Bit().data());
+-        subs.setSender(&addr);
+-        subs.setDest(m_Info.getAddr());
+-        subscribe(&subs);
++        if (m_MidiClient->parseAddress(name, addr)) {
++            subs.setSender(&addr);
++            subs.setDest(m_Info.getAddr());
++            subscribe(&subs);
++        }
+     }
+ }
+ 
+@@ -798,16 +801,17 @@
+  * @param name A string representing a client:port pair
+  */
+ void
+-MidiPort::unsubscribeFrom( QString const& name)
++MidiPort::unsubscribeFrom( QString const& name )
+ {
+     Subscription subs;
+     snd_seq_addr addr;
+     if ((m_MidiClient != NULL) && (m_MidiClient->getHandle() != NULL))
+     {
+-        snd_seq_parse_address(m_MidiClient->getHandle(), &addr, name.toLocal8Bit().data());
+-        subs.setSender(&addr);
+-        subs.setDest(m_Info.getAddr());
+-        unsubscribe(&subs);
++        if (m_MidiClient->parseAddress(name, addr)) {
++            subs.setSender(&addr);
++            subs.setDest(m_Info.getAddr());
++            unsubscribe(&subs);
++        }
+     }
+ }
+ 
+Index: CMakeLists.txt
+===================================================================
+--- CMakeLists.txt	(revision 164)
++++ CMakeLists.txt	(revision 165)
+@@ -44,6 +44,8 @@
+ SET(CMAKE_INCLUDE_CURRENT_DIR TRUE)
+ SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
+ SET(CMAKE_SKIP_RULE_DEPENDENCY FALSE)
++SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
++SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
+ 
+ # Additional CMake modules for 3rd party library checks reside here
+ SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_admin")
diff --git a/debian/patches/drumstick-armel.patch b/debian/patches/drumstick-armel.patch
new file mode 100644
index 0000000..4969fd7
--- /dev/null
+++ b/debian/patches/drumstick-armel.patch
@@ -0,0 +1,24 @@
+Description: Fix compilation errors on arm and mips.
+ The patch is included in drumstick-0.3.1 and can be dropped upon completion
+ of #579153.
+Origin: http://drumstick.svn.sourceforge.net/viewvc/drumstick/trunk/library/src/qwrk.cpp?r1=166&r2=172&view=patch
+--- trunk/library/src/qwrk.cpp	2010/04/17 22:31:51	166
++++ trunk/library/src/qwrk.cpp	2010/05/13 15:32:47	172
+@@ -851,7 +851,7 @@
+         readGap(4);
+         int measure = read16bit();
+         int  num = readByte();
+-        int  den = powl(2, readByte());
++        int  den = pow(2, readByte());
+         readGap(4);
+         Q_EMIT signalWRKTimeSig(measure, num, den);
+     }
+@@ -863,7 +863,7 @@
+     for (int i = 0; i < count; ++i) {
+         int measure = read16bit();
+         int  num = readByte();
+-        int  den = powl(2, readByte());
++        int  den = pow(2, readByte());
+         qint8 alt = readByte();
+         Q_EMIT signalWRKTimeSig(measure, num, den);
+         Q_EMIT signalWRKKeySig(measure, alt);

-- 
kmidimon packaging



More information about the pkg-multimedia-commits mailing list