switch (dialog.run ()) {
case RESPONSE_ACCEPT:
- break;
- default:
return 1;
+ default:
+ return 0;
}
-
- return 0;
}
-
void
ARDOUR_UI::disconnect_from_jack ()
{
_route.panner().Changed.connect (mem_fun(*this, &AudioTimeAxisView::update_pans));
- solo_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::solo_press));
- solo_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::solo_release));
- mute_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::mute_press));
- mute_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::mute_release));
+ solo_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::solo_press), false);
+ solo_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::solo_release), false);
+ mute_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::mute_press), false);
+ mute_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::mute_release), false);
rec_enable_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::rec_enable_press));
edit_group_button.signal_button_release_event().connect (mem_fun(*this, &AudioTimeAxisView::edit_click), false);
playlist_button.signal_clicked().connect (mem_fun(*this, &AudioTimeAxisView::playlist_click));
output_button.signal_button_release_event().connect (mem_fun(*this, &MixerStrip::output_press), false);
rec_enable_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::rec_enable_press));
- solo_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::solo_press));
- solo_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::solo_release));
- mute_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::mute_press));
- mute_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::mute_release));
+ solo_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::solo_press), false);
+ solo_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::solo_release), false);
+ mute_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::mute_press), false);
+ mute_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::mute_release), false);
gain_automation_style_button.signal_button_press_event().connect (mem_fun(*this, &MixerStrip::gain_automation_style_button_event), false);
gain_automation_style_button.signal_button_release_event().connect (mem_fun(*this, &MixerStrip::gain_automation_style_button_event), false);
}
}
- return stop_signal (*solo_button, "button-press-event");
+ return true;
}
gint
RouteUI::solo_release(GdkEventButton* ev)
{
- if(!ignore_toggle){
- if (wait_for_release){
+ if (!ignore_toggle) {
+ if (wait_for_release) {
wait_for_release = false;
// undo the last op
// because the press was the last undoable thing we did
_session.undo (1U);
-
- stop_signal (*solo_button, "button-release-event");
}
}
- return TRUE;
+
+ return true;
}
gint
bool record_enabling_legal () const;
void maybe_enable_record ();
- void disable_record (bool force = false);
+ void disable_record (bool rt_context, bool force = false);
void step_back_from_record ();
sigc::signal<void> going_away;
{
AudioRegion::SourceList srcs;
- cerr << "setting up destructive playlist with " << channels.size() << " channels\n";
-
for (ChannelList::iterator chan = channels.begin(); chan != channels.end(); ++chan) {
srcs.push_back ((*chan).write_source);
}
goto out;
}
- if (memcmp (&buf[0], "RIFF", 4) || memcmp (&buf[8], "WAVE", 4) || memcmp (&buf[0], "RIFX", 4)) {
+ if ((memcmp (&buf[0], "RIFF", 4) && memcmp (&buf[0], "RIFX", 4)) || memcmp (&buf[8], "WAVE", 4)) {
/* no header. too dangerous to proceed */
goto out;
}
}
void
-Session::disable_record (bool force)
+Session::disable_record (bool rt_context, bool force)
{
RecordState rs;
}
RecordStateChanged (); /* emit signal */
- remove_pending_capture_state ();
+
+ if (!rt_context) {
+ remove_pending_capture_state ();
+ }
}
}
case ButlerRequest::Wake:
break;
+
case ButlerRequest::Run:
butler_should_run = true;
break;
/* make sure we are actually rolling */
if (get_record_enabled()) {
- disable_record ();
+ disable_record (false);
}
_exporting = true;
Session::mmc_record_exit (MIDI::MachineControl &mmc)
{
if (mmc_control) {
- disable_record ();
+ disable_record (false);
}
}
/* there is pending state from a crashed capture attempt */
if (AskAboutPendingState()) {
+ cerr << "use pending state\n";
state_was_pending = true;
- }
+ } else {
+ cerr << "do not use pending state\n";
+ }
}
if (!state_was_pending) {
sources in their state node.
*/
- disable_record ();
+ disable_record (false);
return state(false);
}
_clear_event_type (Event::RangeStop);
_clear_event_type (Event::RangeLocate);
- disable_record ();
+ disable_record (true);
reset_slave_state ();
struct tm* now;
time_t xnow;
bool did_record;
-
+
did_record = false;
-
+
for (DiskStreamList::iterator i = diskstreams.begin(); i != diskstreams.end(); ++i) {
if ((*i)->get_captured_frames () != 0) {
did_record = true;
save_state ("", true);
}
- /* save the current state of things if appropriate */
+ /* always try to get rid of this */
+
+ remove_pending_capture_state ();
+ /* save the current state of things if appropriate */
+
if (did_record) {
save_state (_current_snapshot_name);
}
break;
case Recording:
- disable_record ();
+ disable_record (false);
break;
default: