13
0
livetrax/libs/surfaces/mackie/TODO
Paul Davis 51625b2474 "merge" (i.e. wholesale import) 2.0-ongoing Mackie code and then fix to compile in 3.0 context
git-svn-id: svn://localhost/ardour2/branches/3.0@4315 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-12 22:55:03 +00:00

69 lines
3.1 KiB
Plaintext

* 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
* TODOs in code
* 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
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
--------------
* 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
----
* 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.