File qatomic-qt-4.4.diff of Package muse2
diff -Burbp muse-2.0svn347.orig/muse/audioprefetch.cpp muse-2.0svn347/muse/audioprefetch.cpp
--- muse-2.0svn347.orig/muse/audioprefetch.cpp 2008-03-31 03:07:04.000000000 +0200
+++ muse-2.0svn347/muse/audioprefetch.cpp 2008-05-15 23:14:32.000000000 +0200
@@ -134,7 +134,7 @@ void AudioPrefetch::msgSeek(unsigned sam
if (samplePos == seekPos)
return;
- q_atomic_increment(&seekCount);
+ seekCount.ref();
PrefetchMsg msg;
msg.id = PREFETCH_SEEK;
msg.pos = samplePos;
@@ -191,6 +191,6 @@ void AudioPrefetch::seek(unsigned seekTo
writePos = seekTo;
prefetch(true);
seekPos = seekTo;
- q_atomic_decrement(&seekCount);
+ seekCount.deref();
}
diff -Burbp muse-2.0svn347.orig/muse/audioprefetch.h muse-2.0svn347/muse/audioprefetch.h
--- muse-2.0svn347.orig/muse/audioprefetch.h 2008-03-31 03:07:04.000000000 +0200
+++ muse-2.0svn347/muse/audioprefetch.h 2008-05-15 23:14:32.000000000 +0200
@@ -24,6 +24,8 @@
#include "thread.h"
#include "fifo.h"
+#include <QtCore/QAtomicInt>
+
//---------------------------------------------------------
// AudioPrefetch
//---------------------------------------------------------
@@ -36,7 +38,7 @@ class AudioPrefetch : public Thread {
virtual void processMsg1(const void*);
void prefetch(bool seekFlag);
void seek(unsigned pos);
- volatile int seekCount;
+ QAtomicInt seekCount;
public:
AudioPrefetch(const char* name);
diff -Burbp muse-2.0svn347.orig/muse/audiowriteback.cpp muse-2.0svn347/muse/audiowriteback.cpp
--- muse-2.0svn347.orig/muse/audiowriteback.cpp 2008-03-31 03:07:04.000000000 +0200
+++ muse-2.0svn347/muse/audiowriteback.cpp 2008-05-15 23:14:32.000000000 +0200
@@ -65,7 +65,7 @@ void AudioWriteback::start(int priority)
void AudioWriteback::processMsg1(const void*)
{
while (counter) {
- q_atomic_decrement(&counter);
+ counter.deref();
OutputList* ol = song->outputs();
if (!ol->empty()) {
AudioOutput* ao = ol->front();
@@ -88,8 +88,7 @@ void AudioWriteback::processMsg1(const v
void AudioWriteback::trigger()
{
- q_atomic_increment(&counter);
- if (counter < 2) {
+ if (counter.ref() < 2) {
if (sendMsg1("0", 1)) {
printf("AudioWriteback::msgTick(): send failed!\n");
}
diff -Burbp muse-2.0svn347.orig/muse/audiowriteback.h muse-2.0svn347/muse/audiowriteback.h
--- muse-2.0svn347.orig/muse/audiowriteback.h 2008-03-31 03:07:03.000000000 +0200
+++ muse-2.0svn347/muse/audiowriteback.h 2008-05-15 23:14:32.000000000 +0200
@@ -23,13 +23,15 @@
#include "thread.h"
+#include <QtCore/QAtomicInt>
+
//---------------------------------------------------------
// AudioWriteback
//---------------------------------------------------------
class AudioWriteback : public Thread {
virtual void processMsg1(const void*);
- volatile int counter;
+ QAtomicInt counter;
public:
AudioWriteback(const char* name);
diff -Burbp muse-2.0svn347.orig/muse/driver/alsamidi.cpp muse-2.0svn347/muse/driver/alsamidi.cpp
--- muse-2.0svn347.orig/muse/driver/alsamidi.cpp 2008-03-31 03:07:00.000000000 +0200
+++ muse-2.0svn347/muse/driver/alsamidi.cpp 2008-05-15 23:14:32.000000000 +0200
@@ -43,7 +43,7 @@ bool PortRouteFifo::put(const PortRoute&
if (size < PORT_ROUTE_FIFO_SIZE) {
fifo[wIndex] = event;
wIndex = (wIndex + 1) % PORT_ROUTE_FIFO_SIZE;
- q_atomic_increment(&size);
+ size.ref();
return false;
}
return true;
@@ -57,7 +57,7 @@ PortRoute PortRouteFifo::get()
{
PortRoute event(fifo[rIndex]);
rIndex = (rIndex + 1) % PORT_ROUTE_FIFO_SIZE;
- q_atomic_decrement(&size);
+ size.deref();
return event;
}
diff -Burbp muse-2.0svn347.orig/muse/driver/alsamidi.h muse-2.0svn347/muse/driver/alsamidi.h
--- muse-2.0svn347.orig/muse/driver/alsamidi.h 2008-03-31 03:07:00.000000000 +0200
+++ muse-2.0svn347/muse/driver/alsamidi.h 2008-05-15 23:14:32.000000000 +0200
@@ -24,6 +24,8 @@
#include <alsa/asoundlib.h>
#include "driver.h"
+#include <QtCore/QAtomicInt>
+
class MidiSeq;
class MidiEvent;
@@ -43,7 +45,7 @@ struct PortRoute {
class PortRouteFifo {
PortRoute fifo[PORT_ROUTE_FIFO_SIZE];
- volatile int size;
+ QAtomicInt size;
int wIndex;
int rIndex;
diff -Burbp muse-2.0svn347.orig/muse/fifo.cpp muse-2.0svn347/muse/fifo.cpp
--- muse-2.0svn347.orig/muse/fifo.cpp 2008-03-31 03:07:03.000000000 +0200
+++ muse-2.0svn347/muse/fifo.cpp 2008-05-15 23:14:32.000000000 +0200
@@ -30,7 +30,6 @@ void FifoBase::clear()
{
ridx = 0;
widx = 0;
- counter = 0;
}
//---------------------------------------------------------
@@ -40,7 +39,7 @@ void FifoBase::clear()
void FifoBase::push()
{
widx = (widx + 1) % FIFO_BUFFER;
- q_atomic_increment(&counter);
+ counter.ref();
}
//---------------------------------------------------------
@@ -50,7 +49,7 @@ void FifoBase::push()
void FifoBase::pop()
{
ridx = (ridx + 1) % FIFO_BUFFER;
- q_atomic_decrement(&counter);
+ counter.deref();
}
//---------------------------------------------------------
diff -Burbp muse-2.0svn347.orig/muse/fifo.h muse-2.0svn347/muse/fifo.h
--- muse-2.0svn347.orig/muse/fifo.h 2008-03-31 03:07:03.000000000 +0200
+++ muse-2.0svn347/muse/fifo.h 2008-05-15 23:14:32.000000000 +0200
@@ -21,6 +21,8 @@
#ifndef __FIFO_H__
#define __FIFO_H__
+#include <QtCore/QAtomicInt>
+
const int FIFO_BUFFER = 256;
//---------------------------------------------------------
@@ -56,7 +58,7 @@ class FifoBase {
protected:
int ridx; // read index
int widx; // write index
- volatile int counter; // objects in fifo
+ QAtomicInt counter; // objects in fifo
public:
FifoBase() { clear(); }
diff -Burbp muse-2.0svn347.orig/muse/midififo.cpp muse-2.0svn347/muse/midififo.cpp
--- muse-2.0svn347.orig/muse/midififo.cpp 2008-03-31 03:07:04.000000000 +0200
+++ muse-2.0svn347/muse/midififo.cpp 2008-05-15 23:14:32.000000000 +0200
@@ -30,7 +30,7 @@ bool MidiFifo::put(const MidiEvent& even
if (size < MIDI_FIFO_SIZE) {
fifo[wIndex] = event;
wIndex = (wIndex + 1) % MIDI_FIFO_SIZE;
- q_atomic_increment(&size);
+ size.ref();
return false;
}
return true;
@@ -44,7 +44,7 @@ MidiEvent MidiFifo::get()
{
MidiEvent event(fifo[rIndex]);
rIndex = (rIndex + 1) % MIDI_FIFO_SIZE;
- q_atomic_decrement(&size);
+ size.deref();
return event;
}
@@ -65,7 +65,7 @@ const MidiEvent& MidiFifo::peek(int n)
void MidiFifo::remove()
{
rIndex = (rIndex + 1) % MIDI_FIFO_SIZE;
- q_atomic_decrement(&size);
+ size.deref();
}
//---------------------------------------------------------
@@ -78,7 +78,7 @@ bool MidiOutFifo::put(const MidiOutEvent
if (size < MIDI_FIFO_SIZE) {
fifo[wIndex] = event;
wIndex = (wIndex + 1) % MIDI_FIFO_SIZE;
- q_atomic_increment(&size);
+ size.ref();
return false;
}
return true;
@@ -92,7 +92,7 @@ MidiOutEvent MidiOutFifo::get()
{
MidiOutEvent event(fifo[rIndex]);
rIndex = (rIndex + 1) % MIDI_FIFO_SIZE;
- q_atomic_decrement(&size);
+ size.deref();
return event;
}
Only in muse-2.0svn347/muse: midififo.cpp.orig
diff -Burbp muse-2.0svn347.orig/muse/midififo.h muse-2.0svn347/muse/midififo.h
--- muse-2.0svn347.orig/muse/midififo.h 2008-03-31 03:07:04.000000000 +0200
+++ muse-2.0svn347/muse/midififo.h 2008-05-15 23:14:32.000000000 +0200
@@ -26,13 +26,15 @@
#define MIDI_FIFO_SIZE 512
+#include <QtCore/QAtomicInt>
+
//---------------------------------------------------------
// MidiFifo
//---------------------------------------------------------
class MidiFifo {
MidiEvent fifo[MIDI_FIFO_SIZE];
- volatile int size;
+ QAtomicInt size;
int wIndex;
int rIndex;
@@ -75,7 +77,7 @@ typedef MidiOutEventList::const_iterator
class MidiOutFifo {
MidiOutEvent fifo[MIDI_FIFO_SIZE];
- volatile int size;
+ QAtomicInt size;
int wIndex;
int rIndex;
Only in muse-2.0svn347/muse: midififo.h.orig
Only in muse-2.0svn347/muse: midiinport.cpp.orig
Only in muse-2.0svn347/muse: midiinport.cpp.rej
diff -Burbp muse-2.0svn347.orig/muse/midiinport.h muse-2.0svn347/muse/midiinport.h
--- muse-2.0svn347.orig/muse/midiinport.h 2008-03-31 03:07:04.000000000 +0200
+++ muse-2.0svn347/muse/midiinport.h 2008-05-15 23:14:32.000000000 +0200
@@ -25,6 +25,8 @@
#include "miditrackbase.h"
#include "midievent.h"
+#include <QtCore/QAtomicInt>
+
static const int RECORD_FIFO_SIZE = 512;
//---------------------------------------------------------
Only in muse-2.0svn347/muse: midiinport.h.orig
Only in muse-2.0svn347/muse: midiinport.h.rej