X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fmidi%2B%2B2%2Fmidi%2B%2B%2Fport.h;h=02cc340194b89f3a81be9dff8a85013b595c9816;hb=22fd92f97c5ff2bb1890a3b88085bed5c035498e;hp=f16743337c8c7e626b7604929c5a578e94ccdf46;hpb=680c64246e4ee9f3eb53da079dea6a7ecf996e92;p=ardour.git diff --git a/libs/midi++2/midi++/port.h b/libs/midi++2/midi++/port.h index f16743337c..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,15 +22,16 @@ #include #include -#include /* XXX ... desirable to get rid of this but needed for - * now due to use of JackPortIsXXXX - */ +#include #include "pbd/xml++.h" +#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" @@ -39,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 (); @@ -71,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. @@ -82,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; @@ -91,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; } @@ -138,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; };