summaryrefslogtreecommitdiff
path: root/libs/surfaces/tranzport/tranzport_control_protocol.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/surfaces/tranzport/tranzport_control_protocol.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/surfaces/tranzport/tranzport_control_protocol.h')
-rw-r--r--libs/surfaces/tranzport/tranzport_control_protocol.h386
1 files changed, 0 insertions, 386 deletions
diff --git a/libs/surfaces/tranzport/tranzport_control_protocol.h b/libs/surfaces/tranzport/tranzport_control_protocol.h
deleted file mode 100644
index 929cca3e2b..0000000000
--- a/libs/surfaces/tranzport/tranzport_control_protocol.h
+++ /dev/null
@@ -1,386 +0,0 @@
-/*
- Copyright (C) 2006 Paul Davis
- Copyright (C) 2007 Mike Taht
-
- 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 ardour_tranzport_control_protocol_h
-#define ardour_tranzport_control_protocol_h
-
-#include "tranzport_base.h"
-
-#include <vector>
-#include <bitset>
-#include <sys/time.h>
-#include <pthread.h>
-
-#if !HAVE_TRANZPORT_KERNEL_DRIVER
-#include <usb.h>
-#endif
-
-#include <glibmm/thread.h>
-#include <ardour/types.h>
-
-#include <control_protocol/control_protocol.h>
-
-class TranzportControlProtocol : public ARDOUR::ControlProtocol
-{
-public:
- TranzportControlProtocol (ARDOUR::Session&);
- virtual ~TranzportControlProtocol();
-
- int set_active (bool yn);
-
- static bool probe ();
-
- XMLNode& get_state ();
- int set_state (const XMLNode&);
-
-private:
- static const int VENDORID = 0x165b;
- static const int PRODUCTID = 0x8101;
- static const int READ_ENDPOINT = 0x81;
- static const int WRITE_ENDPOINT = 0x02;
- const static int STATUS_OFFLINE = 0xff;
- const static int STATUS_ONLINE = 0x01;
- const static int STATUS_OK = 0x00;
-
- const static int LIGHTS = 7;
- const static int ROWS = 2;
- const static int COLUMNS = 20;
- const static uint8_t WheelDirectionThreshold = 0x7f;
-
- enum LightID {
- LightRecord = 0,
- LightTrackrec,
- LightTrackmute,
- LightTracksolo,
- LightAnysolo,
- LightLoop,
- LightPunch
- };
-
- enum ButtonID {
- ButtonBattery = 0x00004000,
- ButtonBacklight = 0x00008000,
- ButtonTrackLeft = 0x04000000,
- ButtonTrackRight = 0x40000000,
- ButtonTrackRec = 0x00040000,
- ButtonTrackMute = 0x00400000,
- ButtonTrackSolo = 0x00000400,
- ButtonUndo = 0x80000000,
- ButtonIn = 0x02000000,
- ButtonOut = 0x20000000,
- ButtonPunch = 0x00800000,
- ButtonLoop = 0x00080000,
- ButtonPrev = 0x00020000,
- ButtonAdd = 0x00200000,
- ButtonNext = 0x00000200,
- ButtonRewind = 0x01000000,
- ButtonFastForward = 0x10000000,
- ButtonStop = 0x00010000,
- ButtonPlay = 0x00100000,
- ButtonRecord = 0x00000100,
- ButtonShift = 0x08000000,
- ButtonFootswitch = 0x00001000
- };
-
- enum WheelShiftMode {
- WheelShiftGain,
- WheelShiftPan,
- WheelShiftMaster,
- WheelShiftMarker
- };
-
- enum WheelMode {
- WheelTimeline,
- WheelScrub,
- WheelShuttle
- };
-
- // FIXME - look at gtk2_ardour for snap settings
-
- enum WheelIncrement {
- WheelIncrSlave,
- WheelIncrScreen,
- WheelIncrSample,
- WheelIncrBeat,
- WheelIncrBar,
- WheelIncrSecond,
- WheelIncrMinute
- };
-
- enum DisplayMode {
- DisplayNormal,
- DisplayRecording,
- DisplayRecordingMeter,
- DisplayBigMeter,
- DisplayConfig,
- DisplayBling,
- DisplayBlingMeter
- };
-
- enum BlingMode {
- BlingOff,
- BlingKit,
- BlingRotating,
- BlingPairs,
- BlingRows,
- BlingFlashAll,
- BlingEnter,
- BlingExit
- };
-
- pthread_t thread;
-#if HAVE_TRANZPORT_KERNEL_DRIVER
- int udev;
-#else
- usb_dev_handle* udev;
-#endif
-
-#if TRANZPORT_THREADS
- pthread_t thread_read;
-#endif
- int last_read_error;
-
- uint32_t buttonmask;
- uint32_t timeout;
- uint32_t inflight;
- uint32_t current_track_id;
-#if TRANZPORT_THREADS
- pthread_t thread_write;
-#endif
- int last_write_error;
- uint8_t _datawheel;
- uint8_t _device_status;
- WheelMode wheel_mode;
- WheelShiftMode wheel_shift_mode;
- DisplayMode display_mode;
- BlingMode bling_mode;
- WheelIncrement wheel_increment;
-
- ARDOUR::gain_t gain_fraction;
-
- Glib::Mutex update_lock;
-
- std::bitset<ROWS*COLUMNS> screen_invalid;
- char screen_current[ROWS][COLUMNS];
- char screen_pending[ROWS][COLUMNS];
- char screen_flash[ROWS][COLUMNS];
-
- std::bitset<LIGHTS> lights_invalid;
- std::bitset<LIGHTS> lights_current;
- std::bitset<LIGHTS> lights_pending;
- std::bitset<LIGHTS> lights_flash;
-
- int32_t last_notify;
- char last_notify_msg[COLUMNS+1];
- uint32_t last_bars;
- uint32_t last_beats;
- uint32_t last_ticks;
-
- bool last_negative;
- uint32_t last_hrs;
- uint32_t last_mins;
- uint32_t last_secs;
- uint32_t last_frames;
- nframes_t last_where;
- ARDOUR::gain_t last_track_gain;
- uint32_t last_meter_fill;
- struct timeval last_wheel_motion;
- int last_wheel_dir;
-
- Glib::Mutex io_lock;
-
- int open ();
- int read (uint8_t *buf,uint32_t timeout_override = 0);
- int write (uint8_t* cmd, uint32_t timeout_override = 0);
- int write_noretry (uint8_t* cmd, uint32_t timeout_override = 0);
- int close ();
- int save_config(char *name = "default");
- int load_config(char *name = "default");
- int save(char *name);
- int load(char *name);
- void print (int row, int col, const char* text);
- void print_noretry (int row, int col, const char* text);
- void notify(const char *msg);
-
-#if HAVE_TRANZPORT_KERNEL_DRIVER
- int rtpriority_set(int priority = 3); // we don't need serious rt privs anymore
-#else
- int rtpriority_set(int priority = 52);
-#endif
- int rtpriority_unset(int priority = 0);
-
- // I hate changing the api to do either but until I have clean io class what can you do?
-#if !HAVE_TRANZPORT_KERNEL_DRIVER
- int open_core (struct usb_device*);
-#endif
- static void* _monitor_work (void* arg);
- void* monitor_work ();
-
- int process (uint8_t *);
- int update_state();
- void invalidate();
- int flush();
- // bool isuptodate(); // think on this. It seems futile to update more than 30/sec
-
- // A screen is a cache of what should be on the lcd
-
- void screen_init();
- void screen_validate();
- void screen_invalidate();
- int screen_flush();
- void screen_clear();
- // bool screen_isuptodate(); // think on this -
- int screen_show_bling();
-
- // Commands to write to the lcd
-
- int lcd_init();
- bool lcd_damage();
- bool lcd_isdamaged();
-
- bool lcd_damage(int row, int col = 0, int length = COLUMNS);
- bool lcd_isdamaged(int row, int col = 0, int length = COLUMNS);
-
- int lcd_flush();
- int lcd_write(uint8_t* cmd, uint32_t timeout_override = 0); // pedantic alias for write
- void lcd_fill (uint8_t fill_char);
- void lcd_clear ();
- void lcd_print (int row, int col, const char* text);
- void lcd_print_noretry (int row, int col, const char* text);
-
- // Commands to write to the lights
- // FIXME - on some devices lights can have intensity and colors
-
- void lights_init();
- void lights_validate();
- void lights_invalidate();
- void light_validate(LightID light);
- void light_invalidate(LightID light);
- int lights_flush();
- int lights_write(uint8_t* cmd,uint32_t timeout_override = 0); // pedantic alias to write
-
- // a cache of what should be lit
-
- void lights_off ();
- void lights_on ();
- int light_set(LightID, bool offon = true);
- int light_on (LightID);
- int light_off (LightID);
-
- // some modes for the lights, should probably be renamed
-
- int lights_show_normal();
- int lights_show_recording();
- int lights_show_tempo();
- int lights_show_bling();
-
- void enter_big_meter_mode ();
- void enter_normal_display_mode ();
- void enter_config_mode();
- void enter_recording_mode();
- void enter_bling_mode();
-
- void next_marker (); // basicui doesn't give me enough info
- void prev_marker ();
-
- void next_display_mode ();
- void normal_update ();
-
- void show_current_track ();
- void show_track_gain ();
- void show_transport_time ();
- void show_bbt (nframes_t where);
- void show_smpte (nframes_t where);
- void show_wheel_mode ();
- void show_gain ();
- void show_pan ();
- void show_meter ();
- void show_mini_meter ();
- void show_bling();
- void show_notify();
-
- void datawheel ();
- void scrub ();
- void scroll ();
- void shuttle ();
- void config ();
-
- void next_wheel_mode ();
- void next_wheel_shift_mode ();
-
- void set_current_track (ARDOUR::Route*);
- void next_track ();
- void prev_track ();
- void step_gain_up ();
- void step_gain_down ();
- void step_pan_right ();
- void step_pan_left ();
-
-
- void button_event_battery_press (bool shifted);
- void button_event_battery_release (bool shifted);
- void button_event_backlight_press (bool shifted);
- void button_event_backlight_release (bool shifted);
- void button_event_trackleft_press (bool shifted);
- void button_event_trackleft_release (bool shifted);
- void button_event_trackright_press (bool shifted);
- void button_event_trackright_release (bool shifted);
- void button_event_trackrec_press (bool shifted);
- void button_event_trackrec_release (bool shifted);
- void button_event_trackmute_press (bool shifted);
- void button_event_trackmute_release (bool shifted);
- void button_event_tracksolo_press (bool shifted);
- void button_event_tracksolo_release (bool shifted);
- void button_event_undo_press (bool shifted);
- void button_event_undo_release (bool shifted);
- void button_event_in_press (bool shifted);
- void button_event_in_release (bool shifted);
- void button_event_out_press (bool shifted);
- void button_event_out_release (bool shifted);
- void button_event_punch_press (bool shifted);
- void button_event_punch_release (bool shifted);
- void button_event_loop_press (bool shifted);
- void button_event_loop_release (bool shifted);
- void button_event_prev_press (bool shifted);
- void button_event_prev_release (bool shifted);
- void button_event_add_press (bool shifted);
- void button_event_add_release (bool shifted);
- void button_event_next_press (bool shifted);
- void button_event_next_release (bool shifted);
- void button_event_rewind_press (bool shifted);
- void button_event_rewind_release (bool shifted);
- void button_event_fastforward_press (bool shifted);
- void button_event_fastforward_release (bool shifted);
- void button_event_stop_press (bool shifted);
- void button_event_stop_release (bool shifted);
- void button_event_play_press (bool shifted);
- void button_event_play_release (bool shifted);
- void button_event_record_press (bool shifted);
- void button_event_record_release (bool shifted);
- void button_event_footswitch_press(bool shifted);
- void button_event_footswitch_release (bool shifted);
-
- // new api - still thinking about it
- void button_event_mute (bool pressed, bool shifted);
-};
-
-
-#endif // ardour_tranzport_control_protocol_h