mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-10 08:36:32 +01:00
Remove braindead Parameter inheritance abuse.
This commit is contained in:
parent
7eb4e5d22b
commit
0ffeaa6d6a
6 changed files with 14 additions and 75 deletions
|
|
@ -39,7 +39,6 @@
|
|||
#include "ardour/session.h"
|
||||
|
||||
#include "evoral/Parameter.hpp"
|
||||
#include "evoral/MIDIParameters.hpp"
|
||||
#include "evoral/MIDIEvent.hpp"
|
||||
#include "evoral/Control.hpp"
|
||||
#include "evoral/midi_util.h"
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
#include "ardour/uri_map.h"
|
||||
#include "evoral/Parameter.hpp"
|
||||
#include "evoral/midi_events.h"
|
||||
#include "evoral/MIDIParameters.hpp"
|
||||
#include "pbd/error.h"
|
||||
#include "pbd/compose.h"
|
||||
|
||||
|
|
@ -197,9 +196,14 @@ EventTypeMap::new_parameter(uint32_t type, uint8_t channel, uint32_t id) const
|
|||
case MidiCCAutomation:
|
||||
case MidiPgmChangeAutomation:
|
||||
case MidiChannelPressureAutomation:
|
||||
Evoral::MIDI::controller_range(min, max, normal); break;
|
||||
min = 0.0;
|
||||
normal = 0.0;
|
||||
max = 127.0;
|
||||
break;
|
||||
case MidiPitchBenderAutomation:
|
||||
Evoral::MIDI::bender_range(min, max, normal); break;
|
||||
min = 0.0;
|
||||
normal = 8192.0;
|
||||
max = 16383.0;
|
||||
case MidiSystemExclusiveAutomation:
|
||||
return p;
|
||||
case PluginPropertyAutomation:
|
||||
|
|
|
|||
|
|
@ -499,10 +499,6 @@
|
|||
RelativePath="..\evoral\MIDIEvent.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\evoral\MIDIParameters.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\evoral\Note.hpp"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -1,59 +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
|
||||
*/
|
||||
|
||||
#ifndef EVORAL_MIDI_PARAMETERS_HPP
|
||||
#define EVORAL_MIDI_PARAMETERS_HPP
|
||||
|
||||
#include "evoral/visibility.h"
|
||||
|
||||
namespace Evoral {
|
||||
namespace MIDI {
|
||||
|
||||
struct /*LIBEVORAL_API*/ ContinuousController : public Parameter {
|
||||
ContinuousController(uint32_t cc_type, uint8_t channel, uint32_t controller)
|
||||
: Parameter(cc_type, channel, controller) {}
|
||||
};
|
||||
|
||||
struct /*LIBEVORAL_API*/ ProgramChange : public Parameter {
|
||||
ProgramChange(uint32_t pc_type, uint8_t channel) : Parameter(pc_type, channel, 0) {}
|
||||
};
|
||||
|
||||
struct /*LIBEVORAL_API*/ ChannelPressure : public Parameter {
|
||||
ChannelPressure(uint32_t ca_type, uint32_t channel) : Parameter(ca_type, channel, 0) {}
|
||||
};
|
||||
|
||||
struct /*LIBEVORAL_API*/ PitchBender : public Parameter {
|
||||
PitchBender(uint32_t pb_type, uint32_t channel) : Parameter(pb_type, channel, 0) {}
|
||||
};
|
||||
|
||||
inline static void controller_range(double& min, double& max, double& normal) {
|
||||
min = 0.0;
|
||||
normal = 0.0;
|
||||
max = 127.0;
|
||||
}
|
||||
|
||||
inline static void bender_range(double& min, double& max, double& normal) {
|
||||
min = 0.0;
|
||||
normal = 8192.0;
|
||||
max = 16383.0;
|
||||
}
|
||||
|
||||
} // namespace MIDI
|
||||
} // namespace Evoral
|
||||
|
||||
#endif // EVORAL_MIDI_PARAMETERS_HPP
|
||||
|
|
@ -35,7 +35,6 @@
|
|||
#include "evoral/ControlList.hpp"
|
||||
#include "evoral/ControlSet.hpp"
|
||||
#include "evoral/EventSink.hpp"
|
||||
#include "evoral/MIDIParameters.hpp"
|
||||
#include "evoral/Sequence.hpp"
|
||||
#include "evoral/TypeMap.hpp"
|
||||
#include "evoral/midi_util.h"
|
||||
|
|
@ -936,20 +935,20 @@ Sequence<Time>::append(const Event<Time>& event, event_id_t evid)
|
|||
}
|
||||
} else if (ev.is_cc()) {
|
||||
append_control_unlocked(
|
||||
Evoral::MIDI::ContinuousController(ev.event_type(), ev.channel(), ev.cc_number()),
|
||||
Parameter(ev.event_type(), ev.channel(), ev.cc_number()),
|
||||
ev.time(), ev.cc_value(), evid);
|
||||
} else if (ev.is_pgm_change()) {
|
||||
/* write a patch change with this program change and any previously set-up bank number */
|
||||
append_patch_change_unlocked (PatchChange<Time> (ev.time(), ev.channel(), ev.pgm_number(), _bank[ev.channel()]), evid);
|
||||
} else if (ev.is_pitch_bender()) {
|
||||
append_control_unlocked(
|
||||
Evoral::MIDI::PitchBender(ev.event_type(), ev.channel()),
|
||||
Parameter(ev.event_type(), ev.channel()),
|
||||
ev.time(), double ((0x7F & ev.pitch_bender_msb()) << 7
|
||||
| (0x7F & ev.pitch_bender_lsb())),
|
||||
evid);
|
||||
} else if (ev.is_channel_pressure()) {
|
||||
append_control_unlocked(
|
||||
Evoral::MIDI::ChannelPressure(ev.event_type(), ev.channel()),
|
||||
Parameter(ev.event_type(), ev.channel()),
|
||||
ev.time(), ev.channel_pressure(), evid);
|
||||
} else if (!_type_map.type_is_midi(ev.event_type())) {
|
||||
printf("WARNING: Sequence: Unknown event type %X: ", ev.event_type());
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
#include "SequenceTest.hpp"
|
||||
#include "evoral/MIDIParameters.hpp"
|
||||
#include <cassert>
|
||||
|
||||
CPPUNIT_TEST_SUITE_REGISTRATION(SequenceTest);
|
||||
|
|
@ -103,11 +102,12 @@ SequenceTest::controlInterpolationTest ()
|
|||
static const uint64_t delay = 1000;
|
||||
static const uint32_t cc_type = 1;
|
||||
|
||||
boost::shared_ptr<Control> c = seq->control(MIDI::ContinuousController(cc_type, 1, 1), true);
|
||||
boost::shared_ptr<Control> c = seq->control(Parameter(cc_type, 1, 1), true);
|
||||
CPPUNIT_ASSERT(c);
|
||||
|
||||
double min, max, normal;
|
||||
MIDI::controller_range(min, max, normal);
|
||||
double min = 0.0;
|
||||
double max = 127.0;
|
||||
double normal = 0.0;
|
||||
|
||||
// Make a ramp like /\ from min to max and back to min
|
||||
c->set_double(min, 0, true);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue