summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--muse/CMakeLists.txt30
-rw-r--r--muse/ChangeLog5
-rw-r--r--muse/al/CMakeLists.txt2
-rw-r--r--muse/all.h3
-rw-r--r--muse/awl/CMakeLists.txt23
-rw-r--r--muse/awl/tcanvas.cpp8
-rw-r--r--muse/midiplugins/filter/CMakeLists.txt3
-rw-r--r--muse/midiplugins/metronom/CMakeLists.txt1
-rw-r--r--muse/midiplugins/transform/CMakeLists.txt1
-rw-r--r--muse/muse/driver/CMakeLists.txt8
-rw-r--r--muse/muse/driver/dummyaudio.cpp23
-rw-r--r--muse/muse/dssihost.cpp4
-rw-r--r--muse/muse/importmidi.cpp6
-rw-r--r--muse/muse/midi.cpp2
-rw-r--r--muse/muse/midiedit/ecanvas.cpp6
-rw-r--r--muse/muse/midiplugin.cpp4
-rw-r--r--muse/muse/midiport.cpp5
-rw-r--r--muse/muse/midiseq.cpp19
-rw-r--r--muse/muse/midiseq.h2
-rw-r--r--muse/muse/mixer/mstrip.cpp2
-rw-r--r--muse/muse/muse.cpp23
-rw-r--r--muse/muse/plugin.cpp4
-rw-r--r--muse/muse/preferences.cpp2
-rw-r--r--muse/muse/route.cpp2
-rw-r--r--muse/muse/seqmsg.cpp2
-rw-r--r--muse/muse/synth.cpp4
-rw-r--r--muse/muse/thread.cpp9
-rw-r--r--muse/muse/track.h5
-rw-r--r--muse/plugins/freeverb/CMakeLists.txt2
-rw-r--r--muse/synti/deicsonze/CMakeLists.txt5
-rw-r--r--muse/synti/fluid/CMakeLists.txt5
-rw-r--r--muse/synti/fluidsynth/CMakeLists.txt6
-rw-r--r--muse/synti/organ/CMakeLists.txt6
-rw-r--r--muse/synti/s1/CMakeLists.txt3
-rw-r--r--muse/synti/vam/CMakeLists.txt6
35 files changed, 195 insertions, 46 deletions
diff --git a/muse/CMakeLists.txt b/muse/CMakeLists.txt
index a5025368..095f309b 100644
--- a/muse/CMakeLists.txt
+++ b/muse/CMakeLists.txt
@@ -37,13 +37,25 @@ include ( ${PROJECT_SOURCE_DIR}/cmake/UsePkgConfig1.cmake )
option ( ENABLE_DSSI "enable Disposable Soft Synth Interface" ON)
option ( ENABLE_VST "enable VST/win support" OFF)
-option ( ENABLE_FLUID "enable fluidsynth softsynth plugins" OFF)
+option ( ENABLE_FLUID "enable fluidsynth softsynth plugins" ON)
# set(CMAKE_VERBOSE_MAKEFILE ON)
set(QT_USE_QTXML TRUE)
set(QT_USE_QTDESIGNER TRUE)
##
+## Just print a notice if this is OS X
+##
+if (APPLE)
+ message("OS X detected.")
+else (APPLE)
+ if (UNIX)
+ message("Unix (probably linux) detected")
+ endif(UNIX)
+
+endif (APPLE)
+
+##
## look for Qt4
##
@@ -76,10 +88,16 @@ endif (NOT TEXEXEC_PATH)
## alsa >= 0.9.0
##
+if (APPLE)
+ message("Disabling ALSA support due to OS X build.")
+else (APPLE)
PKGCONFIG (alsa 0.9.0 ALSA_INCDIR ALSA_LIBDIR ALSA_LIB ALSA_CPP )
if (NOT ALSA_INCDIR)
message(FATAL_ERROR "Fatal error: ALSA >= 1.0.0 required")
+else (NOT ALSA_INCDIR)
+ message("Alsa detected.")
endif (NOT ALSA_INCDIR)
+endif (APPLE)
##
## find sndfile >= 1.0.0
@@ -88,6 +106,8 @@ endif (NOT ALSA_INCDIR)
PKGCONFIG (sndfile 1.0.0 SNDFILE_INCDIR SNDFILE_LIBDIR SNDFILE_LIB SNDFILE_CPP )
if (NOT SNDFILE_INCDIR)
message(FATAL_ERROR "Fatal error: libsndfile >= 1.0.0 required")
+else (NOT SNDFILE_INCDIR)
+ message("sndfile detected.")
endif (NOT SNDFILE_INCDIR)
##
@@ -97,6 +117,8 @@ endif (NOT SNDFILE_INCDIR)
PKGCONFIG (samplerate 0.1.0 SAMPLERATE_INCDIR SAMPLERATE_LIBDIR SAMPLERATE_LIB SAMPLERATE_CPP )
if (NOT SAMPLERATE_INCDIR)
message(FATAL_ERROR "Fatal error: libsamplerate >= 0.1.0 required")
+else (NOT SAMPLERATE_INCDIR)
+ message("samplerate detected")
endif (NOT SAMPLERATE_INCDIR)
##
@@ -106,6 +128,8 @@ endif (NOT SAMPLERATE_INCDIR)
PKGCONFIG (jack 0.98.0 JACK_INCDIR JACK_LIBDIR JACK_LIB JACK_CPP )
if (NOT JACK_INCDIR)
message(FATAL_ERROR "Fatal error: JACK >= 0.98.0 required")
+else (NOT JACK_INCDIR)
+ message("Jack detected")
endif (NOT JACK_INCDIR)
##
@@ -117,6 +141,8 @@ if ( ENABLE_DSSI )
if (NOT DSSI_INCDIR)
message("Error: dssi >= 0.9.0 not found, disabling feature")
set ( ENABLE_DSSI OFF )
+ else (NOT DSSI_INCDIR)
+ message("DSSI detected.")
endif (NOT DSSI_INCDIR)
endif ( ENABLE_DSSI )
@@ -135,6 +161,8 @@ if ( ENABLE_FLUID )
if (NOT FLUID_INCDIR)
message("Error: fluidsynth >= 0.9.0 not found, disabling feature")
set ( ENABLE_FLUID OFF )
+ else (NOT FLUID_INCDIR)
+ message("Fluidsynth detected")
endif (NOT FLUID_INCDIR)
endif ( ENABLE_FLUID )
diff --git a/muse/ChangeLog b/muse/ChangeLog
index 63b55e7b..6e0692ea 100644
--- a/muse/ChangeLog
+++ b/muse/ChangeLog
@@ -1,3 +1,8 @@
+25.5 (rj)
+ * buckle up, bumpy road ahead
+ * partial support for MAC OS X
+ includes some build adjustments, more -fPIC and added
+ libraries, still builds on linux so I hope it's mostly ok.
20.5 (ws)
* new controller select dialog
* build libsynti.a with -fPIC for athlon64 systems
diff --git a/muse/al/CMakeLists.txt b/muse/al/CMakeLists.txt
index 15f83580..be8b83ba 100644
--- a/muse/al/CMakeLists.txt
+++ b/muse/al/CMakeLists.txt
@@ -7,7 +7,7 @@ add_library(al STATIC
al.cpp marker.cpp pos.cpp sig.cpp tempo.cpp xml.cpp
)
set_target_properties( al
- PROPERTIES COMPILE_FLAGS "-include ${PROJECT_SOURCE_DIR}/all.h"
+ PROPERTIES COMPILE_FLAGS "-fPIC -include ${PROJECT_SOURCE_DIR}/all.h"
)
add_dependencies(al ${PROJECT_SOURCE_DIR}/all.h.pch)
diff --git a/muse/all.h b/muse/all.h
index 17acda0e..e6ce3e39 100644
--- a/muse/all.h
+++ b/muse/all.h
@@ -22,11 +22,14 @@
#define __ALLQT_H__
#include <stdio.h>
+#ifndef __APPLE__
#include <values.h>
+#endif
#include <errno.h>
#include <stdarg.h>
#include <unistd.h>
#include <assert.h>
+#include <poll.h>
#include <cmath>
#include <list>
#include <vector>
diff --git a/muse/awl/CMakeLists.txt b/muse/awl/CMakeLists.txt
index df3cf551..3d8e1499 100644
--- a/muse/awl/CMakeLists.txt
+++ b/muse/awl/CMakeLists.txt
@@ -43,17 +43,26 @@ WRAP_CPP(mocCPP ${mocs})
QT4_WRAP_CPP (moc_headers ${mocH})
-set ( awl_src awl.cpp utils.cpp ${mocCPP} ${moc_headers} )
+set(awl_src
+ awl.cpp utils.cpp ${mocCPP} ${moc_headers}
+ )
add_library ( awl STATIC ${awl_src} )
set_target_properties( awl
- PROPERTIES COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all.h"
+ PROPERTIES COMPILE_FLAGS "-fPIC -include ${PROJECT_BINARY_DIR}/all.h"
)
-add_library ( awlplugin SHARED ${awl_src} awlplugin.cpp )
-set_target_properties( awlplugin
- PROPERTIES COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
- )
+IF (APPLE)
+ message("Not yet able to build awlplugin under OS X.")
+ELSE (APPLE)
+
+ add_library ( awlplugin SHARED ${awl_src}
+ awlplugin.cpp )
+ set_target_properties( awlplugin
+ PROPERTIES COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
+ )
+
+ install_targets ( /lib/${MusE_INSTALL_NAME}/designer/ awlplugin )
-install_targets ( /lib/${MusE_INSTALL_NAME}/designer/ awlplugin )
+ENDIF (APPLE)
diff --git a/muse/awl/tcanvas.cpp b/muse/awl/tcanvas.cpp
index 8b9a0925..8a9d5d0e 100644
--- a/muse/awl/tcanvas.cpp
+++ b/muse/awl/tcanvas.cpp
@@ -28,6 +28,10 @@
#include "metronom.xpm"
#include "clock.xpm"
+#ifdef __APPLE__
+ inline double exp10(double a) { return pow(10.0, a); }
+#endif
+
static QIcon* clockIcon;
static QIcon* metronomIcon;
@@ -94,7 +98,7 @@ TimeCanvas::TimeCanvas(TimeCanvasType t)
// is known:
pos1.setTick(0);
- pos2.setTick(MAXINT);
+ pos2.setTick(INT_MAX);
hmag = new QSlider(Qt::Horizontal);
hmag->setRange(0, 100);
@@ -112,7 +116,7 @@ TimeCanvas::TimeCanvas(TimeCanvasType t)
_ymag = 1.0;
hbar = new QScrollBar(Qt::Horizontal);
- hbar->setRange(0, MAXINT);
+ hbar->setRange(0, INT_MAX);
vbar = new QScrollBar(Qt::Vertical);
timeTypeButton = new QToolButton;
timeTypeButton->setFixedSize(20, rulerHeight);
diff --git a/muse/midiplugins/filter/CMakeLists.txt b/muse/midiplugins/filter/CMakeLists.txt
index b40e840f..420a6c00 100644
--- a/muse/midiplugins/filter/CMakeLists.txt
+++ b/muse/midiplugins/filter/CMakeLists.txt
@@ -32,7 +32,8 @@ add_library ( filter SHARED
)
target_link_libraries( filter
- midiplugin
+ midiplugin awl
+ ${QT_LIBRARIES}
)
# - tell cmake to name target filter.so instead of
diff --git a/muse/midiplugins/metronom/CMakeLists.txt b/muse/midiplugins/metronom/CMakeLists.txt
index 0e699233..f423d99c 100644
--- a/muse/midiplugins/metronom/CMakeLists.txt
+++ b/muse/midiplugins/metronom/CMakeLists.txt
@@ -30,6 +30,7 @@ add_library ( metronom SHARED
)
target_link_libraries( metronom
midiplugin
+ ${QT_LIBRARIES}
)
# - tell cmake to name target metronom.so instead of
diff --git a/muse/midiplugins/transform/CMakeLists.txt b/muse/midiplugins/transform/CMakeLists.txt
index c0ce11d4..826c721b 100644
--- a/muse/midiplugins/transform/CMakeLists.txt
+++ b/muse/midiplugins/transform/CMakeLists.txt
@@ -29,6 +29,7 @@ add_library ( transform SHARED
target_link_libraries( transform
midiplugin
+ ${QT_LIBRARIES}
)
# - tell cmake to name target transform.so instead of
diff --git a/muse/muse/driver/CMakeLists.txt b/muse/muse/driver/CMakeLists.txt
index f75c9810..094ea1d3 100644
--- a/muse/muse/driver/CMakeLists.txt
+++ b/muse/muse/driver/CMakeLists.txt
@@ -3,10 +3,16 @@
#
#
+IF (APPLE)
set ( driver_src
- alsamidi.cpp jack.cpp dummyaudio.cpp alsatimer.cpp
+ jack.cpp dummyaudio.cpp coretimer.cpp coremidi.cpp
+ )
+ELSE (APPLE)
+set ( driver_src
+ alsamidi.cpp jack.cpp dummyaudio.cpp alsatimer.cpp
rtctimer.cpp posixtimer.cpp
)
+ENDIF (APPLE)
add_library ( driver STATIC ${driver_src} )
set_target_properties( driver
diff --git a/muse/muse/driver/dummyaudio.cpp b/muse/muse/driver/dummyaudio.cpp
index 54f4adfe..6b680ab9 100644
--- a/muse/muse/driver/dummyaudio.cpp
+++ b/muse/muse/driver/dummyaudio.cpp
@@ -187,29 +187,32 @@ std::list<PortName>* DummyAudio::inputPorts()
static void* dummyLoop(void*)
{
+#ifndef __APPLE__
if (realTimePriority) {
//
// check if we really got realtime priviledges
//
- int policy;
- if ((policy = sched_getscheduler (0)) < 0) {
- printf("cannot get current client scheduler for audio dummy thread: %s!\n", strerror(errno));
- }
- else {
+ int policy;
+ if ((policy = sched_getscheduler (0)) < 0) {
+ printf("cannot get current client scheduler for audio dummy thread: %s!\n", strerror(errno));
+ }
+ else
+ {
if (policy != SCHED_FIFO)
printf("audio dummy thread _NOT_ running SCHED_FIFO\n");
- else if (debugMsg) {
+ else if (debugMsg) {
struct sched_param rt_param;
- memset(&rt_param, 0, sizeof(sched_param));
+ memset(&rt_param, 0, sizeof(sched_param));
int type;
- int rv = pthread_getschedparam(pthread_self(), &type, &rt_param);
+ int rv = pthread_getschedparam(pthread_self(), &type, &rt_param);
if (rv == -1)
perror("get scheduler parameter");
printf("audio dummy thread running SCHED_FIFO priority %d\n",
rt_param.sched_priority);
- }
- }
+ }
+ }
}
+#endif
for (;;) {
if (audioState == AUDIO_RUNNING)
diff --git a/muse/muse/dssihost.cpp b/muse/muse/dssihost.cpp
index 7fbe5274..20a726fc 100644
--- a/muse/muse/dssihost.cpp
+++ b/muse/muse/dssihost.cpp
@@ -238,7 +238,11 @@ static void scanDSSIDir(const QString& s)
if (debugMsg)
printf("scan dssi plugin dir <%s>\n", s.toLatin1().data());
+#ifdef __APPLE__
+ QDir pluginDir(s, QString("*.dylib"), QDir::Unsorted, QDir::Files);
+#else
QDir pluginDir(s, QString("*.so"), QDir::Unsorted, QDir::Files);
+#endif
if (!pluginDir.exists())
return;
diff --git a/muse/muse/importmidi.cpp b/muse/muse/importmidi.cpp
index 4fd5808d..b2d834fd 100644
--- a/muse/muse/importmidi.cpp
+++ b/muse/muse/importmidi.cpp
@@ -30,7 +30,7 @@
#include "al/tempo.h"
#include "instruments/minstrument.h"
#include "gconfig.h"
-#include "driver/alsamidi.h"
+#include "driver/mididev.h"
#include "part.h"
//---------------------------------------------------------
@@ -330,8 +330,8 @@ void MusE::processTrack(MidiTrack* track)
//---------------------------------------------------
// Parts ermitteln
// die Midi-Spuren werden in Parts aufgebrochen;
- // ein neuer Part wird bei einer Lücke von einem
- // Takt gebildet; die Länge wird jeweils auf
+ // ein neuer Part wird bei einer Lcke von einem
+ // Takt gebildet; die L�ge wird jeweils auf
// Takte aufgerundet und aligned
//---------------------------------------------------
diff --git a/muse/muse/midi.cpp b/muse/muse/midi.cpp
index 3dc4f5cf..eb94c04f 100644
--- a/muse/muse/midi.cpp
+++ b/muse/muse/midi.cpp
@@ -26,7 +26,7 @@
#include "midictrl.h"
#include "midictrl.h"
#include "audio.h"
-#include "driver/alsamidi.h"
+#include "driver/mididev.h"
#include "wave.h"
#include "synth.h"
#include "sync.h"
diff --git a/muse/muse/midiedit/ecanvas.cpp b/muse/muse/midiedit/ecanvas.cpp
index a33fa99f..ff3c1753 100644
--- a/muse/muse/midiedit/ecanvas.cpp
+++ b/muse/muse/midiedit/ecanvas.cpp
@@ -107,7 +107,7 @@ void EventCanvas::songChanged(int flags)
{
if ((flags & ~SC_SELECTION) && !editor->parts()->empty()) {
items.clear();
- startTick = MAXINT;
+ startTick = INT_MAX;
endTick = 0;
for (iPart p = editor->parts()->begin(); p != editor->parts()->end(); ++p) {
Part* part = p->second;
@@ -1384,13 +1384,13 @@ QMimeData* EventCanvas::getTextDrag()
//---------------------------------------------------
EventList el;
- unsigned startTick = MAXINT;
+ unsigned startTick = INT_MAX;
for (iCItem i = items.begin(); i != items.end(); ++i) {
if (!i->second->isSelected())
continue;
CItem* ne = i->second;
Event e = ne->event;
- if (startTick == MAXINT)
+ if (startTick == INT_MAX)
startTick = e.tick();
el.add(e);
}
diff --git a/muse/muse/midiplugin.cpp b/muse/muse/midiplugin.cpp
index 7f716a99..4787957a 100644
--- a/muse/muse/midiplugin.cpp
+++ b/muse/muse/midiplugin.cpp
@@ -224,7 +224,11 @@ static void loadMidiPluginDir(const QString& s)
{
if (debugMsg)
printf("scan midi plugin dir <%s>\n", s.toLatin1().data());
+#ifdef __APPLE__
+ QDir pluginDir(s, QString("*.dylib"), 0, QDir::Files);
+#else
QDir pluginDir(s, QString("*.so"), 0, QDir::Files);
+#endif
if (pluginDir.exists()) {
QFileInfoList list = pluginDir.entryInfoList();
for (int i = 0; i < list.size(); ++i) {
diff --git a/muse/muse/midiport.cpp b/muse/muse/midiport.cpp
index 3cdb8958..a2382b65 100644
--- a/muse/muse/midiport.cpp
+++ b/muse/muse/midiport.cpp
@@ -25,7 +25,7 @@
#include "midi.h"
#include "instruments/minstrument.h"
#include "al/xml.h"
-#include "driver/alsamidi.h"
+#include "driver/mididev.h"
#include "audio.h"
#include "midiedit/drummap.h"
@@ -555,7 +555,7 @@ void MidiInPort::deactivate()
//---------------------------------------------------------
// midiReceived
//---------------------------------------------------------
-
+#ifndef __APPLE__
void MidiInPort::eventReceived(snd_seq_event_t* ev)
{
MidiEvent event;
@@ -641,6 +641,7 @@ void MidiInPort::eventReceived(snd_seq_event_t* ev)
_recordEvents.add(*i);
}
}
+#endif
//---------------------------------------------------------
// afterProcess
diff --git a/muse/muse/midiseq.cpp b/muse/muse/midiseq.cpp
index fd79ff43..d1bcc114 100644
--- a/muse/muse/midiseq.cpp
+++ b/muse/muse/midiseq.cpp
@@ -23,9 +23,16 @@
#include "midiseq.h"
#include "midictrl.h"
#include "audio.h"
-#include "driver/alsamidi.h"
+#include "driver/mididev.h"
+
+#ifdef __APPLE__
+#include "driver/coretimer.h"
+#else
+#include "driver/rtctimer.h"
#include "driver/posixtimer.h"
#include "driver/alsatimer.h"
+#endif
+
#include "sync.h"
#include "song.h"
#include "gconfig.h"
@@ -327,7 +334,11 @@ void MidiSeq::threadStart(void*)
perror("set realtime scheduler");
int policy;
- if ((policy = sched_getscheduler (0)) < 0) {
+#ifdef __APPLE__
+ if (0) {
+#else
+ if ( (policy = sched_getscheduler (0)) < 0) {
+#endif
printf("cannot get current client scheduler for midi thread: %s!\n", strerror(errno));
}
else {
@@ -346,6 +357,9 @@ void MidiSeq::threadStart(void*)
}
}
+#ifdef __APPLE__
+ timer = new CoreTimer;
+#else
// timer = new PosixTimer;
// if (!timer->initTimer()) {
// delete timer;
@@ -359,6 +373,7 @@ void MidiSeq::threadStart(void*)
}
}
// }
+#endif
initRealtimeTimer();
updatePollFd();
}
diff --git a/muse/muse/midiseq.h b/muse/muse/midiseq.h
index 48bec2c6..346aa8b4 100644
--- a/muse/muse/midiseq.h
+++ b/muse/muse/midiseq.h
@@ -23,8 +23,8 @@
#include "thread.h"
#include "mpevent.h"
-#include "driver/rtctimer.h"
+#include "driver/timerdev.h"
namespace AL {
class Pos;
};
diff --git a/muse/muse/mixer/mstrip.cpp b/muse/muse/mixer/mstrip.cpp
index ef330b57..bebea036 100644
--- a/muse/muse/mixer/mstrip.cpp
+++ b/muse/muse/mixer/mstrip.cpp
@@ -13,7 +13,7 @@
#include "mixer.h"
#include "widgets/simplebutton.h"
#include "widgets/utils.h"
-#include "driver/alsamidi.h"
+#include "driver/mididev.h"
#include "synth.h"
#include "midirack.h"
#include "midiplugin.h"
diff --git a/muse/muse/muse.cpp b/muse/muse/muse.cpp
index 6340639e..398d456e 100644
--- a/muse/muse/muse.cpp
+++ b/muse/muse/muse.cpp
@@ -53,7 +53,11 @@
#include "awl/poslabel.h"
#include "al/tempo.h"
#include "shortcuts.h"
+#ifdef __APPLE__
+#include "driver/coremidi.h"
+#else
#include "driver/alsamidi.h"
+#endif
#include "midiplugin.h"
#include "midiedit/drummap.h"
#include "widgets/utils.h"
@@ -126,11 +130,12 @@ static RasterVal rasterTable[] = {
static void* watchdog(void*)
{
int policy;
+#ifndef __APPLE__
if ((policy = sched_getscheduler (0)) < 0)
printf("Cannot get current client scheduler: %s\n", strerror(errno));
if (policy != SCHED_FIFO)
printf("MusE: watchdog process _NOT_ running SCHED_FIFO\n");
-
+#endif
int fatal = 0;
for (;;) {
watchAudio = 0;
@@ -523,6 +528,16 @@ MusE::MusE()
initMidiInstruments();
+#ifdef __APPLE__
+ if (coreMidi.init()) {
+ QMessageBox::critical(NULL, "MusE fatal error.",
+ "MusE failed to initialize the\n"
+ "Core midi subsystem, check\n"
+ "your configuration.");
+ fatalError("init core-midi failed");
+ }
+ midiDriver = &coreMidi;
+#else
if (alsaMidi.init()) {
QMessageBox::critical(NULL, "MusE fatal error.",
"MusE failed to initialize the\n"
@@ -531,7 +546,7 @@ MusE::MusE()
fatalError("init alsa failed");
}
midiDriver = &alsaMidi;
-
+#endif
//----Actions
fileOpenAction = new QAction(QIcon(*openIcon), tr("&Open"), this);
@@ -2772,7 +2787,7 @@ int main(int argc, char* argv[])
gmDrumMap.initGm(); // init default drum map
readConfiguration();
- QApplication::setFont(*config.fonts[0]);
+ QApplication::setFont(*config.fonts[0]);
// SHOW MUSE SPLASH SCREEN
if (config.showSplashScreen) {
@@ -2787,6 +2802,7 @@ int main(int argc, char* argv[])
stimer->start(6000);
}
}
+
char c;
QString opts("mvdDiosP:p");
@@ -3023,3 +3039,4 @@ int main(int argc, char* argv[])
fprintf(stderr, "app end %d\n", n);
return n;
}
+
diff --git a/muse/muse/plugin.cpp b/muse/muse/plugin.cpp
index 45183f34..6ab03d18 100644
--- a/muse/muse/plugin.cpp
+++ b/muse/muse/plugin.cpp
@@ -174,7 +174,11 @@ static void loadPluginDir(const QString& s)
{
if (debugMsg)
printf("scan ladspa plugin dir <%s>\n", s.toLatin1().data());
+#ifdef __APPLE__
+ QDir pluginDir(s, QString("*.dylib"), 0, QDir::Files);
+#else
QDir pluginDir(s, QString("*.so"), 0, QDir::Files);
+#endif
if (pluginDir.exists()) {
QFileInfoList list = pluginDir.entryInfoList();
for (int i = 0; i < list.size(); ++i) {
diff --git a/muse/muse/preferences.cpp b/muse/muse/preferences.cpp
index 7efd6751..59ab5173 100644
--- a/muse/muse/preferences.cpp
+++ b/muse/muse/preferences.cpp
@@ -34,7 +34,7 @@
#include "audio.h"
#include "mixer/mixer.h"
#include "midirc.h"
-#include "driver/alsamidi.h"
+#include "driver/mididev.h"
#include "instruments/minstrument.h"
#include "midiedit/pianoroll.h"
#include "midiedit/drumedit.h"
diff --git a/muse/muse/route.cpp b/muse/muse/route.cpp
index da5fb3af..40479bc3 100644
--- a/muse/muse/route.cpp
+++ b/muse/muse/route.cpp
@@ -24,7 +24,7 @@
#include "track.h"
#include "synth.h"
#include "driver/audiodev.h"
-#include "driver/alsamidi.h"
+#include "driver/mididev.h"
#include "al/xml.h"
//---------------------------------------------------------
diff --git a/muse/muse/seqmsg.cpp b/muse/muse/seqmsg.cpp
index 18dc7f5d..930ed13a 100644
--- a/muse/muse/seqmsg.cpp
+++ b/muse/muse/seqmsg.cpp
@@ -26,7 +26,7 @@
#include "al/sig.h"
#include "audio.h"
#include "driver/audiodev.h"
-#include "driver/alsamidi.h"
+#include "driver/mididev.h"
#include "audio.h"
#include "arranger/arranger.h"
#include "plugin.h"
diff --git a/muse/muse/synth.cpp b/muse/muse/synth.cpp
index 06e798a0..b302e246 100644
--- a/muse/muse/synth.cpp
+++ b/muse/muse/synth.cpp
@@ -335,7 +335,11 @@ void initMidiSynth()
{
QString s = museGlobalLib + "/synthi";
+#ifdef __APPLE__
+ QDir pluginDir(s, QString("*.dylib"), 0, QDir::Files);
+#else
QDir pluginDir(s, QString("*.so"), 0, QDir::Files);
+#endif
if (debugMsg)
printf("searching for software synthesizer in <%s>\n", s.toLatin1().data());
if (pluginDir.exists()) {
diff --git a/muse/muse/thread.cpp b/muse/muse/thread.cpp
index 1acf2808..c77d8ab9 100644
--- a/muse/muse/thread.cpp
+++ b/muse/muse/thread.cpp
@@ -202,8 +202,11 @@ void Thread::loop()
if (mlockall(MCL_CURRENT | MCL_FUTURE))
perror("WARNING: Cannot lock memory:");
}
-
+#ifdef __APPLE__
+#define BIG_ENOUGH_STACK (1024*256*1)
+#else
#define BIG_ENOUGH_STACK (1024*1024*1)
+#endif
char buf[BIG_ENOUGH_STACK];
for (int i = 0; i < BIG_ENOUGH_STACK; i++)
buf[i] = i;
@@ -213,10 +216,10 @@ void Thread::loop()
pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, 0);
int policy;
- if ((policy = sched_getscheduler (0)) < 0) {
+ /*if ((policy = sched_getscheduler (0)) < 0) {
printf("Thread: Cannot get current client scheduler: %s\n", strerror(errno));
}
-
+*/
if (debugMsg)
printf("Thread <%s, id %p> has %s priority %d\n",
_name, pthread_self(), policy == SCHED_FIFO ? "SCHED_FIFO" : "SCHED_OTHER",
diff --git a/muse/muse/track.h b/muse/muse/track.h
index 2bfef484..e00a71de 100644
--- a/muse/muse/track.h
+++ b/muse/muse/track.h
@@ -49,7 +49,10 @@ class MidiChannel;
class PartList;
class Part;
+#ifndef __APPLE__
+// actually it should check for ALSA but I don't know how to do that
typedef struct snd_seq_event snd_seq_event_t;
+#endif
static const int EVENT_FIFO_SIZE = 128;
@@ -360,7 +363,9 @@ class MidiInPort : public MidiTrackBase {
virtual Part* newPart(Part*, bool) { return 0; }
Port port() const { return alsaPort; }
+#ifndef __APPLE__
void eventReceived(snd_seq_event_t*);
+#endif
virtual void getEvents(unsigned from, unsigned to, int channel, MPEventList* dst);
void afterProcess();
};
diff --git a/muse/plugins/freeverb/CMakeLists.txt b/muse/plugins/freeverb/CMakeLists.txt
index 44a77ffa..5a0d57b0 100644
--- a/muse/plugins/freeverb/CMakeLists.txt
+++ b/muse/plugins/freeverb/CMakeLists.txt
@@ -29,4 +29,4 @@ set_target_properties (freeverb
PROPERTIES PREFIX ""
)
-install_files( /lib/${MusE_INSTALL_PATH}/plugins .so freeverb.so)
+install_files( /lib/${MusE_INSTALL_PATH}/plugins freeverb)
diff --git a/muse/synti/deicsonze/CMakeLists.txt b/muse/synti/deicsonze/CMakeLists.txt
index 6edf37a2..25030154 100644
--- a/muse/synti/deicsonze/CMakeLists.txt
+++ b/muse/synti/deicsonze/CMakeLists.txt
@@ -40,5 +40,10 @@ set_target_properties ( deicsonze
COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
)
+target_link_libraries(deicsonze
+ al awl synti
+ ${QT_LIBRARIES}
+ )
+
install_targets ( /lib/${MusE_INSTALL_NAME}/synthi/ deicsonze )
diff --git a/muse/synti/fluid/CMakeLists.txt b/muse/synti/fluid/CMakeLists.txt
index 9304564f..7723b507 100644
--- a/muse/synti/fluid/CMakeLists.txt
+++ b/muse/synti/fluid/CMakeLists.txt
@@ -40,6 +40,11 @@ set_target_properties ( fluid
COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
LINK_FLAGS "-L${FLUID_LIBDIR} ${FLUID_LIB}"
)
+target_link_libraries(fluid
+ synti
+ ${QT_LIBRARIES}
+ ${FLUID_LIB}
+ )
install_targets ( /lib/${MusE_INSTALL_NAME}/synthi/ fluid )
diff --git a/muse/synti/fluidsynth/CMakeLists.txt b/muse/synti/fluidsynth/CMakeLists.txt
index 1dbe477f..9e9f619f 100644
--- a/muse/synti/fluidsynth/CMakeLists.txt
+++ b/muse/synti/fluidsynth/CMakeLists.txt
@@ -41,5 +41,11 @@ set_target_properties ( fluidsynth
LINK_FLAGS "-L${FLUID_LIBDIR} ${FLUID_LIB}"
)
+target_link_libraries(fluidsynth
+ synti
+ ${QT_LIBRARIES}
+ ${FLUID_LIB}
+ )
+
install_targets ( /lib/${MusE_INSTALL_NAME}/synthi/ fluidsynth )
diff --git a/muse/synti/organ/CMakeLists.txt b/muse/synti/organ/CMakeLists.txt
index 5be60520..d15eaa2d 100644
--- a/muse/synti/organ/CMakeLists.txt
+++ b/muse/synti/organ/CMakeLists.txt
@@ -40,5 +40,11 @@ set_target_properties ( organ
COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
)
+target_link_libraries(organ
+ widgets
+ synti
+ ${QT_LIBRARIES}
+ )
+
install_targets ( /lib/${MusE_INSTALL_NAME}/synthi/ organ )
diff --git a/muse/synti/s1/CMakeLists.txt b/muse/synti/s1/CMakeLists.txt
index 83428204..0747980c 100644
--- a/muse/synti/s1/CMakeLists.txt
+++ b/muse/synti/s1/CMakeLists.txt
@@ -27,5 +27,8 @@ target_link_libraries( s1 synti )
#
set_target_properties ( s1 PROPERTIES PREFIX "" )
+target_link_libraries(s1
+ synti
+ )
install_targets ( /lib/${MusE_INSTALL_NAME}/synthi/ s1 )
diff --git a/muse/synti/vam/CMakeLists.txt b/muse/synti/vam/CMakeLists.txt
index 2965d5d8..c4d4930d 100644
--- a/muse/synti/vam/CMakeLists.txt
+++ b/muse/synti/vam/CMakeLists.txt
@@ -40,5 +40,11 @@ set_target_properties ( vam
COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h"
)
+target_link_libraries(vam
+ al
+ synti
+ ${QT_LIBRARIES}
+ )
+
install_targets ( /lib/${MusE_INSTALL_NAME}/synthi/ vam )