summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Emmas <johne53@tiscali.co.uk>2014-11-24 12:51:54 +0000
committerJohn Emmas <johne53@tiscali.co.uk>2014-11-24 12:51:54 +0000
commit25745758aa875de4b4e4d6401441b8318ef5365d (patch)
tree85e6c09867dbc55fe3b82d15365c33ac4c49599e
parent7b3263891fdb243a4f3b70b1a5eeb87bd78f6bc1 (diff)
Changes needed to accommodate building libevoral with MSVC
Note that class 'MusicalTime' needn't be exportable (with a little work, this could be reverted if it affects the other builds)
-rw-r--r--libs/evoral/MSVCevoral/evoral.vcproj13
-rw-r--r--libs/evoral/evoral/types.hpp8
-rw-r--r--libs/evoral/src/Note.cpp2
-rw-r--r--libs/evoral/src/Note.impl112
4 files changed, 15 insertions, 120 deletions
diff --git a/libs/evoral/MSVCevoral/evoral.vcproj b/libs/evoral/MSVCevoral/evoral.vcproj
index 681aea6de8..41ebb20390 100644
--- a/libs/evoral/MSVCevoral/evoral.vcproj
+++ b/libs/evoral/MSVCevoral/evoral.vcproj
@@ -181,6 +181,7 @@
>
<Tool
Name="VCPreBuildEventTool"
+ CommandLine="copy /Y &quot;..\src\Note.cpp&quot; &quot;..\src\Note.impl&quot;&#x0D;&#x0A;"
/>
<Tool
Name="VCCustomBuildTool"
@@ -283,10 +284,6 @@
>
</File>
<File
- RelativePath="..\src\IdentityConverter.cpp"
- >
- </File>
- <File
RelativePath="..\src\midi_util.cpp"
>
</File>
@@ -302,6 +299,14 @@
RelativePath="..\src\SMF.cpp"
>
</File>
+ <File
+ RelativePath="..\src\TimeConverter.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\src\types.cpp"
+ >
+ </File>
<Filter
Name="libsmf"
>
diff --git a/libs/evoral/evoral/types.hpp b/libs/evoral/evoral/types.hpp
index 719007abe5..14ba36acdf 100644
--- a/libs/evoral/evoral/types.hpp
+++ b/libs/evoral/evoral/types.hpp
@@ -39,9 +39,9 @@ namespace Evoral {
typedef int32_t event_id_t;
/** Musical time: beats relative to some defined origin */
-class LIBEVORAL_API MusicalTime {
+class /*LIBEVORAL_API*/ MusicalTime {
public:
- static const double PPQN;
+ LIBEVORAL_API static const double PPQN;
MusicalTime() : _time(0.0) {}
@@ -207,8 +207,8 @@ private:
double _time;
};
-extern const MusicalTime MaxMusicalTime;
-extern const MusicalTime MinMusicalTime;
+extern LIBEVORAL_API const MusicalTime MaxMusicalTime;
+extern LIBEVORAL_API const MusicalTime MinMusicalTime;
/** Type of an event (opaque, mapped by application) */
typedef uint32_t EventType;
diff --git a/libs/evoral/src/Note.cpp b/libs/evoral/src/Note.cpp
index 918727ef50..93c0a90478 100644
--- a/libs/evoral/src/Note.cpp
+++ b/libs/evoral/src/Note.cpp
@@ -19,7 +19,9 @@
#include <iostream>
#include <limits>
#include <glib.h>
+#ifndef COMPILER_MSVC
#include "evoral/Note.hpp"
+#endif
namespace Evoral {
diff --git a/libs/evoral/src/Note.impl b/libs/evoral/src/Note.impl
deleted file mode 100644
index d63e31a831..0000000000
--- a/libs/evoral/src/Note.impl
+++ /dev/null
@@ -1,112 +0,0 @@
-/* This file is part of Evoral.
- * Copyright (C) 2008 David Robillard <http://drobilla.net>
- * Copyright (C) 2000-2008 Paul Davis
- *
- * Evoral 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; either version 2 of the License, or (at your option) any later
- * version.
- *
- * Evoral 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 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 St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <iostream>
-#include <limits>
-#include <glib.h>
-// Commented out by JE - 23-10-2013 #include "evoral/Note.hpp"
-
-namespace Evoral {
-
-template<typename Time>
-Note<Time>::Note(uint8_t chan, Time t, Time l, uint8_t n, uint8_t v)
- // FIXME: types?
- : _on_event (0xDE, t, 3, NULL, true)
- , _off_event (0xAD, t + l, 3, NULL, true)
-{
- assert(chan < 16);
-
- _on_event.buffer()[0] = MIDI_CMD_NOTE_ON + chan;
- _on_event.buffer()[1] = n;
- _on_event.buffer()[2] = v;
-
- _off_event.buffer()[0] = MIDI_CMD_NOTE_OFF + chan;
- _off_event.buffer()[1] = n;
- _off_event.buffer()[2] = 0x40;
-
- assert(musical_time_equal (time(),t));
- assert(musical_time_equal (length(), l));
- assert(note() == n);
- assert(velocity() == v);
- assert(_on_event.channel() == _off_event.channel());
- assert(channel() == chan);
-}
-
-
-template<typename Time>
-Note<Time>::Note(const Note<Time>& copy)
- : _on_event(copy._on_event, true)
- , _off_event(copy._off_event, true)
-{
- set_id (copy.id());
-
- assert(_on_event.buffer());
- assert(_off_event.buffer());
- /*
- assert(copy._on_event.size == 3);
- _on_event.buffer = _on_event_buffer;
- memcpy(_on_event_buffer, copy._on_event_buffer, 3);
-
- assert(copy._off_event.size == 3);
- _off_event.buffer = _off_event_buffer;
- memcpy(_off_event_buffer, copy._off_event_buffer, 3);
- */
-
- assert(musical_time_equal (time(),copy.time()));
- assert(musical_time_equal (end_time(), copy.end_time()));
- assert(musical_time_equal (length(), copy.length()));
- assert(note() == copy.note());
- assert(velocity() == copy.velocity());
- assert(_on_event.channel() == _off_event.channel());
- assert(channel() == copy.channel());
-}
-
-template<typename Time>
-Note<Time>::~Note()
-{
-}
-
-template<typename Time> void
-Note<Time>::set_id (event_id_t id)
-{
- _on_event.set_id (id);
- _off_event.set_id (id);
-}
-
-template<typename Time>
-const Note<Time>&
-Note<Time>::operator=(const Note<Time>& other)
-{
- _on_event = other._on_event;
- _off_event = other._off_event;
-
- assert(musical_time_equal (time(),other.time()));
- assert(musical_time_equal (end_time(), other.end_time()));
- assert(musical_time_equal (length(), other.length()));
- assert(note() == other.note());
- assert(velocity() == other.velocity());
- assert(_on_event.channel() == _off_event.channel());
- assert(channel() == other.channel());
-
- return *this;
-}
-
-template class Note<Evoral::MusicalTime>;
-
-} // namespace Evoral
-