X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fmidi%2B%2B2%2Fmidi%2B%2B%2Fmmc.h;h=caf1605c290ee522b9c614b96b494be3514c47e6;hb=00caabf73583fa029601b7d4e9ccdb9b2da7925c;hp=ffabf863a063482bc09ce7b581c40347f5c51a63;hpb=7000afdc66c9e0ae8dcf9ec080517dabba1e7f34;p=ardour.git diff --git a/libs/midi++2/midi++/mmc.h b/libs/midi++2/midi++/mmc.h index ffabf863a0..caf1605c29 100644 --- a/libs/midi++2/midi++/mmc.h +++ b/libs/midi++2/midi++/mmc.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2000 Paul Barton-Davis + Copyright (C) 2000 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 @@ -40,7 +40,7 @@ class Parser; class MachineControlCommand; /** Class to handle incoming and outgoing MIDI machine control messages */ -class LIBMIDIPP_API MachineControl +class LIBMIDIPP_API MachineControl { public: typedef PBD::Signal1 MMCSignal; @@ -60,10 +60,10 @@ class LIBMIDIPP_API MachineControl cmdChase = 0xB, cmdCommandErrorReset = 0xC, cmdMmcReset = 0xD, - + cmdIllegalMackieJogStart = 0x20, cmdIllegalMackieJogStop = 0x21, - + cmdWrite = 0x40, cmdMaskedWrite = 0x41, cmdRead = 0x42, @@ -93,28 +93,28 @@ class LIBMIDIPP_API MachineControl cmdWait = 0x7C, cmdResume = 0x7F }; - + MachineControl (); - + void set_ports (MIDI::Port* input, MIDI::Port* output); Port* input_port() { return _input_port; } Port* output_port() { return _output_port; } - + void set_receive_device_id (byte id); void set_send_device_id (byte id); byte receive_device_id () const { return _receive_device_id; } byte send_device_id () const { return _send_device_id; } void enable_send (bool); bool send_enabled () const { return _enable_send; } - void send (MachineControlCommand const &); + void send (MachineControlCommand const &, timestamp_t when); static bool is_mmc (byte *sysex_buf, size_t len); /* Signals to connect to if you want to run "callbacks" when certain MMC commands are received. */ - + MMCSignal Stop; MMCSignal Play; MMCSignal DeferredPlay; @@ -159,23 +159,23 @@ class LIBMIDIPP_API MachineControl /* The second argument is the shuttle speed, the third is true if the direction is "forwards", false for "reverse" */ - + PBD::Signal3 Shuttle; /* The second argument specifies the desired track record enabled status. */ - PBD::Signal3 + PBD::Signal3 TrackRecordStatusChange; - + /* The second argument specifies the desired track record enabled status. */ - PBD::Signal3 + PBD::Signal3 TrackMuteChange; - + /* The second argument points to a byte array containing the locate target value in MMC Standard Time Code format (5 bytes, roughly: hrs/mins/secs/frames/subframes) @@ -184,13 +184,13 @@ class LIBMIDIPP_API MachineControl PBD::Signal2 Locate; /* The second argument is the number of steps to jump */ - + PBD::Signal2 Step; #define MMC_NTRACKS 48 /* note: these are not currently in use */ - + byte updateRate; byte responseError; byte commandError; @@ -261,7 +261,7 @@ class LIBMIDIPP_API MachineControl byte responseSegment; byte wait; byte resume; - + private: byte _receive_device_id; byte _send_device_id; @@ -276,7 +276,7 @@ class LIBMIDIPP_API MachineControl int do_locate (byte *, size_t len); int do_step (byte *, size_t len); int do_shuttle (byte *, size_t len); - + void write_track_status (byte *, size_t len, byte reg); void spp_start (); void spp_continue (); @@ -293,7 +293,7 @@ public: MachineControlCommand () : _command (MachineControl::Command (0)) {} MachineControlCommand (MachineControl::Command); MachineControlCommand (Timecode::Time); - + MIDI::byte* fill_buffer (MachineControl *mmc, MIDI::byte *) const; private: