/*
- Copyright (C) 2000 Paul Davis
-
- 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.
-
-*/
+ * Copyright (C) 2005-2018 Paul Davis <paul@linuxaudiosystems.com>
+ * Copyright (C) 2005 Taybin Rutkin <taybin@taybin.com>
+ * Copyright (C) 2006 Hans Fugal <hans@fugal.net>
+ * Copyright (C) 2008-2012 David Robillard <d@drobilla.net>
+ * Copyright (C) 2009-2012 Carl Hetherington <carl@carlh.net>
+ * Copyright (C) 2013-2019 Robin Gareus <robin@gareus.org>
+ * Copyright (C) 2013 Colin Fletcher <colin.m.fletcher@googlemail.com>
+ * Copyright (C) 2014-2016 Nick Mainsbridge <mainsbridge@gmail.com>
+ * Copyright (C) 2015-2016 Tim Mayberry <mojofunk@gmail.com>
+ *
+ * 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.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
#include <cmath>
#include <cstdlib>
, glue_check_button (_("Glue"))
, _clock_group (0)
{
+
i_am_the_modifier = 0;
remove_button.set_icon (ArdourIcon::CloseCross);
remove_button.set_events (remove_button.get_events() & ~(Gdk::ENTER_NOTIFY_MASK|Gdk::LEAVE_NOTIFY_MASK));
number_label.set_name ("LocationEditNumberLabel");
+ date_label.set_name ("LocationDateLabel");
name_label.set_name ("LocationEditNameLabel");
name_entry.set_name ("LocationEditNameEntry");
cd_check_button.set_name ("LocationEditCdButton");
item_table.attach (hide_check_button, 5, 6, 0, 1, FILL, Gtk::FILL, 4, 0);
item_table.attach (lock_check_button, 6, 7, 0, 1, FILL, Gtk::FILL, 4, 0);
item_table.attach (glue_check_button, 7, 8, 0, 1, FILL, Gtk::FILL, 4, 0);
+
+ Glib::DateTime gdt(Glib::DateTime::create_now_local (location->timestamp()));
+ string date = gdt.format ("%F %H:%M");
+ date_label.set_text(date);
+ item_table.attach (date_label, 9, 10, 0, 1, FILL, Gtk::FILL, 4, 0);
+
}
hide_check_button.set_active (location->is_hidden());
lock_check_button.set_active (location->locked());
cd_check_button.set_active (location->is_cd_marker());
cd_check_button.show();
- if (location->start() == _session->current_start_frame()) {
+ if (location->start() == _session->current_start_sample()) {
cd_check_button.set_sensitive (false);
} else {
cd_check_button.set_sensitive (true);
switch (part) {
case LocStart:
- location->set_start (_session->transport_frame (), false, true, divisions);
+ location->set_start (_session->transport_sample (), false, true, divisions);
break;
case LocEnd:
- location->set_end (_session->transport_frame (), false, true,divisions);
+ location->set_end (_session->transport_sample (), false, true,divisions);
if (location->is_session_range()) {
- _session->set_end_is_free (false);
+ _session->set_session_range_is_free (false);
}
break;
default:
case LocEnd:
location->set_end (end_clock.current_time(), false, true, divisions);
if (location->is_session_range()) {
- _session->set_end_is_free (false);
+ _session->set_session_range_is_free (false);
}
break;
case LocLength:
location->set_end (location->start() + length_clock.current_duration(), false, true, divisions);
if (location->is_session_range()) {
- _session->set_end_is_free (false);
+ _session->set_session_range_is_free (false);
}
default:
break;
//}
if (cd_check_button.get_active()) {
- if (location->start() <= _session->current_start_frame()) {
+ if (location->start() <= _session->current_start_sample()) {
error << _("You cannot put a CD marker at the start of the session") << endmsg;
cd_check_button.set_active (false);
return;
item_table.remove (cd_track_details_hbox);
// item_table.resize(1, 7);
- redraw_ranges(); /* EMIT_SIGNAL */
+ redraw_ranges(); /* EMIT_SIGNAL */
}
}
return;
}
- remove_requested (location); /* EMIT_SIGNAL */
+ remove_requested (location); /* EMIT_SIGNAL */
}
start_clock.set (location->start());
- if (location->start() == _session->current_start_frame()) {
+ if (location->start() == _session->current_start_sample()) {
cd_check_button.set_sensitive (false);
} else {
cd_check_button.set_sensitive (true);
LocationUI::LocationUI (std::string state_node_name)
: add_location_button (_("New Marker"))
, add_range_button (_("New Range"))
- , _mode (AudioClock::Frames)
+ , _mode (AudioClock::Samples)
, _mode_set (false)
, _state_node_name (state_node_name)
{
location_rows.set_name("LocationLocRows");
location_rows_scroller.add (location_rows);
location_rows_scroller.set_name ("LocationLocRowsScroller");
- location_rows_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
+ location_rows_scroller.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
location_rows_scroller.set_size_request (-1, 130);
newest_location = 0;
range_rows.set_name("LocationRangeRows");
range_rows_scroller.add (range_rows);
range_rows_scroller.set_name ("LocationRangeRowsScroller");
- range_rows_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
+ range_rows_scroller.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
range_rows_scroller.set_size_request (-1, 130);
range_frame_box.set_spacing (5);
string markername;
if (_session) {
- framepos_t where = _session->audible_frame();
+ samplepos_t where = _session->audible_sample();
_session->locations()->next_available_name(markername,"mark");
Location *location = new Location (*_session, where, where, markername, Location::IsMark);
if (UIConfiguration::instance().get_name_new_markers()) {
string rangename;
if (_session) {
- framepos_t where = _session->audible_frame();
+ samplepos_t where = _session->audible_sample();
_session->locations()->next_available_name(rangename,"unnamed");
Location *location = new Location (*_session, where, where, rangename, Location::IsRangeMarker);
PublicEditor::instance().begin_reversible_command (_("add range marker"));
XMLNode* node = _session->instant_xml (_state_node_name);
if (!node) {
- return ARDOUR_UI::instance()->secondary_clock->mode();
+ return ARDOUR_UI::instance()->primary_clock->mode();
}
if (!node->get_property (X_("clock-mode"), _mode)) {
- return ARDOUR_UI::instance()->secondary_clock->mode();
+ return ARDOUR_UI::instance()->primary_clock->mode();
}
_mode_set = true;