X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=libs%2Fmidi%2B%2B2%2Fmidi%2B%2B%2Fport.h;h=02cc340194b89f3a81be9dff8a85013b595c9816;hb=22fd92f97c5ff2bb1890a3b88085bed5c035498e;hp=d4f03b593e8e1011dedee6a7584d08887b4f1e47;hpb=650964f3203319b013c49a286b5fc5fc203f3bbb;p=ardour.git diff --git a/libs/midi++2/midi++/port.h b/libs/midi++2/midi++/port.h index d4f03b593e..02cc340194 100644 --- a/libs/midi++2/midi++/port.h +++ b/libs/midi++2/midi++/port.h @@ -1,5 +1,5 @@ /* - Copyright (C) 1998-2010 Paul Barton-Davis + Copyright (C) 1998-2010 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 @@ -22,17 +22,16 @@ #include #include -#include - #include #include "pbd/xml++.h" -#ifndef WIN32 +#ifndef PLATFORM_WINDOWS #include "pbd/crossthread.h" #endif #include "pbd/signals.h" #include "pbd/ringbuffer.h" +#include "midi++/libmidi_visibility.h" #include "midi++/types.h" #include "midi++/parser.h" @@ -41,13 +40,13 @@ namespace MIDI { class Channel; class PortRequest; -class Port { +class LIBMIDIPP_API Port { public: enum Flags { - IsInput = JackPortIsInput, - IsOutput = JackPortIsOutput, + IsInput = 0x1, /* MUST MATCH JACK's JackPortIsInput */ + IsOutput = 0x2, /* MUST MATCH JACK's JackPortIsOutput */ }; - + Port (std::string const &, Flags); Port (const XMLNode&); virtual ~Port (); @@ -55,13 +54,6 @@ class 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 (pframes_t) {} - /* 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 @@ -80,10 +72,10 @@ class Port { /** block until the output FIFO used by non-process threads * is empty, checking every @a check_interval_usecs usecs * for current status. Not to be called by a thread that - * executes any part of a JACK process callback (will + * executes any part of a JACK process callback (will * simply return immediately in that situation). */ - virtual void drain (int /* check_interval_usecs */) {} + virtual void drain (int /* check_interval_usecs */, int /* total_usecs_to_wait */) {} /** Write a message to port. * @return true on success. @@ -91,7 +83,7 @@ class Port { */ int midimsg (byte *msg, size_t len, timestamp_t timestamp) { return !(write (msg, len, timestamp) == (int) len); - } + } virtual void parse (framecnt_t timestamp) = 0; @@ -100,18 +92,18 @@ class Port { /* select(2)/poll(2)-based I/O */ /** Get the file descriptor for port. - * @return File descriptor, or -1 if not selectable. + * @return File descriptor, or -1 if not selectable. */ virtual int selectable () const = 0; - Channel *channel (channel_t chn) { + Channel *channel (channel_t chn) { return _channel[chn&0x7F]; } - + Parser* parser () { return _parser; } - + const char *name () const { return _tagname.c_str(); } bool ok () const { return _ok; } @@ -147,9 +139,9 @@ class Port { void init (std::string const &, Flags); }; -struct PortSet { +struct LIBMIDIPP_API PortSet { PortSet (std::string str) : owner (str) { } - + std::string owner; std::list ports; };