diff options
author | John Emmas <johne53@tiscali.co.uk> | 2014-11-24 12:51:54 +0000 |
---|---|---|
committer | John Emmas <johne53@tiscali.co.uk> | 2014-11-24 12:51:54 +0000 |
commit | 25745758aa875de4b4e4d6401441b8318ef5365d (patch) | |
tree | 85e6c09867dbc55fe3b82d15365c33ac4c49599e | |
parent | 7b3263891fdb243a4f3b70b1a5eeb87bd78f6bc1 (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.vcproj | 13 | ||||
-rw-r--r-- | libs/evoral/evoral/types.hpp | 8 | ||||
-rw-r--r-- | libs/evoral/src/Note.cpp | 2 | ||||
-rw-r--r-- | libs/evoral/src/Note.impl | 112 |
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 "..\src\Note.cpp" "..\src\Note.impl"
" /> <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 - |