summaryrefslogtreecommitdiff
path: root/libs/midi++2/midi++/channel.h
diff options
context:
space:
mode:
authorDoug McLain <doug@nostar.net>2008-06-02 05:02:28 +0000
committerDoug McLain <doug@nostar.net>2008-06-02 05:02:28 +0000
commit9c0d7d72d70082a54f823cd44c0ccda5da64bb6f (patch)
tree96ec400b83b8c1c06852b1936f684b5fbcd47a79 /libs/midi++2/midi++/channel.h
parent2f3f697bb8e185eb43c2c50b4eefc2bcb937f269 (diff)
remove empty sigc++2 directory
git-svn-id: svn://localhost/ardour2/branches/3.0@3432 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/midi++2/midi++/channel.h')
-rw-r--r--libs/midi++2/midi++/channel.h163
1 files changed, 0 insertions, 163 deletions
diff --git a/libs/midi++2/midi++/channel.h b/libs/midi++2/midi++/channel.h
deleted file mode 100644
index 5a4a397b9d..0000000000
--- a/libs/midi++2/midi++/channel.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- Copyright (C) 1998-99 Paul Barton-Davis
-
- 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; either 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-#ifndef __midichannel_h__
-#define __midichannel_h__
-
-#include <queue>
-
-#include <sigc++/sigc++.h>
-
-#include <midi++/types.h>
-#include <midi++/parser.h>
-
-namespace MIDI {
-
-class Port;
-
-/** Stateful MIDI channel class.
- *
- * This remembers various useful information about the current 'state' of a
- * MIDI channel (eg current pitch bend value).
- */
-class Channel : public sigc::trackable {
-
- public:
- Channel (byte channel_number, Port &);
-
- Port &midi_port() { return _port; }
- byte channel() { return _channel_number; }
- byte program() { return _program_number; }
- byte bank() { return _bank_number; }
- byte pressure () { return _chanpress; }
- byte poly_pressure (byte n) { return _polypress[n]; }
-
- byte last_note_on () {
- return _last_note_on;
- }
- byte last_on_velocity () {
- return _last_on_velocity;
- }
- byte last_note_off () {
- return _last_note_off;
- }
- byte last_off_velocity () {
- return _last_off_velocity;
- }
-
- pitchbend_t pitchbend () {
- return _pitch_bend;
- }
-
- controller_value_t controller_value (byte n) {
- return _controller_val[n%128];
- }
-
- controller_value_t *controller_addr (byte n) {
- return &_controller_val[n%128];
- }
-
- void set_controller (byte n, byte val) {
- _controller_val[n%128] = val;
- }
-
- bool channel_msg (byte id, byte val1, byte val2, timestamp_t timestamp);
- bool all_notes_off (timestamp_t timestamp) {
- return channel_msg (MIDI::controller, 123, 0, timestamp);
- }
-
- bool control (byte id, byte value, timestamp_t timestamp) {
- return channel_msg (MIDI::controller, id, value, timestamp);
- }
-
- bool note_on (byte note, byte velocity, timestamp_t timestamp) {
- return channel_msg (MIDI::on, note, velocity, timestamp);
- }
-
- bool note_off (byte note, byte velocity, timestamp_t timestamp) {
- return channel_msg (MIDI::off, note, velocity, timestamp);
- }
-
- bool aftertouch (byte value, timestamp_t timestamp) {
- return channel_msg (MIDI::chanpress, value, 0, timestamp);
- }
-
- bool poly_aftertouch (byte note, byte value, timestamp_t timestamp) {
- return channel_msg (MIDI::polypress, note, value, timestamp);
- }
-
- bool program_change (byte value, timestamp_t timestamp) {
- return channel_msg (MIDI::program, value, 0, timestamp);
- }
-
- bool pitchbend (byte msb, byte lsb, timestamp_t timestamp) {
- return channel_msg (MIDI::pitchbend, lsb, msb, timestamp);
- }
-
- protected:
- friend class Port;
- void connect_input_signals ();
- void connect_output_signals ();
-
- private:
- Port & _port;
-
- /* Current channel values */
- byte _channel_number;
- byte _bank_number;
- byte _program_number;
- byte _rpn_msb;
- byte _rpn_lsb;
- byte _nrpn_msb;
- byte _nrpn_lsb;
- byte _chanpress;
- byte _polypress[128];
- bool _controller_14bit[128];
- controller_value_t _controller_val[128];
- byte _controller_msb[128];
- byte _controller_lsb[128];
- byte _last_note_on;
- byte _last_on_velocity;
- byte _last_note_off;
- byte _last_off_velocity;
- pitchbend_t _pitch_bend;
- bool _omni;
- bool _poly;
- bool _mono;
- size_t _notes_on;
-
- void reset (timestamp_t timestamp, nframes_t nframes, bool notes_off = true);
-
- void process_note_off (Parser &, EventTwoBytes *);
- void process_note_on (Parser &, EventTwoBytes *);
- void process_controller (Parser &, EventTwoBytes *);
- void process_polypress (Parser &, EventTwoBytes *);
- void process_program_change (Parser &, byte);
- void process_chanpress (Parser &, byte);
- void process_pitchbend (Parser &, pitchbend_t);
- void process_reset (Parser &);
-};
-
-} // namespace MIDI
-
-#endif // __midichannel_h__
-
-
-
-