diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-10-13 15:07:50 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-10-13 15:07:50 +0000 |
commit | 2b90eeade92f750e85408f25b2d34af3e695f1cf (patch) | |
tree | 0057ef49e6c3692f2933bfffc22ec5db4ae402e4 /libs | |
parent | 1f2c5ba533d1e257e35c042feb79561757e03f4b (diff) |
session export starts from session start marker; add tooltips for rude solo + audition; start work on control protocol feedback control (unfinished but compiles and runs
git-svn-id: svn://localhost/ardour2/trunk@985 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/control_protocol_manager.h | 1 | ||||
-rw-r--r-- | libs/ardour/control_protocol_manager.cc | 1 | ||||
-rw-r--r-- | libs/ardour/session.cc | 14 | ||||
-rw-r--r-- | libs/ardour/session_midi.cc | 2 | ||||
-rw-r--r-- | libs/surfaces/control_protocol/control_protocol/control_protocol.h | 2 | ||||
-rw-r--r-- | libs/surfaces/generic_midi/generic_midi_control_protocol.h | 1 | ||||
-rw-r--r-- | libs/surfaces/generic_midi/interface.cc | 1 | ||||
-rw-r--r-- | libs/surfaces/tranzport/interface.cc | 1 |
8 files changed, 19 insertions, 4 deletions
diff --git a/libs/ardour/ardour/control_protocol_manager.h b/libs/ardour/ardour/control_protocol_manager.h index 99de5479fb..39e4803637 100644 --- a/libs/ardour/ardour/control_protocol_manager.h +++ b/libs/ardour/ardour/control_protocol_manager.h @@ -23,6 +23,7 @@ struct ControlProtocolInfo { std::string path; bool requested; bool mandatory; + bool supports_feedback; XMLNode* state; ControlProtocolInfo() : descriptor (0), protocol (0), state (0) {} diff --git a/libs/ardour/control_protocol_manager.cc b/libs/ardour/control_protocol_manager.cc index 7170b45656..1ff6c28ef3 100644 --- a/libs/ardour/control_protocol_manager.cc +++ b/libs/ardour/control_protocol_manager.cc @@ -189,6 +189,7 @@ ControlProtocolManager::control_protocol_discover (string path) cpi->protocol = 0; cpi->requested = false; cpi->mandatory = descriptor->mandatory; + cpi->supports_feedback = descriptor->supports_feedback; cpi->state = 0; control_protocol_info.push_back (cpi); diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index d5ff3d223c..e8f6ec1023 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -3288,7 +3288,19 @@ Session::remove_redirect (Redirect* redirect) nframes_t Session::available_capture_duration () { - const double scale = 4096.0 / sizeof (Sample); + float sample_bytes_on_disk; + + switch (Config->get_native_file_data_format()) { + case FormatFloat: + sample_bytes_on_disk = 4; + break; + + case FormatInt24: + sample_bytes_on_disk = 3; + break; + } + + double scale = 4096.0 / sample_bytes_on_disk; if (_total_free_4k_blocks * scale > (double) max_frames) { return max_frames; diff --git a/libs/ardour/session_midi.cc b/libs/ardour/session_midi.cc index 1af00ca337..fe08b40127 100644 --- a/libs/ardour/session_midi.cc +++ b/libs/ardour/session_midi.cc @@ -1111,7 +1111,7 @@ Session::terminate_midi_thread () void Session::poke_midi_thread () { - char c; + static char c = 0; if (write (midi_request_pipe[1], &c, 1) != 1) { error << string_compose(_("cannot send signal to midi thread! (%1)"), strerror (errno)) << endmsg; diff --git a/libs/surfaces/control_protocol/control_protocol/control_protocol.h b/libs/surfaces/control_protocol/control_protocol/control_protocol.h index 3635b267ce..a689d49431 100644 --- a/libs/surfaces/control_protocol/control_protocol/control_protocol.h +++ b/libs/surfaces/control_protocol/control_protocol/control_protocol.h @@ -47,7 +47,6 @@ class ControlProtocol : public sigc::trackable, public Stateful, public BasicUI virtual int set_feedback (bool yn) { return 0; } virtual bool get_feedback () const { return false; } - virtual bool supports_feedback () const { return false; } sigc::signal<void> ActiveChanged; @@ -114,6 +113,7 @@ extern "C" { void* ptr; /* protocol can store a value here */ void* module; /* not for public access */ int mandatory; /* if non-zero, always load and do not make optional */ + bool supports_feedback; /* if true, protocol has toggleable feedback mechanism */ bool (*probe)(ControlProtocolDescriptor*); ControlProtocol* (*initialize)(ControlProtocolDescriptor*,Session*); void (*destroy)(ControlProtocolDescriptor*,ControlProtocol*); diff --git a/libs/surfaces/generic_midi/generic_midi_control_protocol.h b/libs/surfaces/generic_midi/generic_midi_control_protocol.h index d008744727..6fba16bccd 100644 --- a/libs/surfaces/generic_midi/generic_midi_control_protocol.h +++ b/libs/surfaces/generic_midi/generic_midi_control_protocol.h @@ -34,7 +34,6 @@ class GenericMidiControlProtocol : public ARDOUR::ControlProtocol { int set_feedback (bool yn); bool get_feedback () const; - bool supports_feedback () const { return true; } XMLNode& get_state (); int set_state (const XMLNode&); diff --git a/libs/surfaces/generic_midi/interface.cc b/libs/surfaces/generic_midi/interface.cc index 230be694f2..c70b5b6b61 100644 --- a/libs/surfaces/generic_midi/interface.cc +++ b/libs/surfaces/generic_midi/interface.cc @@ -42,6 +42,7 @@ static ControlProtocolDescriptor generic_midi_descriptor = { ptr : 0, module : 0, mandatory : 0, + supports_feedback : true, probe : probe_generic_midi_protocol, initialize : new_generic_midi_protocol, destroy : delete_generic_midi_protocol diff --git a/libs/surfaces/tranzport/interface.cc b/libs/surfaces/tranzport/interface.cc index 29a0fde043..f6d0dc8206 100644 --- a/libs/surfaces/tranzport/interface.cc +++ b/libs/surfaces/tranzport/interface.cc @@ -35,6 +35,7 @@ static ControlProtocolDescriptor tranzport_descriptor = { ptr : 0, module : 0, mandatory : 0, + supports_feedback : false, probe : probe_tranzport_protocol, initialize : new_tranzport_protocol, destroy : delete_tranzport_protocol |