muse for windows

MusE is a DAW for Linux with both MIDI and Audio editing. https://muse-sequencer.github.io

Moderators: MattKingUSA, khz, spamatica

aquilarubra
Established Member
Posts: 52
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Post by aquilarubra »

Sorry for your elbow.

I ended up with using long everywhere. Unfortunately, the code still uses Linux specific code (i.e. the functions pipe and fcntl). I could leave the code unchanged using the _pipe Windows function with a define:

Code: Select all

#ifdef _WIN32
#define pipe(fds) _pipe(fds, 4096, _O_BINARY)
#endif
Now, there is still the fcntl function to take care of. This is the error now:

Code: Select all

[ 70%] Building CXX object muse/driver/CMakeFiles/driver.dir/qttimer.obj
E:\msys64\usr\src\muse\muse3\muse\driver\qttimer.cpp: In member function 'virtual int MusECore::QtTimer::initTimer()':
E:\msys64\usr\src\muse\muse3\muse\driver\qttimer.cpp:65:32: error: 'F_SETFL' was not declared in this scope
     int rv = fcntl(filedes[1], F_SETFL, O_NONBLOCK);
                                ^~~~~~~
E:\msys64\usr\src\muse\muse3\muse\driver\qttimer.cpp:65:41: error: 'O_NONBLOCK' was not declared in this scope
     int rv = fcntl(filedes[1], F_SETFL, O_NONBLOCK);
                                         ^~~~~~~~~~
E:\msys64\usr\src\muse\muse3\muse\driver\qttimer.cpp:65:41: note: suggested alternative: 'ENOTSOCK'
     int rv = fcntl(filedes[1], F_SETFL, O_NONBLOCK);
                                         ^~~~~~~~~~
                                         ENOTSOCK
E:\msys64\usr\src\muse\muse3\muse\driver\qttimer.cpp:65:14: error: 'fcntl' was not declared in this scope
     int rv = fcntl(filedes[1], F_SETFL, O_NONBLOCK);
              ^~~~~
E:\msys64\usr\src\muse\muse3\muse\driver\qttimer.cpp:65:14: note: suggested alternative: 'fcvt'
     int rv = fcntl(filedes[1], F_SETFL, O_NONBLOCK);
              ^~~~~
              fcvt
mingw32-make[2]: *** [muse\driver\CMakeFiles\driver.dir\build.make:109: muse/driver/CMakeFiles/driver.dir/qttimer.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:1867: muse/driver/CMakeFiles/driver.dir/all] Error 2
mingw32-make: *** [Makefile:151: all] Error 2
aquilarubra
Established Member
Posts: 52
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Post by aquilarubra »

I just realized that there is this in the .cpp file:

#include <fcntl.h>

Unfortunately, there is no implementation in mingw64. Just some defines.
spamatica
Established Member
Posts: 573
Joined: Mon Feb 08, 2010 10:38 am
Has thanked: 80 times
Been thanked: 97 times

Re: muse for windows

Post by spamatica »

You are quite right, seems I did this class with the intention of at least supporting OS X, it will not work in its current form on Windows..

As I can't promise that I will be able to provide anything better, could you use the SimpleTimer instead? I see it's also only in the Independence branch, quickly looking at it I think it should work under Windows as a temporary substitute.
MusE DAW
aquilarubra
Established Member
Posts: 52
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Post by aquilarubra »

Getting closer and closer.

Now, the issue is about POSIX CPU functions:

Code: Select all

[ 81%] Building CXX object muse/CMakeFiles/core.dir/app.obj
E:\msys64\usr\src\muse\muse3\muse\app.cpp: In member function 'float MusEGui::MusE::getCPULoad()':
E:\msys64\usr\src\muse\muse3\muse\app.cpp:1833:19: error: aggregate 'MusEGui::MusE::getCPULoad()::rusage ru' has incomplete type and cannot be defined
     struct rusage ru;
                   ^~
E:\msys64\usr\src\muse\muse3\muse\app.cpp:1840:18: error: 'RUSAGE_SELF' was not declared in this scope
     if(getrusage(RUSAGE_SELF, &ru) != 0)
                  ^~~~~~~~~~~
E:\msys64\usr\src\muse\muse3\muse\app.cpp:1840:18: note: suggested alternative: 'HUGE_VALF'
     if(getrusage(RUSAGE_SELF, &ru) != 0)
                  ^~~~~~~~~~~
                  HUGE_VALF
E:\msys64\usr\src\muse\muse3\muse\app.cpp:1840:8: error: 'getrusage' was not declared in this scope
     if(getrusage(RUSAGE_SELF, &ru) != 0)
        ^~~~~~~~~
E:\msys64\usr\src\muse\muse3\muse\app.cpp:1840:8: note: suggested alternative: 'rusage'
     if(getrusage(RUSAGE_SELF, &ru) != 0)
        ^~~~~~~~~
        rusage
mingw32-make[2]: *** [muse\CMakeFiles\core.dir\build.make:269: muse/CMakeFiles/core.dir/app.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:495: muse/CMakeFiles/core.dir/all] Error 2
mingw32-make: *** [Makefile:151: all] Error 2
Can they be replaced with GetProcessTimes in Windows?
aquilarubra
Established Member
Posts: 52
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Post by aquilarubra »

I added an implementation to get a CPU percentage in app.cpp. I'm not sure if it's correct, but it compiles.

Code: Select all

#ifdef _WIN32
#include <Windows.h>
#endif

#ifdef _WIN32
static float CalculateCPULoad(unsigned long long idleTicks, unsigned long long totalTicks)
{
   static unsigned long long _previousTotalTicks = 0;
   static unsigned long long _previousIdleTicks = 0;

   unsigned long long totalTicksSinceLastTime = totalTicks-_previousTotalTicks;
   unsigned long long idleTicksSinceLastTime  = idleTicks-_previousIdleTicks;

   float ret = 1.0f-((totalTicksSinceLastTime > 0) ? ((float)idleTicksSinceLastTime)/totalTicksSinceLastTime : 0);

   _previousTotalTicks = totalTicks;
   _previousIdleTicks  = idleTicks;
   return ret;
}

static unsigned long long FileTimeToInt64(const FILETIME & ft)
{
   return (((unsigned long long)(ft.dwHighDateTime))<<32)|((unsigned long long)ft.dwLowDateTime);
}
#endif

float MusE::getCPULoad()
{
#ifdef _WIN32
   FILETIME idleTime, kernelTime, userTime;
   return GetSystemTimes(&idleTime, &kernelTime, &userTime) ? CalculateCPULoad(FileTimeToInt64(idleTime), FileTimeToInt64(kernelTime)+FileTimeToInt64(userTime)) : -1.0f;
#else
    struct rusage ru;
    struct timespec curSysTime;
    if(clock_gettime(CLOCK_REALTIME, &curSysTime) != 0)
    {
       return 0.0f;
    }
    //float fLoad = 0.0f;
    if(getrusage(RUSAGE_SELF, &ru) != 0)
    {
        return 0.0f;
    }
    long msSysElapsed = (curSysTime.tv_nsec / 1000000L) + curSysTime.tv_sec * 1000L;
    msSysElapsed -= (lastSysTime.tv_nsec / 1000000L) + lastSysTime.tv_sec * 1000L;
    long msCpuElasped = (ru.ru_utime.tv_usec / 1000L) + ru.ru_utime.tv_sec * 1000L;
    msCpuElasped -= (lastCpuTime.tv_usec / 1000L) + lastCpuTime.tv_sec * 1000L;
    if(msSysElapsed > 0)
    {
        fAvrCpuLoad += (float)((double)msCpuElasped / (double)msSysElapsed);
        avrCpuLoadCounter++;
    }
    lastCpuTime = ru.ru_utime;
    lastSysTime = curSysTime;
    if(avrCpuLoadCounter > 10)
    {
        fCurCpuLoad = (fAvrCpuLoad / (float)avrCpuLoadCounter) * 100.0f;
        fAvrCpuLoad = 0.0f;
        avrCpuLoadCounter = 0;
    }

    return fCurCpuLoad;
#endif
}
Now I hit again against the POSIX functions in audio.cpp (fcntl).

Code: Select all

[ 80%] Building CXX object muse/CMakeFiles/core.dir/audio.obj
E:\msys64\usr\src\muse\muse3\muse\audio.cpp: In constructor 'MusECore::Audio::Audio()':
E:\msys64\usr\src\muse\muse3\muse\audio.cpp:194:37: error: 'F_SETFL' was not declared in this scope
       int rv = fcntl(fromThreadFdw, F_SETFL, O_NONBLOCK);
                                     ^~~~~~~
E:\msys64\usr\src\muse\muse3\muse\audio.cpp:194:37: note: suggested alternative: 'FD_SET'
       int rv = fcntl(fromThreadFdw, F_SETFL, O_NONBLOCK);
                                     ^~~~~~~
                                     FD_SET
E:\msys64\usr\src\muse\muse3\muse\audio.cpp:194:46: error: 'O_NONBLOCK' was not declared in this scope
       int rv = fcntl(fromThreadFdw, F_SETFL, O_NONBLOCK);
                                              ^~~~~~~~~~
E:\msys64\usr\src\muse\muse3\muse\audio.cpp:194:46: note: suggested alternative: 'SMTO_BLOCK'
       int rv = fcntl(fromThreadFdw, F_SETFL, O_NONBLOCK);
                                              ^~~~~~~~~~
                                              SMTO_BLOCK
E:\msys64\usr\src\muse\muse3\muse\audio.cpp:194:16: error: 'fcntl' was not declared in this scope
       int rv = fcntl(fromThreadFdw, F_SETFL, O_NONBLOCK);
                ^~~~~
E:\msys64\usr\src\muse\muse3\muse\audio.cpp:194:16: note: suggested alternative: 'fcvt'
       int rv = fcntl(fromThreadFdw, F_SETFL, O_NONBLOCK);
                ^~~~~
                fcvt
mingw32-make[2]: *** [muse\CMakeFiles\core.dir\build.make:293: muse/CMakeFiles/core.dir/audio.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:495: muse/CMakeFiles/core.dir/all] Error 2
mingw32-make: *** [Makefile:151: all] Error 2
I think we must find an alternative for this.
aquilarubra
Established Member
Posts: 52
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Post by aquilarubra »

I'm having good progress.

qttimer fixed
fcntl fixed (Windows _pipe is already in read/write mode; it does not need to set it via fcntl)
mman Windows implementation added

Now trying to figure out why it does not like enums:

Code: Select all

E:\msys64\usr\src\muse\muse3\muse\midifile.cpp:52:6: error: expected identifier before numeric constant
 enum ERROR {
      ^~~~~
E:\msys64\usr\src\muse\muse3\muse\midifile.cpp:52:6: error: expected unqualified-id before numeric constant
E:\msys64\usr\src\muse\muse3\muse\midifile.cpp: In constructor 'MusECore::MidiFile::MidiFile(FILE*)':
E:\msys64\usr\src\muse\muse3\muse\midifile.cpp:81:19: error: 'MF_NO_ERROR' was not declared in this scope
       _error    = MF_NO_ERROR;
...
aquilarubra
Established Member
Posts: 52
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Post by aquilarubra »

Now, ERROR is already in Windows.h, so it had to be renamed.

I moved a bit forward, till muse/thread.cpp. Here, poll.h was required. I used this Windows port from libressl:
https://raw.githubusercontent.com/libre ... pat/poll.h

Now all poll related errors are gone, but I am left with a rather cryptic error:

Code: Select all

E:\msys64\usr\src\muse\muse3\muse\thread.cpp: In member function 'void MusECore::Thread::loop()':
E:\msys64\usr\src\muse\muse3\muse\thread.cpp:337:1: error: a function-definition is not allowed here before '{' token
 {
 ^
E:\msys64\usr\src\muse\muse3\muse\thread.cpp:376:22: error: qualified-id in declaration before '(' token
 bool Thread::sendMsg1(const void* m, int n)
                      ^
E:\msys64\usr\src\muse\muse3\muse\thread.cpp:390:21: error: qualified-id in declaration before '(' token
 void Thread::readMsg()
                     ^
E:\msys64\usr\src\muse\muse3\muse\thread.cpp:413:22: error: qualified-id in declaration before '(' token
 void Thread::readMsg1(int size)
                      ^
E:\msys64\usr\src\muse\muse3\muse\thread.cpp: At global scope:
E:\msys64\usr\src\muse\muse3\muse\thread.cpp:425:1: error: expected '}' at end of input
 } // namespace MusECore
 ^
E:\msys64\usr\src\muse\muse3\muse\thread.cpp:43:20: note: to match this '{'
 namespace MusECore {
                    ^
mingw32-make[2]: *** [muse\CMakeFiles\core.dir\build.make:893: muse/CMakeFiles/core.dir/thread.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:495: muse/CMakeFiles/core.dir/all] Error 2
mingw32-make: *** [Makefile:151: all] Error 2
Any idea?
aquilarubra
Established Member
Posts: 52
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Post by aquilarubra »

Please, help. I am still halted at that last error: "error: a function-definition is not allowed here before '{' token". Any idea?
spamatica
Established Member
Posts: 573
Joined: Mon Feb 08, 2010 10:38 am
Has thanked: 80 times
Been thanked: 97 times

Re: muse for windows

Post by spamatica »

Sorry, many things to juggle.

Not that I have that much to add. Seems like the kind of error you would get when you have mismatched parenthesis or curly braces somewhere. They tend to be hard to find.
What happens if you simply comment out the Poll lines and remove the Poll include? Just to rule out that this newly added file causes some conflict.

thread.cpp line 337 in my checkout is only "char c;"
What does it look like in your source?
MusE DAW
aquilarubra
Established Member
Posts: 52
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Post by aquilarubra »

I thought about the parenthesis. I did a few undos, and it compiled fine. I re-added my _WIN32 defines, checking everything very well, and the error popped up again. At this point, I would exclude parenthesis.

Tried removing all the poll related calls, same error.

Line 337 is "char c;"

Seeing that other Thread::...function... raise no errors, I got the idea that, perhaps, there is a similar class in Windows include files with those functions already defined and they clash.
aquilarubra
Established Member
Posts: 52
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Post by aquilarubra »

Never mind, I found the missing brace :shock:

I proceeded, fixed a few more things, and now I get this:

Code: Select all

[ 91%] Building CXX object muse/CMakeFiles/muse.dir/main.obj
E:\msys64\usr\src\muse\muse3\muse\main.cpp: In function 'int main(int, char**)':
E:\msys64\usr\src\muse\muse3\muse\main.cpp:1157:28: error: 'MCL_CURRENT' was not declared in this scope
               if (mlockall(MCL_CURRENT | MCL_FUTURE))
                            ^~~~~~~~~~~
E:\msys64\usr\src\muse\muse3\muse\main.cpp:1157:28: note: suggested alternative: 'FILE_CURRENT'
               if (mlockall(MCL_CURRENT | MCL_FUTURE))
                            ^~~~~~~~~~~
                            FILE_CURRENT
E:\msys64\usr\src\muse\muse3\muse\main.cpp:1157:42: error: 'MCL_FUTURE' was not declared in this scope
               if (mlockall(MCL_CURRENT | MCL_FUTURE))
                                          ^~~~~~~~~~
E:\msys64\usr\src\muse\muse3\muse\main.cpp:1157:42: note: suggested alternative: 'MCI_CUT'
               if (mlockall(MCL_CURRENT | MCL_FUTURE))
                                          ^~~~~~~~~~
                                          MCI_CUT
E:\msys64\usr\src\muse\muse3\muse\main.cpp:1157:19: error: 'mlockall' was not declared in this scope
               if (mlockall(MCL_CURRENT | MCL_FUTURE))
                   ^~~~~~~~
E:\msys64\usr\src\muse\muse3\muse\main.cpp:1157:19: note: suggested alternative: 'locale'
               if (mlockall(MCL_CURRENT | MCL_FUTURE))
                   ^~~~~~~~
                   locale
mingw32-make[2]: *** [muse\CMakeFiles\muse.dir\build.make:115: muse/CMakeFiles/muse.dir/main.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:600: muse/CMakeFiles/muse.dir/all] Error 2
mingw32-make: *** [Makefile:151: all] Error 2
thread.cpp compiled and it contained mlockall... I am trying to figure out why main.cpp complains.
aquilarubra
Established Member
Posts: 52
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Post by aquilarubra »

Wow, solved that also. I should wait before posting.

Now I am a sneeze from the end:

Code: Select all

[ 92%] Linking CXX executable muse3.exe
E:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.1/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -ljack
collect2.exe: error: ld returned 1 exit status
mingw32-make[2]: *** [muse\CMakeFiles\muse.dir\build.make:212: muse/muse3.exe] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:600: muse/CMakeFiles/muse.dir/all] Error 2
mingw32-make: *** [Makefile:151: all] Error 2
aquilarubra
Established Member
Posts: 52
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Post by aquilarubra »

I fixed also the jack issue. Here is the progress so far.

Code: Select all

MINGW64 /usr/src/muse-win32/muse3/build
$ cmake -DCMAKE_BUILD_TYPE=release -G "MinGW Makefiles" -DCMAKE_SH="CMAKE_SH-NOTFOUND" -Wno-dev .. && ../fix_make_paths.pl
-- The C compiler identification is GNU 8.2.1
-- The CXX compiler identification is GNU 8.2.1
-- Check for working C compiler: E:/msys64/mingw64/bin/gcc.exe
-- Check for working C compiler: E:/msys64/mingw64/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: E:/msys64/mingw64/bin/g++.exe
-- Check for working CXX compiler: E:/msys64/mingw64/bin/g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: E:/msys64/mingw64/bin/pkg-config.exe (found version "0.29.2")
 vst header path: E:/msys64/usr/src/muse-win32/muse3/vestige
-- Found Git: E:/msys64/usr/bin/git.exe (found version "2.20.1")
-- Looking for ladspa.h
-- Looking for ladspa.h - found
-- Checking for module 'sndfile>=1.0.0'
--   Found sndfile, version 1.0.28
-- Checking for module 'samplerate>=0.1.0'
--   Found samplerate, version 0.1.9
-- Checking for module 'jack>=0.103'
--   Found jack, version 1.9.12
-- Checking for module 'alsa>=0.9.0'
--   No package 'alsa' found
-- Checking for module 'lash-1.0>=0.2'
--   No package 'lash-1.0' found
-- Checking for module 'lrdf>=0.5'
--   No package 'lrdf' found
-- Checking for module 'rtaudio>=5.0'
--   No package 'rtaudio' found
-- Checking for module 'liblo>=0.23'
--   Found liblo, version 0.29
DSSI disabled
Native VST support enabled
-- Some or all of the gtk libraries were not found. (missing: GTK2_GDKCONFIG_INCLUDE_DIR GTK2_GLIBCONFIG_INCLUDE_DIR)
-- Some or all of the gtkmm libraries were not found. (missing: GTK2_GTKMMCONFIG_INCLUDE_DIR GTK2_GDKMMCONFIG_INCLUDE_DIR GTK2_GLIBMMCONFIG_INCLUDE_DIR)
-- Checking for module 'lilv-0>=0.22.0'
--   Found lilv-0, version 0.22.0
-- Checking for module 'sord-0>=0.14.0'
--   Found sord-0, version 0.16.2
-- Checking for module 'lv2>=1.12.0'
--   Found lv2, version 1.12.0
-- Checking for module 'fluidsynth>=0.9.0'
--   No package 'fluidsynth' found
-- Checking for module 'libinstpatch-1.0'
--   No package 'libinstpatch-1.0' found


** WARNING: rtaudio (>= 4.0) was enabled, but development files were not found.
** WARNING: lash (>= 0.2) was enabled, but development files were not found.
** HINT: Don't have LASH? Try installing the LADISH LASH compatibility package instead.
** WARNING: lrdf (>= 0.5) was enabled, but development files were not found.
** WARNING: ALSA >= 0.9.0 was enabled, but development files were not found.
** WARNING: DSSI (>= 0.9.0) was enabled, but ALSA development files were not found.
** WARNING: OSC is enabled and DSSI is enabled, but DSSI development files were not found.
   OSC support will be built, but not currently used by anything until future features do.
** WARNING: fluidsynth (>= 0.9.0) was enabled, but development files were not found.
** WARNING: libinstpatch (>= 1.0) was enabled, but development files were not found.
   Automatic drum lists for fluidsynth MESS plugin will not be available.
** WARNING: LV2 GTK2 support is enabled, but Gtk2 (gtkmm-2, gtk+-2) development files were not found. LV2 Gtk2 UI support is disabled.


The following components will be built:
-----------------------------------------------
   OSC (Liblo) support
   LV2 support
   Native VST support

The following components WILL NOT be built:
-----------------------------------------------
   ALSA support
   RTAudio support
   Lash support
   Lrdf support
   Python support
   DSSI support
   LV2 Gtk2 UI support
   Fluidsynth support
   Instpatch support
   Experimental features

 Internal modules will be built statically into the final binary.
 Build type: release

Linking system LV2 support libraries (lv2, lilv, sord etc.)

-- Configuring done
-- Generating done
-- Build files have been written to: E:/msys64/usr/src/muse-win32/muse3/build



MINGW64 /usr/src/muse-win32/muse3/build
$ mingw32-make -j1 all
Scanning dependencies of target al
[  0%] Building CXX object al/CMakeFiles/al.dir/al.obj
[  0%] Building CXX object al/CMakeFiles/al.dir/dsp.obj
[  0%] Building CXX object al/CMakeFiles/al.dir/sig.obj
[  0%] Building CXX object al/CMakeFiles/al.dir/xml.obj
[  0%] Linking CXX static library libmuse_al.a
[  0%] Built target al
[  0%] Generating moc_volslider.cpp
[  0%] Generating moc_aslider.cpp
[  0%] Generating moc_checkbox.cpp
[  0%] Generating moc_combobox.cpp
[  0%] Generating moc_drawbar.cpp
[  1%] Generating moc_floatentry.cpp
[  1%] Generating moc_knob.cpp
[  1%] Generating moc_midimeter.cpp
[  1%] Generating moc_midimslider.cpp
[  1%] Generating moc_midipanentry.cpp
[  1%] Generating moc_midipanknob.cpp
[  1%] Generating moc_midivolentry.cpp
[  1%] Generating moc_mslider.cpp
[  2%] Generating moc_panentry.cpp
[  2%] Generating moc_panknob.cpp
[  2%] Generating moc_pitchedit.cpp
[  2%] Generating moc_pitchlabel.cpp
[  2%] Generating moc_sigedit.cpp
[  2%] Generating moc_sigspinbox.cpp
[  2%] Generating moc_slider.cpp
[  3%] Generating moc_tempoedit.cpp
[  3%] Generating moc_tempolabel.cpp
[  3%] Generating moc_volentry.cpp
[  3%] Generating moc_volknob.cpp
Scanning dependencies of target awl
[  3%] Building CXX object awl/CMakeFiles/awl.dir/aslider.obj
[  3%] Building CXX object awl/CMakeFiles/awl.dir/awl.obj
[  3%] Building CXX object awl/CMakeFiles/awl.dir/checkbox.obj
[  4%] Building CXX object awl/CMakeFiles/awl.dir/combobox.obj
[  4%] Building CXX object awl/CMakeFiles/awl.dir/drawbar.obj
[  4%] Building CXX object awl/CMakeFiles/awl.dir/floatentry.obj
[  4%] Building CXX object awl/CMakeFiles/awl.dir/knob.obj
[  4%] Building CXX object awl/CMakeFiles/awl.dir/midimeter.obj
[  4%] Building CXX object awl/CMakeFiles/awl.dir/midimslider.obj
[  4%] Building CXX object awl/CMakeFiles/awl.dir/midipanentry.obj
[  4%] Building CXX object awl/CMakeFiles/awl.dir/midipanknob.obj
[  5%] Building CXX object awl/CMakeFiles/awl.dir/midivolentry.obj
[  5%] Building CXX object awl/CMakeFiles/awl.dir/mslider.obj
[  5%] Building CXX object awl/CMakeFiles/awl.dir/panentry.obj
[  5%] Building CXX object awl/CMakeFiles/awl.dir/panknob.obj
[  5%] Building CXX object awl/CMakeFiles/awl.dir/pitchedit.obj
[  5%] Building CXX object awl/CMakeFiles/awl.dir/pitchlabel.obj
[  5%] Building CXX object awl/CMakeFiles/awl.dir/sigedit.obj
[  5%] Building CXX object awl/CMakeFiles/awl.dir/sigspinbox.obj
[  6%] Building CXX object awl/CMakeFiles/awl.dir/slider.obj
[  6%] Building CXX object awl/CMakeFiles/awl.dir/tempoedit.obj
[  6%] Building CXX object awl/CMakeFiles/awl.dir/tempolabel.obj
[  6%] Building CXX object awl/CMakeFiles/awl.dir/utils.obj
[  6%] Building CXX object awl/CMakeFiles/awl.dir/volentry.obj
[  6%] Building CXX object awl/CMakeFiles/awl.dir/volknob.obj
[  6%] Building CXX object awl/CMakeFiles/awl.dir/volslider.obj
[  6%] Building CXX object awl/CMakeFiles/awl.dir/moc_aslider.obj
[  7%] Building CXX object awl/CMakeFiles/awl.dir/moc_checkbox.obj
[  7%] Building CXX object awl/CMakeFiles/awl.dir/moc_combobox.obj
[  7%] Building CXX object awl/CMakeFiles/awl.dir/moc_drawbar.obj
[  7%] Building CXX object awl/CMakeFiles/awl.dir/moc_floatentry.obj
[  7%] Building CXX object awl/CMakeFiles/awl.dir/moc_knob.obj
[  7%] Building CXX object awl/CMakeFiles/awl.dir/moc_midimeter.obj
[  7%] Building CXX object awl/CMakeFiles/awl.dir/moc_midimslider.obj
[  8%] Building CXX object awl/CMakeFiles/awl.dir/moc_midipanentry.obj
[  8%] Building CXX object awl/CMakeFiles/awl.dir/moc_midipanknob.obj
[  8%] Building CXX object awl/CMakeFiles/awl.dir/moc_midivolentry.obj
[  8%] Building CXX object awl/CMakeFiles/awl.dir/moc_mslider.obj
[  8%] Building CXX object awl/CMakeFiles/awl.dir/moc_panentry.obj
[  8%] Building CXX object awl/CMakeFiles/awl.dir/moc_panknob.obj
[  8%] Building CXX object awl/CMakeFiles/awl.dir/moc_pitchedit.obj
[  8%] Building CXX object awl/CMakeFiles/awl.dir/moc_pitchlabel.obj
[  9%] Building CXX object awl/CMakeFiles/awl.dir/moc_sigedit.obj
[  9%] Building CXX object awl/CMakeFiles/awl.dir/moc_sigspinbox.obj
[  9%] Building CXX object awl/CMakeFiles/awl.dir/moc_slider.obj
[  9%] Building CXX object awl/CMakeFiles/awl.dir/moc_tempoedit.obj
[  9%] Building CXX object awl/CMakeFiles/awl.dir/moc_tempolabel.obj
[  9%] Building CXX object awl/CMakeFiles/awl.dir/moc_volentry.obj
[  9%] Building CXX object awl/CMakeFiles/awl.dir/moc_volknob.obj
[  9%] Building CXX object awl/CMakeFiles/awl.dir/moc_volslider.obj
[ 10%] Linking CXX shared library libmuse_awl.dll
[ 10%] Built target awl
Scanning dependencies of target grepmidi
[ 10%] Building CXX object grepmidi/CMakeFiles/grepmidi.dir/grepmidi.obj
[ 11%] Linking CXX executable grepmidi.exe
[ 11%] Built target grepmidi
Scanning dependencies of target plugin_scan_module
[ 11%] Building CXX object libs/plugin/CMakeFiles/plugin_scan_module.dir/plugin_scan.obj
[ 11%] Linking CXX shared library libmuse_plugin_scan_module.dll
[ 11%] Built target plugin_scan_module
Scanning dependencies of target plugin_list_module
[ 11%] Building CXX object libs/plugin/CMakeFiles/plugin_list_module.dir/plugin_list.obj
[ 11%] Linking CXX shared library libmuse_plugin_list_module.dll
[ 11%] Built target plugin_list_module
Scanning dependencies of target xml_module
[ 11%] Building CXX object libs/xml/CMakeFiles/xml_module.dir/xml.obj
[ 12%] Linking CXX shared library libmuse_xml_module.dll
[ 12%] Built target xml_module
Scanning dependencies of target plugin_cache_reader_module
[ 12%] Building CXX object libs/plugin/CMakeFiles/plugin_cache_reader_module.dir/plugin_cache_reader.obj
[ 12%] Linking CXX shared library libmuse_plugin_cache_reader_module.dll
[ 12%] Built target plugin_cache_reader_module
Scanning dependencies of target plugin_rdf_module
[ 12%] Building CXX object libs/plugin/CMakeFiles/plugin_rdf_module.dir/plugin_rdf.obj
[ 13%] Linking CXX shared library libmuse_plugin_rdf_module.dll
[ 13%] Built target plugin_rdf_module
Scanning dependencies of target plugin_cache_writer_module
[ 13%] Building CXX object libs/plugin/CMakeFiles/plugin_cache_writer_module.dir/plugin_cache_writer.obj
E:/msys64/usr/src/muse-win32/muse3/libs/plugin/plugin_cache_writer.cpp: In function 'void MusEPlugin::scanDssiPlugins(MusEPlugin::PluginScanList*, bool, bool)':
E:/msys64/usr/src/muse-win32/muse3/libs/plugin/plugin_cache_writer.cpp:1667:38: warning: unused parameter 'list' [-Wunused-parameter]
 void scanDssiPlugins(PluginScanList* list, bool scanPorts, bool debugStdErr)
                      ~~~~~~~~~~~~~~~~^~~~
E:/msys64/usr/src/muse-win32/muse3/libs/plugin/plugin_cache_writer.cpp:1667:49: warning: unused parameter 'scanPorts' [-Wunused-parameter]
 void scanDssiPlugins(PluginScanList* list, bool scanPorts, bool debugStdErr)
                                            ~~~~~^~~~~~~~~
E:/msys64/usr/src/muse-win32/muse3/libs/plugin/plugin_cache_writer.cpp:1667:65: warning: unused parameter 'debugStdErr' [-Wunused-parameter]
 void scanDssiPlugins(PluginScanList* list, bool scanPorts, bool debugStdErr)
                                                            ~~~~~^~~~~~~~~~~
[ 13%] Linking CXX shared library libmuse_plugin_cache_writer_module.dll
[ 13%] Built target plugin_cache_writer_module
Scanning dependencies of target muse_plugin_scan
[ 13%] Building CXX object sandbox/CMakeFiles/muse_plugin_scan.dir/muse_plugin_scan.obj
[ 13%] Linking CXX executable muse_plugin_scan.exe
[ 13%] Built target muse_plugin_scan
Scanning dependencies of target sysex_helper_module
[ 13%] Building CXX object libs/sysex_helper/CMakeFiles/sysex_helper_module.dir/sysex_helper.obj
[ 13%] Linking CXX shared library libmuse_sysex_helper_module.dll
[ 13%] Built target sysex_helper_module
Scanning dependencies of target memory_module
[ 13%] Building CXX object libs/memory/CMakeFiles/memory_module.dir/memory.obj
[ 13%] Linking CXX shared library libmuse_memory_module.dll
[ 13%] Built target memory_module
Scanning dependencies of target evdata_module
[ 13%] Building CXX object libs/evdata/CMakeFiles/evdata_module.dir/evdata.obj
[ 13%] Linking CXX shared library libmuse_evdata_module.dll
[ 13%] Built target evdata_module
Scanning dependencies of target mpevent_module
[ 13%] Building CXX object libs/mpevent/CMakeFiles/mpevent_module.dir/mpevent.obj
[ 13%] Linking CXX shared library libmuse_mpevent_module.dll
[ 13%] Built target mpevent_module
[ 13%] Generating moc_gui.cpp
Scanning dependencies of target synti
[ 13%] Building CXX object synti/libsynti/CMakeFiles/synti.dir/moc_gui.obj
[ 13%] Building CXX object synti/libsynti/CMakeFiles/synti.dir/gui.obj
[ 13%] Building CXX object synti/libsynti/CMakeFiles/synti.dir/mess.obj
[ 13%] Building CXX object synti/libsynti/CMakeFiles/synti.dir/mono.obj
[ 14%] Building CXX object synti/libsynti/CMakeFiles/synti.dir/poly.obj
[ 14%] Linking CXX static library libmuse_synti.a
[ 14%] Built target synti
[ 14%] Generating moc_wavepreview.cpp
Scanning dependencies of target wavepreview_module
[ 15%] Building CXX object muse/CMakeFiles/wavepreview_module.dir/moc_wavepreview.obj
[ 15%] Building CXX object muse/CMakeFiles/wavepreview_module.dir/wavepreview.obj
[ 15%] Linking CXX shared library libmuse_wavepreview_module.dll
[ 15%] Built target wavepreview_module
[ 15%] Generating moc_lv2host.cpp
Scanning dependencies of target lv2host_module
[ 15%] Building CXX object muse/CMakeFiles/lv2host_module.dir/moc_lv2host.obj
[ 16%] Building CXX object muse/CMakeFiles/lv2host_module.dir/lv2host.obj
In file included from E:/msys64/usr/src/muse-win32/muse3/muse/lv2host.h:43,
                 from E:/msys64/usr/src/muse-win32/muse3/muse/lv2host.cpp:52:
E:/msys64/usr/src/muse-win32/muse3/muse/lv2host.cpp: In static member function 'static void MusECore::LV2Synth::lv2state_UnloadLoadPresets(MusECore::LV2Synth*, bool, bool)':
E:/msys64/mingw64/include/lilv-0/lilv/lilv.h:353:17: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
  for (LilvIter* (iter) = lilv_ ## colltype ## _begin(collection); \
                 ^
E:/msys64/usr/src/muse-win32/muse3/muse/lv2host.cpp:2142:7: note: in expansion of macro 'LILV_FOREACH'
       LILV_FOREACH(nodes, i, presets)
       ^~~~~~~~~~~~
[ 16%] Linking CXX static library libmuse_lv2host_module.a
[ 16%] Built target lv2host_module
Scanning dependencies of target icons
[ 16%] Building CXX object muse/CMakeFiles/icons.dir/icons.obj
[ 16%] Linking CXX static library libmuse_icons.a
[ 16%] Built target icons
Scanning dependencies of target muse_string
[ 16%] Building CXX object libs/string/CMakeFiles/muse_string.dir/strntcpy.obj
[ 16%] Linking CXX static library libmuse_string.a
[ 16%] Built target muse_string
[ 16%] Generating moc_widget_stack.cpp
[ 16%] Generating moc_action.cpp
[ 16%] Generating moc_checkbox.cpp
[ 16%] Generating moc_clipper_label.cpp
[ 16%] Generating moc_colorframe.cpp
[ 16%] Generating moc_comboQuant.cpp
[ 17%] Generating moc_cpu_toolbar.cpp
[ 17%] Generating moc_ctrlcombo.cpp
[ 17%] Generating moc_doublespinbox.cpp
[ 17%] Generating moc_knob.cpp
[ 17%] Generating moc_knob_and_meter.cpp
[ 17%] Generating moc_lcombo.cpp
[ 17%] Generating moc_line_edit.cpp
[ 18%] Generating moc_menutitleitem.cpp
[ 18%] Generating moc_meter.cpp
[ 18%] Generating moc_mlabel.cpp
[ 18%] Generating moc_pixmap_button.cpp
[ 18%] Generating moc_popup_double_spinbox.cpp
[ 18%] Generating moc_scrollbar.cpp
[ 18%] Generating moc_scrollscale.cpp
[ 18%] Generating moc_sliderbase.cpp
[ 19%] Generating moc_spinbox.cpp
[ 19%] Generating moc_spinboxFP.cpp
[ 19%] Generating moc_swidget.cpp
[ 19%] Generating moc_tempolabel.cpp
[ 19%] Generating moc_text_edit.cpp
[ 19%] Generating moc_vscale.cpp
Scanning dependencies of target widgets
[ 19%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_action.obj
[ 20%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_checkbox.obj
[ 20%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_clipper_label.obj
[ 20%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_colorframe.obj
[ 20%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_comboQuant.obj
[ 20%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_cpu_toolbar.obj
[ 20%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_ctrlcombo.obj
[ 20%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_doublespinbox.obj
[ 20%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_knob.obj
[ 21%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_knob_and_meter.obj
[ 21%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_lcombo.obj
[ 21%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_line_edit.obj
[ 21%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_menutitleitem.obj
[ 21%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_meter.obj
[ 21%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_mlabel.obj
[ 21%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_pixmap_button.obj
[ 21%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_popup_double_spinbox.obj
[ 22%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_scrollbar.obj
[ 22%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_scrollscale.obj
[ 22%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_sliderbase.obj
[ 22%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_spinbox.obj
[ 22%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_spinboxFP.obj
[ 22%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_swidget.obj
[ 22%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_tempolabel.obj
[ 23%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_text_edit.obj
[ 23%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_vscale.obj
[ 23%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/moc_widget_stack.obj
[ 23%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/checkbox.obj
[ 23%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/clipper_label.obj
[ 23%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/colorframe.obj
[ 23%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/comboQuant.obj
[ 23%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/cpu_toolbar.obj
[ 24%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/ctrlcombo.obj
[ 24%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/dimap.obj
[ 24%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/doublespinbox.obj
[ 24%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/drange.obj
[ 24%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/knob.obj
[ 24%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/knob_and_meter.obj
[ 24%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/lcombo.obj
[ 24%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/line_edit.obj
[ 25%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/menutitleitem.obj
[ 25%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/meter.obj
[ 25%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/mlabel.obj
[ 25%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/mmath.obj
[ 25%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/pixmap_button.obj
[ 25%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/popup_double_spinbox.obj
[ 25%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/scldiv.obj
[ 25%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/scldraw.obj
[ 26%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/sclif.obj
[ 26%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/scrollbar.obj
[ 26%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/scrollscale.obj
[ 26%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/sliderbase.obj
[ 26%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/spinbox.obj
[ 26%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/spinboxFP.obj
[ 26%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/swidget.obj
[ 26%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/tempolabel.obj
[ 27%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/text_edit.obj
[ 27%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/vscale.obj
[ 27%] Building CXX object muse/widgets/CMakeFiles/widgets.dir/widget_stack.obj
[ 27%] Linking CXX static library libmuse_widgets.a
[ 27%] Built target widgets
[ 27%] Generating moc_warn_bad_timing.cpp
[ 28%] Generating moc_aboutbox_impl.cpp
[ 28%] Generating moc_arrangercolumns.cpp
[ 28%] Generating moc_bigtime.cpp
[ 28%] Generating moc_canvas.cpp
[ 28%] Generating moc_choose_sysex.cpp
[ 28%] Generating moc_combobox.cpp
[ 28%] Generating moc_comment.cpp
[ 28%] Generating moc_compact_knob.cpp
[ 29%] Generating moc_compact_patch_edit.cpp
[ 29%] Generating moc_compact_slider.cpp
[ 29%] Generating moc_copy_on_write.cpp
[ 29%] Generating moc_custom_widget_actions.cpp
[ 29%] Generating moc_dentry.cpp
[ 29%] Generating moc_didyouknow.cpp
[ 29%] Generating moc_doublelabel.cpp
[ 29%] Generating moc_editevent.cpp
[ 30%] Generating moc_elided_label.cpp
[ 30%] Generating moc_filedialog.cpp
[ 30%] Generating moc_genset.cpp
[ 30%] Generating moc_mdisettings.cpp
[ 30%] Generating moc_header.cpp
[ 30%] Generating moc_hitscale.cpp
[ 30%] Generating moc_intlabel.cpp
[ 31%] Generating moc_lcd_widgets.cpp
[ 31%] Generating moc_meter_slider.cpp
[ 31%] Generating moc_metronome.cpp
[ 31%] Generating moc_midi_audio_control.cpp
[ 31%] Generating moc_midisyncimpl.cpp
[ 31%] Generating moc_midi_warn_init_pending_impl.cpp
[ 31%] Generating moc_mixdowndialog.cpp
[ 31%] Generating moc_mtscale.cpp
[ 32%] Generating moc_mtscale_flo.cpp
[ 32%] Generating moc_nentry.cpp
[ 32%] Generating moc_noteinfo.cpp
[ 32%] Generating moc_pastedialog.cpp
[ 32%] Generating moc_pasteeventsdialog.cpp
[ 32%] Generating moc_pitchedit.cpp
[ 32%] Generating moc_pitchlabel.cpp
[ 32%] Generating moc_plugindialog.cpp
[ 33%] Generating moc_popupmenu.cpp
[ 33%] Generating moc_posedit.cpp
[ 33%] Generating moc_poslabel.cpp
[ 33%] Generating moc_projectcreateimpl.cpp
[ 33%] Generating moc_routepopup.cpp
[ 33%] Generating moc_scroll_area.cpp
[ 33%] Generating moc_shortcutcapturedialog.cpp
[ 33%] Generating moc_shortcutconfig.cpp
[ 34%] Generating moc_sigedit.cpp
[ 34%] Generating moc_siglabel.cpp
[ 34%] Generating moc_sigscale.cpp
[ 34%] Generating moc_sigspinbox.cpp
[ 34%] Generating moc_sig_tempo_toolbar.cpp
[ 34%] Generating moc_slider.cpp
[ 34%] Generating moc_songinfo.cpp
[ 34%] Generating moc_songpos_toolbar.cpp
[ 35%] Generating moc_splitter.cpp
[ 35%] Generating moc_tb1.cpp
[ 35%] Generating moc_tools.cpp
[ 35%] Generating moc_trackinfo_layout.cpp
[ 35%] Generating moc_tracks_duplicate.cpp
[ 35%] Generating moc_ttoolbutton.cpp
[ 35%] Generating moc_unusedwavefiles.cpp
[ 36%] Generating moc_view.cpp
[ 36%] Generating moc_visibletracks.cpp
[ 36%] Generating moc_vst_native_editor.cpp
Scanning dependencies of target components
[ 36%] Building CXX object muse/components/CMakeFiles/components.dir/moc_aboutbox_impl.obj
[ 36%] Building CXX object muse/components/CMakeFiles/components.dir/moc_arrangercolumns.obj
[ 36%] Building CXX object muse/components/CMakeFiles/components.dir/moc_bigtime.obj
[ 36%] Building CXX object muse/components/CMakeFiles/components.dir/moc_canvas.obj
[ 37%] Building CXX object muse/components/CMakeFiles/components.dir/moc_choose_sysex.obj
[ 37%] Building CXX object muse/components/CMakeFiles/components.dir/moc_combobox.obj
[ 37%] Building CXX object muse/components/CMakeFiles/components.dir/moc_comment.obj
[ 37%] Building CXX object muse/components/CMakeFiles/components.dir/moc_compact_knob.obj
[ 37%] Building CXX object muse/components/CMakeFiles/components.dir/moc_compact_patch_edit.obj
[ 37%] Building CXX object muse/components/CMakeFiles/components.dir/moc_compact_slider.obj
[ 37%] Building CXX object muse/components/CMakeFiles/components.dir/moc_copy_on_write.obj
[ 37%] Building CXX object muse/components/CMakeFiles/components.dir/moc_custom_widget_actions.obj
[ 38%] Building CXX object muse/components/CMakeFiles/components.dir/moc_dentry.obj
[ 38%] Building CXX object muse/components/CMakeFiles/components.dir/moc_didyouknow.obj
[ 38%] Building CXX object muse/components/CMakeFiles/components.dir/moc_doublelabel.obj
[ 38%] Building CXX object muse/components/CMakeFiles/components.dir/moc_editevent.obj
[ 38%] Building CXX object muse/components/CMakeFiles/components.dir/moc_elided_label.obj
[ 38%] Building CXX object muse/components/CMakeFiles/components.dir/moc_filedialog.obj
[ 38%] Building CXX object muse/components/CMakeFiles/components.dir/moc_genset.obj
[ 38%] Building CXX object muse/components/CMakeFiles/components.dir/moc_mdisettings.obj
[ 39%] Building CXX object muse/components/CMakeFiles/components.dir/moc_header.obj
[ 39%] Building CXX object muse/components/CMakeFiles/components.dir/moc_hitscale.obj
[ 39%] Building CXX object muse/components/CMakeFiles/components.dir/moc_intlabel.obj
[ 39%] Building CXX object muse/components/CMakeFiles/components.dir/moc_lcd_widgets.obj
[ 39%] Building CXX object muse/components/CMakeFiles/components.dir/moc_meter_slider.obj
[ 39%] Building CXX object muse/components/CMakeFiles/components.dir/moc_metronome.obj
[ 39%] Building CXX object muse/components/CMakeFiles/components.dir/moc_midi_audio_control.obj
[ 39%] Building CXX object muse/components/CMakeFiles/components.dir/moc_midisyncimpl.obj
[ 40%] Building CXX object muse/components/CMakeFiles/components.dir/moc_midi_warn_init_pending_impl.obj
[ 40%] Building CXX object muse/components/CMakeFiles/components.dir/moc_mixdowndialog.obj
[ 40%] Building CXX object muse/components/CMakeFiles/components.dir/moc_mtscale.obj
[ 40%] Building CXX object muse/components/CMakeFiles/components.dir/moc_mtscale_flo.obj
[ 40%] Building CXX object muse/components/CMakeFiles/components.dir/moc_nentry.obj
[ 40%] Building CXX object muse/components/CMakeFiles/components.dir/moc_noteinfo.obj
[ 40%] Building CXX object muse/components/CMakeFiles/components.dir/moc_pastedialog.obj
[ 41%] Building CXX object muse/components/CMakeFiles/components.dir/moc_pasteeventsdialog.obj
[ 41%] Building CXX object muse/components/CMakeFiles/components.dir/moc_pitchedit.obj
[ 41%] Building CXX object muse/components/CMakeFiles/components.dir/moc_pitchlabel.obj
[ 41%] Building CXX object muse/components/CMakeFiles/components.dir/moc_plugindialog.obj
[ 41%] Building CXX object muse/components/CMakeFiles/components.dir/moc_popupmenu.obj
[ 41%] Building CXX object muse/components/CMakeFiles/components.dir/moc_posedit.obj
[ 41%] Building CXX object muse/components/CMakeFiles/components.dir/moc_poslabel.obj
[ 41%] Building CXX object muse/components/CMakeFiles/components.dir/moc_projectcreateimpl.obj
[ 42%] Building CXX object muse/components/CMakeFiles/components.dir/moc_routepopup.obj
[ 42%] Building CXX object muse/components/CMakeFiles/components.dir/moc_scroll_area.obj
[ 42%] Building CXX object muse/components/CMakeFiles/components.dir/moc_shortcutcapturedialog.obj
[ 42%] Building CXX object muse/components/CMakeFiles/components.dir/moc_shortcutconfig.obj
[ 42%] Building CXX object muse/components/CMakeFiles/components.dir/moc_sigedit.obj
[ 42%] Building CXX object muse/components/CMakeFiles/components.dir/moc_siglabel.obj
[ 42%] Building CXX object muse/components/CMakeFiles/components.dir/moc_sigscale.obj
[ 42%] Building CXX object muse/components/CMakeFiles/components.dir/moc_sigspinbox.obj
[ 43%] Building CXX object muse/components/CMakeFiles/components.dir/moc_sig_tempo_toolbar.obj
[ 43%] Building CXX object muse/components/CMakeFiles/components.dir/moc_slider.obj
[ 43%] Building CXX object muse/components/CMakeFiles/components.dir/moc_songinfo.obj
[ 43%] Building CXX object muse/components/CMakeFiles/components.dir/moc_songpos_toolbar.obj
[ 43%] Building CXX object muse/components/CMakeFiles/components.dir/moc_splitter.obj
[ 43%] Building CXX object muse/components/CMakeFiles/components.dir/moc_tb1.obj
[ 43%] Building CXX object muse/components/CMakeFiles/components.dir/moc_tools.obj
[ 43%] Building CXX object muse/components/CMakeFiles/components.dir/moc_trackinfo_layout.obj
[ 44%] Building CXX object muse/components/CMakeFiles/components.dir/moc_tracks_duplicate.obj
[ 44%] Building CXX object muse/components/CMakeFiles/components.dir/moc_ttoolbutton.obj
[ 44%] Building CXX object muse/components/CMakeFiles/components.dir/moc_unusedwavefiles.obj
[ 44%] Building CXX object muse/components/CMakeFiles/components.dir/moc_view.obj
[ 44%] Building CXX object muse/components/CMakeFiles/components.dir/moc_visibletracks.obj
[ 44%] Building CXX object muse/components/CMakeFiles/components.dir/moc_vst_native_editor.obj
[ 44%] Building CXX object muse/components/CMakeFiles/components.dir/moc_warn_bad_timing.obj
[ 44%] Building CXX object muse/components/CMakeFiles/components.dir/aboutbox_impl.obj
[ 45%] Building CXX object muse/components/CMakeFiles/components.dir/arrangercolumns.obj
[ 45%] Building CXX object muse/components/CMakeFiles/components.dir/background_painter.obj
[ 45%] Building CXX object muse/components/CMakeFiles/components.dir/bigtime.obj
[ 45%] Building CXX object muse/components/CMakeFiles/components.dir/canvas.obj
[ 45%] Building CXX object muse/components/CMakeFiles/components.dir/choose_sysex.obj
[ 45%] Building CXX object muse/components/CMakeFiles/components.dir/citem.obj
[ 46%] Building CXX object muse/components/CMakeFiles/components.dir/comment.obj
[ 46%] Building CXX object muse/components/CMakeFiles/components.dir/compact_knob.obj
[ 46%] Building CXX object muse/components/CMakeFiles/components.dir/compact_patch_edit.obj
[ 46%] Building CXX object muse/components/CMakeFiles/components.dir/compact_slider.obj
[ 46%] Building CXX object muse/components/CMakeFiles/components.dir/copy_on_write.obj
[ 46%] Building CXX object muse/components/CMakeFiles/components.dir/custom_widget_actions.obj
[ 46%] Building CXX object muse/components/CMakeFiles/components.dir/dentry.obj
[ 46%] Building CXX object muse/components/CMakeFiles/components.dir/doublelabel.obj
[ 47%] Building CXX object muse/components/CMakeFiles/components.dir/editevent.obj
[ 47%] Building CXX object muse/components/CMakeFiles/components.dir/elided_label.obj
[ 47%] Building CXX object muse/components/CMakeFiles/components.dir/filedialog.obj
[ 47%] Building CXX object muse/components/CMakeFiles/components.dir/genset.obj
[ 47%] Building CXX object muse/components/CMakeFiles/components.dir/header.obj
[ 47%] Building CXX object muse/components/CMakeFiles/components.dir/hitscale.obj
[ 47%] Building CXX object muse/components/CMakeFiles/components.dir/intlabel.obj
[ 47%] Building CXX object muse/components/CMakeFiles/components.dir/lcd_widgets.obj
[ 48%] Building CXX object muse/components/CMakeFiles/components.dir/mdisettings.obj
[ 48%] Building CXX object muse/components/CMakeFiles/components.dir/meter_slider.obj
[ 48%] Building CXX object muse/components/CMakeFiles/components.dir/metronome.obj
[ 48%] Building CXX object muse/components/CMakeFiles/components.dir/midi_audio_control.obj
[ 48%] Building CXX object muse/components/CMakeFiles/components.dir/midi_warn_init_pending_impl.obj
[ 48%] Building CXX object muse/components/CMakeFiles/components.dir/midisyncimpl.obj
[ 48%] Building CXX object muse/components/CMakeFiles/components.dir/mixdowndialog.obj
[ 48%] Building CXX object muse/components/CMakeFiles/components.dir/mtscale.obj
[ 49%] Building CXX object muse/components/CMakeFiles/components.dir/mtscale_flo.obj
[ 49%] Building CXX object muse/components/CMakeFiles/components.dir/nentry.obj
[ 49%] Building CXX object muse/components/CMakeFiles/components.dir/noteinfo.obj
[ 49%] Building CXX object muse/components/CMakeFiles/components.dir/pastedialog.obj
[ 49%] Building CXX object muse/components/CMakeFiles/components.dir/pasteeventsdialog.obj
[ 49%] Building CXX object muse/components/CMakeFiles/components.dir/pitchedit.obj
[ 49%] Building CXX object muse/components/CMakeFiles/components.dir/pitchlabel.obj
[ 49%] Building CXX object muse/components/CMakeFiles/components.dir/plugindialog.obj
[ 50%] Building CXX object muse/components/CMakeFiles/components.dir/popupmenu.obj
[ 50%] Building CXX object muse/components/CMakeFiles/components.dir/posedit.obj
[ 50%] Building CXX object muse/components/CMakeFiles/components.dir/poslabel.obj
[ 50%] Building CXX object muse/components/CMakeFiles/components.dir/projectcreateimpl.obj
[ 50%] Building CXX object muse/components/CMakeFiles/components.dir/routepopup.obj
[ 50%] Building CXX object muse/components/CMakeFiles/components.dir/scroll_area.obj
[ 50%] Building CXX object muse/components/CMakeFiles/components.dir/shortcutcapturedialog.obj
[ 51%] Building CXX object muse/components/CMakeFiles/components.dir/shortcutconfig.obj
[ 51%] Building CXX object muse/components/CMakeFiles/components.dir/sig_tempo_toolbar.obj
[ 51%] Building CXX object muse/components/CMakeFiles/components.dir/sigedit.obj
[ 51%] Building CXX object muse/components/CMakeFiles/components.dir/siglabel.obj
[ 51%] Building CXX object muse/components/CMakeFiles/components.dir/sigscale.obj
[ 51%] Building CXX object muse/components/CMakeFiles/components.dir/sigspinbox.obj
[ 51%] Building CXX object muse/components/CMakeFiles/components.dir/slider.obj
[ 51%] Building CXX object muse/components/CMakeFiles/components.dir/songpos_toolbar.obj
[ 52%] Building CXX object muse/components/CMakeFiles/components.dir/splitter.obj
[ 52%] Building CXX object muse/components/CMakeFiles/components.dir/tb1.obj
[ 52%] Building CXX object muse/components/CMakeFiles/components.dir/tools.obj
[ 52%] Building CXX object muse/components/CMakeFiles/components.dir/trackinfo_layout.obj
[ 52%] Building CXX object muse/components/CMakeFiles/components.dir/tracks_duplicate.obj
[ 52%] Building CXX object muse/components/CMakeFiles/components.dir/ttoolbutton.obj
[ 52%] Building CXX object muse/components/CMakeFiles/components.dir/unusedwavefiles.obj
[ 52%] Building CXX object muse/components/CMakeFiles/components.dir/utils.obj
[ 53%] Building CXX object muse/components/CMakeFiles/components.dir/view.obj
[ 53%] Building CXX object muse/components/CMakeFiles/components.dir/visibletracks.obj
[ 53%] Building CXX object muse/components/CMakeFiles/components.dir/vst_native_editor.obj
[ 53%] Building CXX object muse/components/CMakeFiles/components.dir/warn_bad_timing.obj
[ 53%] Linking CXX static library libmuse_components.a
[ 57%] Built target components
[ 58%] Generating ui_routedialogbase.h
[ 58%] Generating moc_amixer.cpp
[ 58%] Generating moc_astrip.cpp
[ 58%] Generating moc_auxknob.cpp
[ 58%] Generating moc_mstrip.cpp
[ 58%] Generating moc_rack.cpp
[ 58%] Generating moc_routedialog.cpp
[ 58%] Generating moc_strip.cpp
Scanning dependencies of target mixer
[ 58%] Building CXX object muse/mixer/CMakeFiles/mixer.dir/amixer.obj
[ 58%] Building CXX object muse/mixer/CMakeFiles/mixer.dir/astrip.obj
[ 58%] Building CXX object muse/mixer/CMakeFiles/mixer.dir/auxknob.obj
[ 58%] Building CXX object muse/mixer/CMakeFiles/mixer.dir/mstrip.obj
[ 58%] Building CXX object muse/mixer/CMakeFiles/mixer.dir/rack.obj
[ 58%] Building CXX object muse/mixer/CMakeFiles/mixer.dir/routedialog.obj
[ 58%] Building CXX object muse/mixer/CMakeFiles/mixer.dir/strip.obj
[ 59%] Building CXX object muse/mixer/CMakeFiles/mixer.dir/moc_amixer.obj
[ 59%] Building CXX object muse/mixer/CMakeFiles/mixer.dir/moc_astrip.obj
[ 59%] Building CXX object muse/mixer/CMakeFiles/mixer.dir/moc_auxknob.obj
[ 59%] Building CXX object muse/mixer/CMakeFiles/mixer.dir/moc_mstrip.obj
[ 59%] Building CXX object muse/mixer/CMakeFiles/mixer.dir/moc_rack.obj
[ 59%] Building CXX object muse/mixer/CMakeFiles/mixer.dir/moc_routedialog.obj
[ 59%] Building CXX object muse/mixer/CMakeFiles/mixer.dir/moc_strip.obj
[ 60%] Linking CXX static library libmuse_mixer.a
[ 60%] Built target mixer
[ 60%] Generating moc_tlist.cpp
[ 60%] Generating moc_arranger.cpp
[ 60%] Generating moc_arrangerview.cpp
[ 61%] Generating moc_pcanvas.cpp
Scanning dependencies of target arranger
[ 61%] Building CXX object muse/arranger/CMakeFiles/arranger.dir/arranger.obj
[ 61%] Building CXX object muse/arranger/CMakeFiles/arranger.dir/arrangerview.obj
[ 61%] Building CXX object muse/arranger/CMakeFiles/arranger.dir/pcanvas.obj
[ 61%] Building CXX object muse/arranger/CMakeFiles/arranger.dir/structure.obj
[ 61%] Building CXX object muse/arranger/CMakeFiles/arranger.dir/tlist.obj
[ 61%] Building CXX object muse/arranger/CMakeFiles/arranger.dir/moc_arranger.obj
[ 62%] Building CXX object muse/arranger/CMakeFiles/arranger.dir/moc_arrangerview.obj
[ 62%] Building CXX object muse/arranger/CMakeFiles/arranger.dir/moc_pcanvas.obj
[ 62%] Building CXX object muse/arranger/CMakeFiles/arranger.dir/moc_tlist.obj
[ 62%] Linking CXX static library libmuse_arranger.a
[ 62%] Built target arranger
[ 63%] Generating ui_mrconfigbase.h
[ 63%] Generating moc_midifilterimpl.cpp
[ 63%] Generating moc_midiitransform.cpp
[ 63%] Generating moc_mittranspose.cpp
[ 63%] Generating moc_mrconfig.cpp
[ 63%] Generating ui_midifilter.h
Scanning dependencies of target mplugins
[ 63%] Building CXX object muse/mplugins/CMakeFiles/mplugins.dir/midifilterimpl.obj
[ 63%] Building CXX object muse/mplugins/CMakeFiles/mplugins.dir/midiitransform.obj
[ 63%] Building CXX object muse/mplugins/CMakeFiles/mplugins.dir/mitplugin.obj
[ 63%] Building CXX object muse/mplugins/CMakeFiles/mplugins.dir/mittranspose.obj
[ 63%] Building CXX object muse/mplugins/CMakeFiles/mplugins.dir/mrconfig.obj
[ 63%] Building CXX object muse/mplugins/CMakeFiles/mplugins.dir/random.obj
[ 63%] Building CXX object muse/mplugins/CMakeFiles/mplugins.dir/moc_midifilterimpl.obj
[ 64%] Building CXX object muse/mplugins/CMakeFiles/mplugins.dir/moc_midiitransform.obj
[ 64%] Building CXX object muse/mplugins/CMakeFiles/mplugins.dir/moc_mittranspose.obj
[ 64%] Building CXX object muse/mplugins/CMakeFiles/mplugins.dir/moc_mrconfig.obj
[ 64%] Linking CXX static library libmuse_mplugins.a
[ 64%] Built target mplugins
Scanning dependencies of target driver
[ 64%] Building CXX object muse/driver/CMakeFiles/driver.dir/audiodev.obj
[ 64%] Building CXX object muse/driver/CMakeFiles/driver.dir/dummyaudio.obj
[ 64%] Building CXX object muse/driver/CMakeFiles/driver.dir/jack.obj
[ 64%] Building CXX object muse/driver/CMakeFiles/driver.dir/jackmidi.obj
[ 64%] Building CXX object muse/driver/CMakeFiles/driver.dir/qttimer.obj
[ 65%] Building CXX object muse/driver/CMakeFiles/driver.dir/simpletimer.obj
[ 65%] Linking CXX static library libmuse_driver.a
[ 65%] Built target driver
[ 65%] Generating moc_ctrlpanel.cpp
[ 65%] Generating moc_ctrlcanvas.cpp
[ 65%] Generating moc_ctrledit.cpp
Scanning dependencies of target ctrl
[ 65%] Building CXX object muse/ctrl/CMakeFiles/ctrl.dir/ctrlcanvas.obj
[ 65%] Building CXX object muse/ctrl/CMakeFiles/ctrl.dir/ctrledit.obj
[ 65%] Building CXX object muse/ctrl/CMakeFiles/ctrl.dir/ctrlpanel.obj
[ 66%] Building CXX object muse/ctrl/CMakeFiles/ctrl.dir/moc_ctrlcanvas.obj
[ 66%] Building CXX object muse/ctrl/CMakeFiles/ctrl.dir/moc_ctrledit.obj
[ 66%] Building CXX object muse/ctrl/CMakeFiles/ctrl.dir/moc_ctrlpanel.obj
[ 66%] Linking CXX static library libmuse_ctrl.a
[ 66%] Built target ctrl
[ 66%] Generating moc_cliplist.cpp
Scanning dependencies of target cliplist
[ 66%] Building CXX object muse/cliplist/CMakeFiles/cliplist.dir/cliplist.obj
[ 66%] Building CXX object muse/cliplist/CMakeFiles/cliplist.dir/moc_cliplist.obj
[ 66%] Linking CXX static library libmuse_cliplist.a
[ 66%] Built target cliplist
[ 66%] Generating ui_editinstrumentbase.h
[ 66%] Generating moc_editinstrument.cpp
Scanning dependencies of target instruments
[ 66%] Building CXX object muse/instruments/CMakeFiles/instruments.dir/editinstrument.obj
[ 66%] Building CXX object muse/instruments/CMakeFiles/instruments.dir/minstrument.obj
[ 67%] Building CXX object muse/instruments/CMakeFiles/instruments.dir/moc_editinstrument.obj
[ 67%] Linking CXX static library libmuse_instruments.a
[ 67%] Built target instruments
[ 68%] Generating moc_velocity.cpp
[ 68%] Generating ui_crescendobase.h
[ 68%] Generating ui_deloverlapsbase.h
[ 68%] Generating ui_gatetimebase.h
[ 69%] Generating ui_legatobase.h
[ 69%] Generating ui_movebase.h
[ 69%] Generating ui_quantbase.h
[ 69%] Generating ui_removebase.h
[ 69%] Generating ui_setlenbase.h
[ 69%] Generating ui_transposebase.h
[ 69%] Generating ui_velocitybase.h
[ 69%] Generating moc_crescendo.cpp
[ 70%] Generating moc_deloverlaps.cpp
[ 70%] Generating moc_gatetime.cpp
[ 70%] Generating moc_move.cpp
[ 70%] Generating moc_quantize.cpp
[ 70%] Generating moc_remove.cpp
[ 70%] Generating moc_setlen.cpp
[ 70%] Generating moc_transpose.cpp
[ 70%] Generating moc_legato.cpp
Scanning dependencies of target widgets_functiondialogs
[ 70%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/moc_crescendo.obj
[ 70%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/moc_deloverlaps.obj
[ 70%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/moc_gatetime.obj
[ 70%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/moc_move.obj
[ 70%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/moc_quantize.obj
[ 70%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/moc_remove.obj
[ 70%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/moc_setlen.obj
[ 71%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/moc_transpose.obj
[ 71%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/moc_legato.obj
[ 71%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/moc_velocity.obj
[ 71%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/crescendo.obj
[ 71%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/deloverlaps.obj
[ 71%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/gatetime.obj
[ 71%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/legato.obj
[ 71%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/move.obj
[ 72%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/quantize.obj
[ 72%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/remove.obj
[ 72%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/setlen.obj
[ 72%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/transpose.obj
[ 72%] Building CXX object muse/function_dialogs/CMakeFiles/widgets_functiondialogs.dir/velocity.obj
[ 72%] Linking CXX static library libmuse_widgets_functiondialogs.a
[ 72%] Built target widgets_functiondialogs
[ 72%] Generating moc_markerview.cpp
Scanning dependencies of target marker
[ 72%] Building CXX object muse/marker/CMakeFiles/marker.dir/marker.obj
[ 72%] Building CXX object muse/marker/CMakeFiles/marker.dir/markerview.obj
[ 72%] Building CXX object muse/marker/CMakeFiles/marker.dir/moc_markerview.obj
[ 72%] Linking CXX static library libmuse_marker.a
[ 72%] Built target marker
[ 72%] Generating moc_tscale.cpp
[ 72%] Generating moc_lmaster.cpp
[ 73%] Generating moc_masteredit.cpp
[ 73%] Generating moc_master.cpp
Scanning dependencies of target master
[ 73%] Building CXX object muse/master/CMakeFiles/master.dir/lmaster.obj
[ 73%] Building CXX object muse/master/CMakeFiles/master.dir/master.obj
[ 73%] Building CXX object muse/master/CMakeFiles/master.dir/masteredit.obj
[ 73%] Building CXX object muse/master/CMakeFiles/master.dir/tscale.obj
[ 73%] Building CXX object muse/master/CMakeFiles/master.dir/moc_lmaster.obj
[ 74%] Building CXX object muse/master/CMakeFiles/master.dir/moc_masteredit.obj
[ 74%] Building CXX object muse/master/CMakeFiles/master.dir/moc_master.obj
[ 74%] Building CXX object muse/master/CMakeFiles/master.dir/moc_tscale.obj
[ 74%] Linking CXX static library libmuse_master.a
[ 74%] Built target master
[ 74%] Generating moc_listedit.cpp
Scanning dependencies of target liste
[ 74%] Building CXX object muse/liste/CMakeFiles/liste.dir/listedit.obj
[ 74%] Building CXX object muse/liste/CMakeFiles/liste.dir/moc_listedit.obj
[ 74%] Linking CXX static library libmuse_liste.a
[ 74%] Built target liste
[ 74%] Generating moc_wavecanvas.cpp
[ 74%] Generating ui_editgainbase.h
[ 74%] Generating moc_editgain.cpp
[ 74%] Generating moc_waveedit.cpp
Scanning dependencies of target waveedit
[ 75%] Building CXX object muse/waveedit/CMakeFiles/waveedit.dir/editgain.obj
[ 75%] Building CXX object muse/waveedit/CMakeFiles/waveedit.dir/wavecanvas.obj
[ 75%] Building CXX object muse/waveedit/CMakeFiles/waveedit.dir/waveedit.obj
[ 75%] Building CXX object muse/waveedit/CMakeFiles/waveedit.dir/moc_editgain.obj
[ 75%] Building CXX object muse/waveedit/CMakeFiles/waveedit.dir/moc_waveedit.obj
[ 75%] Building CXX object muse/waveedit/CMakeFiles/waveedit.dir/moc_wavecanvas.obj
[ 75%] Linking CXX static library libmuse_waveedit.a
[ 75%] Built target waveedit
[ 75%] Generating moc_scoreedit.cpp
[ 75%] Generating moc_dcanvas.cpp
[ 75%] Generating moc_dlist.cpp
[ 76%] Generating moc_drumedit.cpp
[ 76%] Generating moc_ecanvas.cpp
[ 76%] Generating moc_piano.cpp
[ 76%] Generating moc_pianoroll.cpp
[ 76%] Generating moc_prcanvas.cpp
Scanning dependencies of target midiedit
[ 76%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/dcanvas.obj
[ 77%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/dlist.obj
[ 77%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/drumedit.obj
[ 77%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/drummap.obj
[ 77%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/ecanvas.obj
[ 77%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/piano.obj
[ 77%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/pianoroll.obj
[ 77%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/prcanvas.obj
[ 77%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/scoreedit.obj
[ 78%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/moc_dcanvas.obj
[ 78%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/moc_dlist.obj
[ 78%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/moc_drumedit.obj
[ 78%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/moc_ecanvas.obj
[ 78%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/moc_piano.obj
[ 78%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/moc_pianoroll.obj
[ 78%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/moc_prcanvas.obj
[ 78%] Building CXX object muse/midiedit/CMakeFiles/midiedit.dir/moc_scoreedit.obj
[ 79%] Linking CXX static library libmuse_midiedit.a
[ 79%] Built target midiedit
[ 79%] Generating moc_vst_native.cpp
[ 79%] Generating moc_app.cpp
[ 79%] Generating moc_appearance.cpp
[ 79%] Generating moc_cobject.cpp
[ 80%] Generating moc_conf.cpp
[ 80%] Generating moc_confmport.cpp
[ 80%] Generating moc_midieditor.cpp
[ 80%] Generating moc_miditransform.cpp
[ 80%] Generating moc_plugin.cpp
[ 80%] Generating moc_song.cpp
[ 80%] Generating moc_transport.cpp
[ 80%] Generating moc_value.cpp
[ 81%] Generating moc_steprec.cpp
Scanning dependencies of target core
[ 81%] Building CXX object muse/CMakeFiles/core.dir/moc_app.obj
[ 81%] Building CXX object muse/CMakeFiles/core.dir/moc_appearance.obj
[ 81%] Building CXX object muse/CMakeFiles/core.dir/moc_cobject.obj
[ 81%] Building CXX object muse/CMakeFiles/core.dir/moc_conf.obj
[ 81%] Building CXX object muse/CMakeFiles/core.dir/moc_confmport.obj
[ 82%] Building CXX object muse/CMakeFiles/core.dir/moc_midieditor.obj
[ 82%] Building CXX object muse/CMakeFiles/core.dir/moc_miditransform.obj
[ 82%] Building CXX object muse/CMakeFiles/core.dir/moc_plugin.obj
[ 82%] Building CXX object muse/CMakeFiles/core.dir/moc_song.obj
[ 82%] Building CXX object muse/CMakeFiles/core.dir/moc_transport.obj
[ 82%] Building CXX object muse/CMakeFiles/core.dir/moc_value.obj
[ 82%] Building CXX object muse/CMakeFiles/core.dir/moc_steprec.obj
[ 82%] Building CXX object muse/CMakeFiles/core.dir/moc_vst_native.obj
[ 83%] Building CXX object muse/CMakeFiles/core.dir/app.obj
[ 83%] Building CXX object muse/CMakeFiles/core.dir/appearance.obj
[ 83%] Building CXX object muse/CMakeFiles/core.dir/audio.obj
[ 83%] Building CXX object muse/CMakeFiles/core.dir/audioconvert.obj
[ 83%] Building CXX object muse/CMakeFiles/core.dir/audioprefetch.obj
[ 83%] Building CXX object muse/CMakeFiles/core.dir/audiotrack.obj
E:/msys64/usr/src/muse-win32/muse3/muse/audiotrack.cpp: In member function 'void MusECore::AudioTrack::readAuxSend(MusECore::Xml&)':
E:/msys64/usr/src/muse-win32/muse3/muse/audiotrack.cpp:1532:14: warning: 'val' may be used uninitialized in this function [-Wmaybe-uninitialized]
       double val;
              ^~~
[ 83%] Building CXX object muse/CMakeFiles/core.dir/cobject.obj
[ 83%] Building CXX object muse/CMakeFiles/core.dir/conf.obj
[ 84%] Building CXX object muse/CMakeFiles/core.dir/confmport.obj
[ 84%] Building CXX object muse/CMakeFiles/core.dir/controlfifo.obj
[ 84%] Building CXX object muse/CMakeFiles/core.dir/ctrl.obj
[ 84%] Building CXX object muse/CMakeFiles/core.dir/dialogs.obj
[ 84%] Building CXX object muse/CMakeFiles/core.dir/dssihost.obj
[ 84%] Building CXX object muse/CMakeFiles/core.dir/event.obj
[ 84%] Building CXX object muse/CMakeFiles/core.dir/eventlist.obj
[ 84%] Building CXX object muse/CMakeFiles/core.dir/exportmidi.obj
[ 85%] Building CXX object muse/CMakeFiles/core.dir/functions.obj
[ 85%] Building CXX object muse/CMakeFiles/core.dir/gconfig.obj
[ 85%] Building CXX object muse/CMakeFiles/core.dir/globals.obj
[ 85%] Building CXX object muse/CMakeFiles/core.dir/help.obj
[ 85%] Building CXX object muse/CMakeFiles/core.dir/helper.obj
[ 85%] Building CXX object muse/CMakeFiles/core.dir/importmidi.obj
[ 85%] Building CXX object muse/CMakeFiles/core.dir/key.obj
[ 85%] Building CXX object muse/CMakeFiles/core.dir/keyevent.obj
[ 86%] Building CXX object muse/CMakeFiles/core.dir/midi.obj
[ 86%] Building CXX object muse/CMakeFiles/core.dir/midictrl.obj
E:/msys64/usr/src/muse-win32/muse3/muse/midictrl.cpp: In member function 'void MusECore::MidiCtrlValList::delMCtlVal(int, MusECore::Part*)':
E:/msys64/usr/src/muse-win32/muse3/muse/midictrl.cpp:1319:22: warning: unknown conversion type character 'z' in format [-Wformat=]
               printf("MidiCtrlValList::delMCtlVal(%d): not found (size %zd)\n", tick, size());
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
E:/msys64/usr/src/muse-win32/muse3/muse/midictrl.cpp:1319:22: warning: too many arguments for format [-Wformat-extra-args]
E:/msys64/usr/src/muse-win32/muse3/muse/midictrl.cpp:1319:22: warning: unknown conversion type character 'z' in format [-Wformat=]
E:/msys64/usr/src/muse-win32/muse3/muse/midictrl.cpp:1319:22: warning: too many arguments for format [-Wformat-extra-args]
[ 86%] Building CXX object muse/CMakeFiles/core.dir/mididev.obj
[ 86%] Building CXX object muse/CMakeFiles/core.dir/midieditor.obj
[ 86%] Building CXX object muse/CMakeFiles/core.dir/midievent.obj
[ 86%] Building CXX object muse/CMakeFiles/core.dir/midifile.obj
[ 86%] Building CXX object muse/CMakeFiles/core.dir/midiport.obj
[ 87%] Building CXX object muse/CMakeFiles/core.dir/midiseq.obj
[ 87%] Building CXX object muse/CMakeFiles/core.dir/miditransform.obj
[ 87%] Building CXX object muse/CMakeFiles/core.dir/mtc.obj
[ 87%] Building CXX object muse/CMakeFiles/core.dir/node.obj
[ 87%] Building CXX object muse/CMakeFiles/core.dir/operations.obj
[ 87%] Building CXX object muse/CMakeFiles/core.dir/osc.obj
[ 87%] Building CXX object muse/CMakeFiles/core.dir/part.obj
[ 87%] Building CXX object muse/CMakeFiles/core.dir/plugin.obj
E:/msys64/usr/src/muse-win32/muse3/muse/plugin.cpp: In member function 'int MusECore::PluginI::oscControl(long unsigned int, float)':
E:/msys64/usr/src/muse-win32/muse3/muse/plugin.cpp:3260:21: warning: unknown conversion type character 'z' in format [-Wformat=]
     fprintf(stderr, "PluginI::oscControl: port number:%lu is out of range of index list size:%zd\n", port, _plugin->rpIdx.size());
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
E:/msys64/usr/src/muse-win32/muse3/muse/plugin.cpp:3260:21: warning: too many arguments for format [-Wformat-extra-args]
E:/msys64/usr/src/muse-win32/muse3/muse/plugin.cpp:3260:21: warning: unknown conversion type character 'z' in format [-Wformat=]
E:/msys64/usr/src/muse-win32/muse3/muse/plugin.cpp:3260:21: warning: too many arguments for format [-Wformat-extra-args]
[ 88%] Building CXX object muse/CMakeFiles/core.dir/pluglist.obj
[ 88%] Building CXX object muse/CMakeFiles/core.dir/pos.obj
[ 88%] Building CXX object muse/CMakeFiles/core.dir/route.obj
[ 88%] Building CXX object muse/CMakeFiles/core.dir/seqmsg.obj
[ 88%] Building CXX object muse/CMakeFiles/core.dir/shortcuts.obj
[ 88%] Building CXX object muse/CMakeFiles/core.dir/sig.obj
E:/msys64/usr/src/muse-win32/muse3/muse/sig.cpp: In member function 'void MusECore::SigList::tickValues(unsigned int, int*, int*, unsigned int*) const':
E:/msys64/usr/src/muse-win32/muse3/muse/sig.cpp:324:29: warning: unknown conversion type character 'z' in format [-Wformat=]
             fprintf(stderr, "tickValues(0x%x) not found(%zd)\n", t, size());
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
E:/msys64/usr/src/muse-win32/muse3/muse/sig.cpp:324:29: warning: too many arguments for format [-Wformat-extra-args]
E:/msys64/usr/src/muse-win32/muse3/muse/sig.cpp:324:29: warning: unknown conversion type character 'z' in format [-Wformat=]
E:/msys64/usr/src/muse-win32/muse3/muse/sig.cpp:324:29: warning: too many arguments for format [-Wformat-extra-args]
[ 88%] Building CXX object muse/CMakeFiles/core.dir/song.obj
E:/msys64/usr/src/muse-win32/muse3/muse/song.cpp: In member function 'void MusECore::Song::selectEvent(MusECore::Event&, MusECore::Part*, bool)':
E:/msys64/usr/src/muse-win32/muse3/muse/song.cpp:640:9: warning: unknown conversion type character 'z' in format [-Wformat=]
  printf("Song::selectEvent event not found in part:%s size:%zd\n", p->name().toLatin1().constData(), p->nonconst_events().size());
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
E:/msys64/usr/src/muse-win32/muse3/muse/song.cpp:640:9: warning: too many arguments for format [-Wformat-extra-args]
E:/msys64/usr/src/muse-win32/muse3/muse/song.cpp:640:9: warning: unknown conversion type character 'z' in format [-Wformat=]
E:/msys64/usr/src/muse-win32/muse3/muse/song.cpp:640:9: warning: too many arguments for format [-Wformat-extra-args]
[ 88%] Building CXX object muse/CMakeFiles/core.dir/songfile.obj
[ 89%] Building CXX object muse/CMakeFiles/core.dir/steprec.obj
[ 89%] Building CXX object muse/CMakeFiles/core.dir/stringparam.obj
[ 89%] Building CXX object muse/CMakeFiles/core.dir/sync.obj
[ 89%] Building CXX object muse/CMakeFiles/core.dir/synth.obj
[ 89%] Building CXX object muse/CMakeFiles/core.dir/tempo.obj
[ 89%] Building CXX object muse/CMakeFiles/core.dir/thread.obj
[ 89%] Building CXX object muse/CMakeFiles/core.dir/ticksynth.obj
[ 89%] Building CXX object muse/CMakeFiles/core.dir/track.obj
[ 90%] Building CXX object muse/CMakeFiles/core.dir/transport.obj
[ 90%] Building CXX object muse/CMakeFiles/core.dir/undo.obj
[ 90%] Building CXX object muse/CMakeFiles/core.dir/value.obj
[ 90%] Building CXX object muse/CMakeFiles/core.dir/vst.obj
[ 90%] Building CXX object muse/CMakeFiles/core.dir/vst_native.obj
E:/msys64/usr/src/muse-win32/muse3/muse/vst_native.cpp: In static member function 'static VstIntPtr MusECore::VstNativeSynth::pluginHostCallback(MusECore::VstNativeSynthOrPlugin*, VstInt32, VstInt32, VstIntPtr, void*, float)':
E:/msys64/usr/src/muse-win32/muse3/muse/vst_native.cpp:1021:16: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
       return *((long*)(&_timeInfo));
               ~^~~~~~~~~~~~~~~~~~~~
[ 90%] Building CXX object muse/CMakeFiles/core.dir/wave.obj
[ 90%] Building CXX object muse/CMakeFiles/core.dir/waveevent.obj
[ 90%] Building CXX object muse/CMakeFiles/core.dir/wavetrack.obj
[ 91%] Linking CXX static library libmuse_core.a
[ 91%] Built target core
[ 91%] Generating qrc_resources.cpp
[ 91%] Generating qrc_muse.cpp
Scanning dependencies of target muse
[ 91%] Building CXX object muse/CMakeFiles/muse.dir/main.obj
[ 91%] Building CXX object muse/CMakeFiles/muse.dir/qrc_muse.obj
[ 92%] Building CXX object muse/CMakeFiles/muse.dir/qrc_resources.obj
[ 92%] Linking CXX executable muse3.exe
libmuse_core.a(app.obj):app.cpp:(.text+0x11f66): undefined reference to `MusECore::exitMidiAlsa()'
libmuse_core.a(mididev.obj):mididev.cpp:(.text+0x884): undefined reference to `MusECore::initMidiAlsa()'
libmuse_core.a(midiseq.obj):midiseq.cpp:(.text+0x328): undefined reference to `MusECore::alsaSelectRfd()'
libmuse_core.a(midiseq.obj):midiseq.cpp:(.text+0x599): undefined reference to `MusECore::alsaSelectRfd()'
libmuse_core.a(midiseq.obj):midiseq.cpp:(.text+0x5d9): undefined reference to `MusECore::alsaSelectRfd()'
libmuse_core.a(midiseq.obj):midiseq.cpp:(.text+0xc1): undefined reference to `MusECore::alsaProcessMidiInput()'
libmuse_core.a(song.obj):song.cpp:(.text+0xe6d6): undefined reference to `MusECore::alsaScanMidiPorts()'
libmuse_core.a(thread.obj):thread.cpp:(.text+0x600): undefined reference to `poll'
libmuse_core.a(confmport.obj):confmport.cpp:(.text+0x2770): undefined reference to `MusECore::initMidiAlsa()'
libmuse_core.a(confmport.obj):confmport.cpp:(.text+0x27a1): undefined reference to `MusECore::alsaScanMidiPorts()'
libmuse_core.a(confmport.obj):confmport.cpp:(.text+0x27e1): undefined reference to `MusECore::exitMidiAlsa()'
libmuse_core.a(confmport.obj):confmport.cpp:(.text+0x27f0): undefined reference to `MusECore::alsaScanMidiPorts()'
libmuse_core.a(functions.obj):functions.cpp:(.text+0x6f7): undefined reference to `mmap'
libmuse_core.a(functions.obj):functions.cpp:(.text+0x740): undefined reference to `munmap'
driver/libmuse_driver.a(qttimer.obj):qttimer.cpp:(.rdata$.refptr._ZTVN8MusECore10InnerTimerE[.refptr._ZTVN8MusECore10InnerTimerE]+0x0): undefined reference to `vtable for MusECore::InnerTimer'
collect2.exe: error: ld returned 1 exit status
mingw32-make[2]: *** [muse\CMakeFiles\muse.dir\build.make:212: muse/muse3.exe] Error 1
mingw32-make[1]: *** [CMakeFiles/Makefile2:600: muse/CMakeFiles/muse.dir/all] Error 2
mingw32-make: *** [Makefile:151: all] Error 2
Apparently, there are still alsa related things that were not caught in the build process.
aquilarubra
Established Member
Posts: 52
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Post by aquilarubra »

Latest progress: enforced alsa to off for _win32 build in all code. Refined poll mechanism.

Now I am left with the last issue:

Code: Select all

Linking CXX executable muse3.exe
driver/libmuse_driver.a(qttimer.obj):qttimer.cpp:(.rdata$.refptr._ZTVN8MusECore10InnerTimerE[.refptr._ZTVN8MusECore10InnerTimerE]+0x0): undefined reference to `vtable for MusECore::InnerTimer'
collect2.exe: error: ld returned 1 exit status
mingw32-make[2]: *** [muse\CMakeFiles\muse.dir\build.make:212: muse/muse3.exe] Error 1
mingw32-make[1]: *** [CMakeFiles/Makefile2:600: muse/CMakeFiles/muse.dir/all] Error 2
mingw32-make: *** [Makefile:151: all] Error 2
It seems that some method is virtual and undefined in qttimer... Any idea?

qttimer.h

Code: Select all

//=========================================================
//  MusE
//  Linux Music Editor
//
//  (C) Copyright 2015 Robert Jonsson (spamatica@gmail.com)
//
//  This program is free software; you can redistribute it and/or
//  modify it under the terms of the GNU General Public License
//  as published by the Free Software Foundation; version 2 of
//  the License, or (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program; if not, write to the Free Software
//  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
//
//=========================================================

#ifndef __QTTIMER_H__
#define __QTTIMER_H__


#include <fcntl.h>
#include <QThread>
#include <QBasicTimer>
#include <QTimerEvent>

#include "timerdev.h"

namespace MusECore {

//---------------------------------------------------------
//   QtTimer
//---------------------------------------------------------

class InnerTimer : public QObject {
  Q_OBJECT
  int writePipe;
  long int tickCount;
  QBasicTimer timer;
public:
   void setupTimer(int fd, int timeoutms);
   ~InnerTimer();
   long int getTick();
   bool isRunning() { return timer.isActive(); }

protected:
   void timerEvent(QTimerEvent *event);

};

class QtTimer : public Timer, public QThread {
    
    int writePipe;
    int readPipe;
    bool keepRunning;
    InnerTimer *innerTimer;
    int timeoutms;
    public:
       QtTimer();
       virtual ~QtTimer();
       
       virtual signed int initTimer(unsigned long init);
       virtual long unsigned int setTimerResolution(unsigned long resolution);
       virtual long unsigned int getTimerResolution();
       virtual long unsigned int setTimerFreq(unsigned long freq);
       virtual long unsigned int getTimerFreq();

       virtual bool startTimer();
       virtual bool stopTimer();
       virtual long unsigned int getTimerTicks(bool printTicks=false);
       
       void setFindBestTimer(bool ) { }
    private:
       virtual void run();
};

} // namespace MusECore

#endif //__QTTIMER_H__
qttimer.cpp

Code: Select all

//=========================================================
//  MusE
//  Linux Music Editor
//
//  (C) Copyright 2015 Robert Jonsson (spamatica@gmail.com)
//
//  This program is free software; you can redistribute it and/or
//  modify it under the terms of the GNU General Public License
//  as published by the Free Software Foundation; version 2 of
//  the License, or (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program; if not, write to the Free Software
//  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
//
//=========================================================

#include <cstdio>
#include <unistd.h>
#include <fcntl.h>
#include "qttimer.h"

#ifndef TIMER_DEBUG
#define TIMER_DEBUG 1
#endif

#ifdef _WIN32
#define pipe(fds) _pipe(fds, 4096, _O_BINARY)
#endif

namespace MusECore {


  QtTimer::QtTimer()
     {
     if(TIMER_DEBUG)
       fprintf(stderr,"QtTimer::QtTimer(this=%p) called\n",this);
     innerTimer = NULL;
     timeoutms = 10;
     readPipe=-1;
     writePipe=-1;
     }
     
  QtTimer::~QtTimer()
    {
    if(TIMER_DEBUG)
       fprintf(stderr,"QtTimer::~QtTimer(this=%p) called\n",this);
    exit(); // thread exit
    }
  
  signed int QtTimer::initTimer(unsigned long)
  {
    if(TIMER_DEBUG)
      printf("QtTimer::initTimer(this=%p)\n",this);

    int filedes[2];         // 0 - reading   1 - writing
    if (pipe(filedes) == -1) {
          perror("QtTimer - creating pipe failed");
          exit(-1);
          }
#ifndef _WIN32
    int rv = fcntl(filedes[1], F_SETFL, O_NONBLOCK);
    if (rv == -1)
          perror("set pipe O_NONBLOCK");
#endif
    if (pipe(filedes) == -1) {
          perror("QtTimer - creating pipe1");
          exit(-1);
          }
    writePipe = filedes[1];
    readPipe = filedes[0];

    return filedes[0];
  }
  
  long unsigned int QtTimer::setTimerResolution(unsigned long)
    {
    return 0;
    }
  
  long unsigned int QtTimer::setTimerFreq(unsigned long freq)
    {
    if (freq > 1000)
      freq = 1000;
    if (freq < 100)
      freq = 100;
    timeoutms = 1000/freq;
    return 1000/timeoutms;
    }
  
  long unsigned int QtTimer::getTimerResolution()
    {
    return  20;
    }

  long unsigned int QtTimer::getTimerFreq()
    {
    return 1000/timeoutms;
    }
        
  bool QtTimer::startTimer()
    {
    QThread::start();
    return true;
    }
  
  bool QtTimer::stopTimer()
    {
    QThread::quit();
    return true;
    }
        
  unsigned long int  QtTimer::getTimerTicks(bool /*printTicks*/)
    {

    if(TIMER_DEBUG)
      printf("getTimerTicks()\n");
    unsigned long int nn;
    if (readPipe==-1) {
        fprintf(stderr,"QtTimer::getTimerTicks(): no pipe open to read!\n");
        return 0;
    }
    if (read(readPipe, &nn, sizeof(char)) != sizeof(char)) {
        fprintf(stderr,"QtTimer::getTimerTicks(): error reading pipe\n");
        return 0;
        }
    //return nn;

    return innerTimer != 0 ? innerTimer->getTick() : 0;

    }

  void QtTimer::run()
  {

    //bool keepRunning = true;
    innerTimer = new InnerTimer();
    innerTimer->setupTimer(writePipe, timeoutms); // make sure it is running in the right thread

    exec();
  }

  void InnerTimer::setupTimer(int fd, int timeoutms)
  {
    tickCount=0;
    writePipe = fd;
    timer.start(timeoutms, this);
    printf("InnerTimer::setupTimer() started\n");

  }

  InnerTimer::~InnerTimer()
  {
    timer.stop();
  }

  void InnerTimer::timerEvent(QTimerEvent *event)
  {
    //if (tickCount%1000)
      //printf("InnerTimer::timerEvent %ld ++++++++++++++++++++++\n",tickCount);

    if (event->timerId() == timer.timerId()) {
      tickCount++;
      write(writePipe,"t",1);
    }

  }

  long int InnerTimer::getTick()
  {
    return tickCount;
  }

} // namespace MusECore
spamatica
Established Member
Posts: 573
Joined: Mon Feb 08, 2010 10:38 am
Has thanked: 80 times
Been thanked: 97 times

Re: muse for windows

Post by spamatica »

I can duplicate the link error, no clue yet what the problem is though. Confusing.
MusE DAW
Post Reply