the mega-properties/SequenceProperty patch. split is broken at present (right hand...
[ardour.git] / libs / surfaces / mackie / TODO
index 8e7e795acd2d393dfab15b37b2d08b62fa3a7575..2573e0f05b7d734921dcde972b0ae790f4945641 100644 (file)
@@ -1,42 +1,68 @@
-* how long can UI signal callbacks take to execute? What happens if they block?
-  where ENSURE_CORRECT_THREAD is a macro that is modelled on ENSURE_GUI_THREAD
-  if the handler is not called in the "correct thread", it will use a pseudo-RT-safe-enough technique to get the correct thread to recall "handler" later on, and return.
-  
-* finish button mapping
-* discuss button mapping for Ardour
+* implement handle_port_inactive properly
+* two bcf doesn't work
+* remappable buttons (OSC or Surfax?)
+* 7/1 configurable to 8
+* need an object that can encapsulate different port types, ie BCF vs MCU. Not at the surface level.
+* finish button implementations.
 * concurrency for bank switching? And make sure "old" events aren't sent to "new" faders
-* concurrency in write( bytes ). Queueing?
-* Are remote_ids supposed to be 1-based or 0-based?
 * TODOs in code
-* handle remote_control_id changed signal from Route.
-* handle removal of route. Need another session signal?
-* Some indication on the UI of remote_ids?
-  Useful for surfaces that don't have a scribble strip.
+* removal of a route results in a strip that isn't dead, but doesn't have any effect on the session
 * use i18n. see string_compose
-* MackieControlProtocol in namespace Mackie?
-* Generic surface code to common location
-* power-cycling of surface. fd_midiport doesn't close.
-* remove couts
-* jog with transport rolling doesn't work properly
-* docs in manual
+
+MCU
+---
+* if mackie wheel moves too fast, it's ignored.
+* gain/panner display in second line
+* metering on second line
+* per-strip signal led
+* midi bandwidth?
+* Zoom buttons, from Jean-Martin Barbut. In fact I'm a bit desappointed with those functions, because I was used
+       to use the 4 "N-E-S-W" buttons to zoom in and out with horizontal
+       buttons and zoom in/out on track height with vertical buttons. That is
+       with the zoom button in. with the zoom button off, it selects tracks
+       with vertical buttons and selects regions with horizontal buttons. This
+       was quite useful. The fact that the zoom button switches the wheel to
+       zoom is fine, but it would be great to also have the track/region
+       selection and the track height available from those buttons. I.e : you
+       select a track with the vertical arrows and you increase/decrease the
+       eight of the track with the zoom btn on. This combined with the region
+       selection allows to zoom in a region (vertical and horizontal zoom) very
+       easily.
+
 
 Later
 -----
+* how long can UI signal callbacks take to execute? What happens if they block?
+  where ENSURE_CORRECT_THREAD is a macro that is modelled on ENSURE_GUI_THREAD
+  if the handler is not called in the "correct thread", it will use a pseudo-RT-safe-enough technique to get the correct thread to recall "handler" later on, and return.
+* alsa/sequencer ports unstable. possibly problems with use of ::poll
+* use glib::Timer instead of mine. Actually don't because it's not very useable.
+* crash when mmc port set to mcu?
+* remove commented couts
+* Perhaps MackieControlProtocol shouldn't implement MackieButtonHandler
+* Need a HostAdapter class to encapsulate ardour calls
+* talk to route plugins
+* check for excessiveness (ie too many events making other subsystems work too hard)
+* Queueing of writes?
+* Generic surface code to common location
+* bulk remote id changes cause too many surface updates. use Config->remote_model.
 * which bank switching - overlap or dead faders? Option?
 * signals for buttons?
+* MackieControlProtocol in namespace Mackie?
+* power-cycling of surface. fd_midiport doesn't close.
+* mix busses and/or a "bus-only" bank/mode
+* what about surfaces like Mackie C4 and BCR2000?
+
+UI integration
+--------------
 
-Actual Mackie
--------------
-* docs claim that unit will send a host query on init.
-* test Mackie surface object. Apparently led rings don't work. Stereo busses?
-* timecode & 55 char displays
-* midi bandwidth
+* maybe use current snap state for jog wheel and ffwd/rew
+* Some indication on the UI of currently bank-switched-in routes?
+  Useful for surfaces that don't have a scribble strip.
 
 Bugs
 ----
-
-* get_state isn't called on deactivate
-* routes "forget" their remote_id between session save and the next session load
-* definitely something wrong with remote_id assignment on session create
-  (master strip assigned 0).
-* gui enables record for tracks with no inputs
+* when using alsa/sequencer, some midi events intended for mcu port end up being
+  read by the seq port.
+* MIDI::Port::type() returns _type, which is undefined. It might be in the descriptor
+* auditioner doesn't connect to master 1 and master 2 - it loses the spaces.