diff options
author | Doug McLain <doug@nostar.net> | 2008-06-02 05:02:28 +0000 |
---|---|---|
committer | Doug McLain <doug@nostar.net> | 2008-06-02 05:02:28 +0000 |
commit | 9c0d7d72d70082a54f823cd44c0ccda5da64bb6f (patch) | |
tree | 96ec400b83b8c1c06852b1936f684b5fbcd47a79 /libs/midi++2/midi++/port.h | |
parent | 2f3f697bb8e185eb43c2c50b4eefc2bcb937f269 (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++/port.h')
-rw-r--r-- | libs/midi++2/midi++/port.h | 194 |
1 files changed, 0 insertions, 194 deletions
diff --git a/libs/midi++2/midi++/port.h b/libs/midi++2/midi++/port.h deleted file mode 100644 index 74ed206932..0000000000 --- a/libs/midi++2/midi++/port.h +++ /dev/null @@ -1,194 +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 __libmidi_port_h__ -#define __libmidi_port_h__ - -#include <string> -#include <iostream> - -#include <sigc++/sigc++.h> -#include <pbd/xml++.h> - -#include <midi++/types.h> -#include <midi++/parser.h> - -namespace MIDI { - -class Channel; -class PortRequest; - -class Port : public sigc::trackable { - public: - enum Type { - Unknown, - JACK_Midi, - ALSA_RawMidi, - ALSA_Sequencer, - CoreMidi_MidiPort, - Null, - FIFO - }; - - - Port (const XMLNode&); - virtual ~Port (); - - virtual XMLNode& get_state () const; - virtual void set_state (const XMLNode&); - - // FIXME: make Manager a friend of port so these can be hidden? - - /* Only for use by MidiManager. Don't ever call this. */ - virtual void cycle_start(nframes_t nframes); - /* Only for use by MidiManager. Don't ever call this. */ - virtual void cycle_end(); - - /** Write a message to port. - * @param msg Raw MIDI message to send - * @param msglen Size of @a msg - * @param timestamp Time stamp in frames of this message (relative to cycle start) - * @return number of bytes successfully written - */ - virtual int write (byte *msg, size_t msglen, timestamp_t timestamp) = 0; - - /** Read raw bytes from a port. - * @param buf memory to store read data in - * @param bufsize size of @a buf - * @return number of bytes successfully read, negative if error - */ - virtual int read (byte *buf, size_t bufsize) = 0; - - void parse (); - - /** Write a message to port. - * @return true on success. - * FIXME: describe semantics here - */ - int midimsg (byte *msg, size_t len, timestamp_t timestamp) { - return !(write (msg, len, timestamp) == (int) len); - } - - int three_byte_msg (byte a, byte b, byte c, timestamp_t timestamp) { - byte msg[3]; - - msg[0] = a; - msg[1] = b; - msg[2] = c; - - return !(write (msg, 3, timestamp) == 3); - } - - bool clock (timestamp_t timestamp); - - /* slowdown i/o to a loop of single byte emissions - interspersed with a busy loop of 10000 * this value. - - This may be ignored by a particular instance - of this virtual class. See FD_MidiPort for an - example of where it used. - */ - - void set_slowdown (size_t n) { slowdown = n; } - - /* select(2)/poll(2)-based I/O */ - - /** Get the file descriptor for port. - * @return File descriptor, or -1 if not selectable. - */ - virtual int selectable() const = 0; - - static void gtk_read_callback (void *ptr, int fd, int cond); - static void write_callback (byte *msg, unsigned int len, void *); - - Channel *channel (channel_t chn) { - return _channel[chn&0x7F]; - } - - Parser *input() { return input_parser; } - Parser *output() { return output_parser; } - - void iostat (int *written, int *read, - const size_t **in_counts, - const size_t **out_counts) { - - *written = bytes_written; - *read = bytes_read; - if (input_parser) { - *in_counts = input_parser->message_counts(); - } else { - *in_counts = 0; - } - if (output_parser) { - *out_counts = output_parser->message_counts(); - } else { - *out_counts = 0; - } - } - - const char *device () const { return _devname.c_str(); } - const char *name () const { return _tagname.c_str(); } - Type type () const { return _type; } - int mode () const { return _mode; } - bool ok () const { return _ok; } - - struct Descriptor { - std::string tag; - std::string device; - int mode; - Port::Type type; - - Descriptor (const XMLNode&); - XMLNode& get_state(); - }; - - protected: - bool _ok; - bool _currently_in_cycle; - nframes_t _nframes_this_cycle; - Type _type; - std::string _devname; - std::string _tagname; - int _mode; - size_t _number; - Channel *_channel[16]; - sigc::connection thru_connection; - unsigned int bytes_written; - unsigned int bytes_read; - Parser *input_parser; - Parser *output_parser; - size_t slowdown; - - virtual std::string get_typestring () const = 0; - - private: - static size_t nports; -}; - -struct PortSet { - PortSet (std::string str) : owner (str) { } - - std::string owner; - std::list<XMLNode> ports; -}; - -std::ostream & operator << ( std::ostream & os, const Port & port ); - -} // namespace MIDI - -#endif // __libmidi_port_h__ |