13
0
Commit Graph

895 Commits

Author SHA1 Message Date
74e4081ef4 save users who like to suffix snapshot names some typing. 2015-12-28 19:24:30 +01:00
4bc075fe7e correct name the event loop used by the GUI 2015-12-12 11:12:10 -05:00
7409d5f224 catch a potential segfault (unload session) 2015-12-10 12:46:24 +01:00
0f3c623a3f fix OSX openFile Application Delegate
allows to open Ardour via double-click on a .ardour file in Finder.
2015-11-29 17:04:40 +01:00
André Nusser
69229f74e0 Add more menu entries to the 'Help' menu.
* The functions were already implemented -- I just added the links in
ardour.menu.in, corrected spelling and the link to the tracker.
* The tracker link was corrected as I considered it confusing when one
is not already logged in.
2015-11-25 17:32:46 -05:00
61e22d9f11 fix logic errors in duplicate tracks dialog 2015-11-14 16:02:05 -05:00
ef810eacd8 move logic of track/bus duplication into DuplicateRouteDialog 2015-11-14 15:25:52 -05:00
456b6adf2b tweak duplicate routes dialog appearance depending on whether or not busses/tracks are the target 2015-11-14 11:05:15 -05:00
aeb7246977 partial dialog to control track duplication 2015-11-14 10:30:08 -05:00
100701cb23 initial/partial implementation of duplicate track/bus 2015-11-13 16:14:49 -05:00
André Nusser
14c2409f47 Show info dialog when opening chat via Help -> Chat.
This should clarify for users that in IRC you post your question and
wait, and not leave after a few minutes.
2015-11-04 17:53:03 -05:00
André Nusser
6ccffbaf09 Improve behavior of overwrite_file_dialog.
- Make overwrite file dialogs transient.
- Cancelling the overwrite dialog doesn't close initial dialog.
2015-11-04 17:52:00 -05:00
4a3413f2d4 suspend timers while flushing the gtk-event queue.
This fixes an issues where Ardour never completes to flush the GUI event
queue due to rapid updates for meters and similar events.

ARDOUR_UI::load_session() never returned and the complete session
ran inside Gtkmm2ext::UI::flush_pending(), this later causes a crash
at exit.

as side effect, this also speeds up session load.
2015-10-30 15:55:27 +01:00
nick_m
72556cdd7a Amend last commit. 2015-10-23 02:14:03 +11:00
nick_m
410d4316b9 Center some windows known to be presented by ardour. 2015-10-23 01:10:56 +11:00
André Nusser
5d50abed75 Confirmation on overwrite for track and session templates. -fixes #6587 2015-10-21 23:28:44 -04:00
f307080808 disable follow-edits with external sync #6577 2015-10-18 02:03:41 +02:00
619900e333 fix #6640 (snapshot clears "dirty" flag)
empty name indicates current-session name.
2015-10-16 21:10:21 +02:00
23b975e172 use API to add system-specific volumes - #6643 2015-10-16 19:07:25 +02:00
5ad63bd3f8 re-enable engine sensitive actions..
..after an engine stop/start cycle.
e.g "New Insert", "New External Send"
2015-10-15 21:50:01 +02:00
696b89b71a rework 8b80fe0, use std::string, not char* 2015-10-15 11:24:15 +02:00
8b80fe04ad Avoid calls to Glib::ustring << operator at all cost.
Glib::operator<<(std::ostream&, Glib::ustring const&) involves
loadlocale which is not thread-safe on OSX.

This fixes various seemingly random crashes on OSX.
2015-10-14 22:46:15 +02:00
6b00e149d2 cancel-solo always clears all solo-state, just in case. 2015-10-06 20:06:25 +02:00
528ad3416a Remove unused methods in ARDOUR_UI for starting/stopping engine 2015-10-06 13:29:57 +10:00
5ed05218e6 Update sample rate and CPU load in status bar when AudioEngine stopped 2015-10-06 13:29:57 +10:00
2397429e99 use quotes for in-tree pbd/glib wrapper include 2015-10-05 22:15:18 +02:00
dc36b063bf remove unused fstream includes 2015-10-05 22:15:18 +02:00
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
eebbf64484 provide Main/cancel-solo as an action and make rude solo button(s) use it 2015-10-02 07:32:56 -04:00
520b78b841 Add parent window argument to ARDOUR_UI::check_audioengine
Ensures relevant placement of the dialog when presented
2015-10-01 09:10:19 +10:00
463bd470e8 Don't hide Audio Setup dialog when clicking 'OK' if engine fails to start
This has to be handled in two places, in ARDOUR_UI::do_audio_midi_setup and in
the dialogs response handler and in as the window can also be triggered via the
window action manager.
2015-10-01 09:10:19 +10:00
2768ce9b05 Use AudioSetupDialog as parent of the error message popup when failing to start engine
Without a session loaded this makes the message dialog appear in front of the
AudioSetup dialog instead of randomly up in the top left somewhere. This does
mean though that if the AudioSetup dialog is not visible the error message
popup will appear randomly up in the top left(at least on windows, it seems
fine on linux) but I will fix that shortly.
2015-10-01 09:10:19 +10:00
d19605aeaa Use AudioEngine::get_last_backend_error in message dialog when failing to start engine
If a backend is not returning AudioBackend::ErrorCode values to indicate the
type of error then the default string will be returned which is the same as
what was previously displayed.
2015-10-01 09:10:19 +10:00
9cf56aab84 fix the logic of the GUI "toggle roll" action as it pertains to loop recording 2015-09-28 17:42:11 -04:00
6c53ebc4c1 basic GUI support to auto-align video by LTC. 2015-09-20 18:37:39 +02:00
dfd7e80fda fix crash at exit, ctrl+s during quit. 2015-09-19 19:00:43 +02:00
f27800ea41 use pbd's gstdio compatibility wrapper (GUI) 2015-09-17 14:38:09 +02:00
4a10dbbc1b deleting pointers to incomplete types may cause undefined behavior 2015-09-17 00:13:43 +02:00
c256075e63 Remove tooltips() member from ARDOUR_UI and use Gtk_UI::set_tip 2015-09-16 16:55:17 -04:00
6b019a4953 Move UIConfiguration Singleton into UIConfiguration header
This removes the direct dependence on ardour_ui.h from 39 files
2015-09-16 16:55:17 -04:00
45d487f16e Move ARDOUR_UI::ui_scale into UIConfiguration class 2015-09-16 16:55:17 -04:00
fc1e7dbb55 Move DPIReset and ColorsChanged signals into UIConfiguration 2015-09-16 16:55:17 -04:00
2d47183dc9 Move util functions into UIConfiguration as they depend on it anyway 2015-09-16 16:55:17 -04:00
2e8af0c917 Remove duplicate extern declaration
DPIReset signal is declared in global_signals.h
2015-09-16 16:55:17 -04:00
18afd09b3b unify recent session dialogs 2015-09-16 21:37:56 +02:00
93cd0d17e4 display active peak-builds 2015-09-15 17:50:27 +02:00
b05912b0cb GUI part: cleanup peak-files 2015-09-15 14:44:05 +02:00
4a1f5c7f28 GUI part of memleak fixes 2015-09-12 20:05:46 +02:00
fd17b40e6f trick ardour to print main-thead mem-pool stats. 2015-09-12 02:18:38 +02:00
f970022838 ditto for the announcement message 2015-09-10 17:39:32 +02:00
1ebe22eeed catch mem-leaks more easily. 2015-09-10 17:39:31 +02:00
6e944121f6 Don't unload session with Session -> Open -> Cancel, Fixes #6568 2015-09-09 09:58:13 +10:00
54d216429c offer up (when possible) MBWF, RF64 and RF64 (WAV) options 2015-09-08 17:40:29 -04:00
Guy Sherman
045b878bd1 NOOP, whitespace only 2015-09-08 22:30:36 +02:00
929db238c9 fix prev. commit 2015-09-08 22:27:15 +02:00
2f1878a6f7 portable c-code for reading pingback/announcement message 2015-09-08 21:21:28 +02:00
d0fdcf2848 Use glib to open our 'announcements' file, rather than opening directly with ofstream
(on Windows, std::ofstream doesn't support UTF8)
2015-09-08 15:45:33 +01:00
6ade16b38d Workaround to allow loading large sessions.
During session-load, ardour calls Route::SoloControllable::set_value() 
which calls Session::set_solo()  which in turn sends a session-rt event.

Along with other rt-events (locations,..) the current solo logic limits
Ardour to only load sessions with about >= 200 tracks.

now bumped to a few thousand tracks.. until a proper solution comes along.
2015-09-06 22:36:09 +02:00
2309bb2a7f Don't keep gtk-file-chooser around.
This fixes some odd-crashes in the gtk main-thread after loading a new
session in gtk_file_system_model_sort().
2015-09-06 18:15:13 +02:00
1c9bb7de66 display session create/open failure errors. 2015-09-05 15:45:59 +02:00
041b31d7c6 fix locate to wallclock fix for PM (>= 2^31 samples) 2015-08-15 00:15:55 +02:00
a9163e9208 save-as: default to current session name.
this allows to easily add suffixes or otherwise tweak
the current session-name.
2015-08-14 02:32:08 +02:00
8132a31606 don't resize plugin-scan-report window, use sensitivity. 2015-08-03 15:54:55 +02:00
a7508a9cf0 When printing an XML related error, guard against NULL pointers getting passed to our error stream 2015-07-23 17:55:14 +01:00
775a400007 amend a3c21ae, video-server localhost -> 127.0.0.1 2015-07-22 12:45:24 +02:00
edce75973c offer to scan for plugins at first start. 2015-07-16 21:11:22 +02:00
be14d600c9 windows announcements file name 2015-07-11 23:39:22 +02:00
c3edce9a26 if a session cannot be loaded, dump the error stack to stderr 2015-06-29 16:28:04 -04:00
b822a77193 handle libXML errors via our own error handling methods 2015-06-29 16:27:49 -04:00
5c8e239f95 Revert "start work on auto return target dropdown rather than button"
This reverts commit d1cbb3fb0e36b068dbf516d21891c998266f22a2.
2015-06-29 14:18:16 -04:00
b531c878b0 Revert "properly track, update, maintain and set auto return state"
This reverts commit 07d0539526239d895f22123d88411c0d4ee773a4.
2015-06-29 14:18:16 -04:00
745a235b9d properly track, update, maintain and set auto return state
Conflicts:
	gtk2_ardour/ardour_ui_options.cc
2015-06-29 14:18:13 -04:00
eb791b7302 start work on auto return target dropdown rather than button
Conflicts:
	gtk2_ardour/ardour_ui.cc
2015-06-29 14:18:13 -04:00
YPozdnyakov
4465fb62f3 [Summary]: add keybindings Cmd-h (hide application) for mac
Conflicts:
	gtk2_ardour/ardour_ui.cc
	gtk2_ardour/ardour_ui.h
	gtk2_ardour/ardour_ui_ed.cc
2015-06-29 14:16:43 -04:00
db2fc7e6c7 initialize uninitialized var - possible fix for #6400 2015-06-29 20:03:36 +02:00
59dc0881fb remove left-over debugging code 2015-06-10 22:04:20 -04:00
9edd8d4b3b no Save-As progress dialog if we're not copying media 2015-06-10 18:48:12 -04:00
173b007779 rearrange and redesign UIConfiguration/ARDOUR_UI APIs to allow correct initialization.
We need to be able to set an environment variable *before* gtk_init() is called, but also to
load the color theme right after gtk_init() and before the rest of the GUI is created.
2015-05-28 12:46:43 -04:00
4c92de0159 extend save-as dialog to allow crude but functional save-as-to-empty-session 2015-05-07 22:36:32 -04:00
9e489c20da further preparations for NSM (#6265) 2015-05-04 19:08:48 +02:00
fb3d1a6f24 x-run counter reset & typo 2015-04-29 15:47:51 +02:00
6e335ca5d9 add xrun counter to status-bar (currently no reset) 2015-04-29 03:10:27 +02:00
c7a766866e prefer initialization to assignment for ARDOUR_UI 2015-04-22 16:09:08 -04:00
e47a22a118 make save-as dialog be persistent, to retain settings across save-as 2015-04-22 16:09:08 -04:00
8d85afd294 add central API to calculate UI scaling 2015-04-22 21:40:43 +02:00
eafb66d001 update some calls to use new get_preferred_edit_position; needs testing 2015-04-21 10:22:28 -05:00
91fac4c96d merge fix for tempo branch 2015-04-21 08:35:20 -05:00
ab4b4934b9 Merge branch 'master' into saveas 2015-04-21 00:19:29 -04:00
67411281ad use save as dialog in ArdourUI 2015-04-20 17:49:41 -04:00
a5c6919e9a towards fixing #6265 2015-04-20 21:39:25 +02:00
ced4378d09 Merge branch 'master' into saveas
Conflicts:
	gtk2_ardour/ardour.menus.in
	libs/ardour/session_state.cc
2015-04-20 15:10:41 -04:00
d45620d636 now that there is only 1 effective selection, adjust add-new-track-or-bus option for after/before selection 2015-04-13 22:24:10 -04:00
2fb0a078d9 cleanup, tweak, reorganize gone-silent dialog 2015-04-05 15:13:05 -04:00
c2deeaa96e show dialog when audioengine becomes silent 2015-04-05 14:02:47 -04:00
f1147a30a7 fix hard-coded version in config copy dialog; use yes/no buttons, and default to yes 2015-04-03 11:35:37 -04:00
4a44f90218 remove hard-coded program name 2015-04-02 21:40:40 -04:00
f3b9816bb6 wording tweak.
Sorry translators.
2015-04-02 19:13:38 -04:00
Valeriy Kamyshniy
21193c6fca [Summary] Adding option to avoid sorting the routs in Session::foreach method. Now ARDOUR_UI::every_second do not spend time for unnecessary sorting when calling update_disk_space().
[Reviewed] Paul Davis
[Required review] YPozdnyakov, GZharun
2015-04-02 16:32:41 -04:00
nick_m
35f69656e8 Window focus handling fixes.
Many windows were not getting key events.
Use magic focus infrastructure (built for widgets) to deliver key events
via window focus in/out.
2015-04-02 02:41:49 +11:00
fa57422ee2 remove linux specific menu reference (sorry translators) 2015-03-31 04:16:24 +02:00
4188fed0ee don’t apply selection to new sessions
<Selection> should not be saved in
global preferences, but there is no single point
for catching that.
2015-03-29 18:30:48 +02:00
53ac99a26a rework check for old configuration files
check early on (before announcement-check, bundle-
env and ARDOUR_UI ctor have a chance to create the
new config dir)
2015-03-23 18:31:55 +01:00
ec86ca2a4d replace LinkButton
make link work on OSX and Windows:
Gtk-WARNING **: Unable to show ‘…’: Operation not supported
2015-03-23 00:23:06 +01:00
bf43019eed change the error-log button to toggle the log window 2015-03-17 02:05:02 +01:00
c3d76155a9 fix typo 2015-03-16 17:07:26 -05:00
3a1071e5e9 use tri-state text-less LED for error-log button. 2015-03-16 19:04:36 +01:00
d57546dea2 add a warning when using a free/demo version 2015-03-16 13:03:33 -05:00
nick_m
135e865302 Add route dialog order hint changes.
Add an option to insert new routes at the top of the list ("First").
Reorder/rename the entries in the dialog.
Session's _order_hint is now the signed int it always wanted to be.
2015-03-16 04:01:30 +11:00
0544a4039b note to self. 2015-03-14 22:59:07 +01:00
83babb8a52 automatic error log window popup be gone. 2015-03-14 18:28:36 +01:00
nick_m
7d188c8a1e Remove the use of Window::set_keep_above() throughout startup.
This has been tested, but needs testing on more platforms (check for
obscured windows/dialogs.
Also use WIN_POS_CENTER in the "ask about loading session" dialog.
2015-03-15 03:06:39 +11:00
b58c1df07d check for old configuration files and copy if user requests it.
A restart is required. There is a circular dependency between the config files and the GUI, and this restart breaks it
2015-03-12 17:45:42 -05:00
nick_m
c9d10158f6 Metadata windows are no longer transient windows.
Comment out input and output IOSelectorWindows being set to KEEP_ABOVE
in the route ui (just in case there is a good reason for it).
2015-03-12 04:06:20 +11:00
nick_m
73d2d44652 Add route dialog is never a transient window.
Fixes a hack where it's transient parent was used to give an order hint
(for the order key of any new tracks).
This commit adds a new combobox "insert_at" to let the user tell us
where they want new tracks to go.
2015-03-12 03:46:11 +11:00
2d20bcab4a dramatically reduce ShuttleControl CPU usage 2015-03-10 10:53:56 +01:00
760e00b028 Remove useless parameters from MainClock constructor
Remove (always false) duration & is_transient and (always true) editable,
with_info & follows_playhead parameters from MainClock constructor, and just
pass the requisite true & false values along to the AudioClock constructor
instead.
2015-03-09 19:17:52 +00:00
59f12bd31a fix ‘pure virtual’ crash at exit.
Finally tracked down.
AudioEngine::instance()->Halted.connect_same_thread() .. call_slot().
Since the calling thread has (eg JACK) has no event loop: crash

__cxa_pure_virtual + 18
PBD::EventLoop::invalidate_request(void*) + 61 (event_loop.cc:71)
sigc::trackable::notify_callbacks() + 63
BaseUI::~BaseUI() + 173 (base_ui.cc:64)
AbstractUI<Gtkmm2ext::UIRequest>::~AbstractUI() + 137 (abstract_ui.h:59)
Gtkmm2ext::UI::~UI() + 279 (gtk_ui.cc:131)
ARDOUR_UI::~ARDOUR_UI() + 3556
ARDOUR_UI::~ARDOUR_UI() + 21
ARDOUR_UI::~ARDOUR_UI() + 25
main + 2396  

at event_loop.cc:71
    Glib::Threads::Mutex::Lock lm (ir->event_loop->slot_invalidation_mutex());
print *ir->event_loop
    (PBD::EventLoop) $1 = {}

see  http://pastebin.com/zvWJbqwf for a call_slot call on OSX/Coreaudio.
2015-03-09 03:04:27 +01:00
c90400364a prepare saving video-export settings.
* migrate dialog from Editor to UI.
* make it a WM proxied window
* prepare applying state after construction..
2015-02-28 02:36:58 +01:00
24e8e865a6 Ignore playhead when finding delta from edit position for main clocks
Pass 'ignore_playhead == true' to Editor::get_preferred_edit_position()
when calculating offset of the primary and secondary main clocks if 'delta
to edit cursor' is selected, so that if the edit point is playhead, the
selected marker (if any) or mouse position will be used as the delta origin
instead.
2015-02-12 18:06:16 +00:00
1973243a98 Separate out creation of xrun markers from Editor::mouse_add_new_marker()
Remove the is_xrun parameter from Editor::mouse_add_new_marker(), and just
create the marker directly in ARDOUR_UI::create_xrun_marker(), so that xrun
markers don't become automatically selected when they appear.
2015-02-12 18:06:16 +00:00
bc7b5844a9 fix printf format-security warning.
warning: format string is not a string literal (potentially insecure) [-Wformat-security]
2015-01-27 14:04:19 +01:00
b9464fc4db remove unnecessary commented-out line.
Session is marked as in-deletion during deletion itself
2015-01-26 11:58:43 -05:00
208a2a1926 rename ARDOUR_UI::idle_load() to ARDOUR_UI::load_from_application_api() to correctly indicate function 2015-01-26 10:39:14 -05:00
78ec211733 fix incorrect logic when loading session via NextStep document API 2015-01-25 12:53:48 -05:00
0b5ceaca4e add handler for, and connect to, Session::SaveSessionRequested 2015-01-24 19:17:13 -05:00
49047e4dc9 consistent display of period-size. 2015-01-17 22:42:20 +01:00
4a72145d1d unfinished save-as dialog, to serve as example/guide/framework for full implementation 2015-01-14 17:54:26 -05:00
08d56360d6 first working version of save-as 2015-01-12 12:57:05 -05:00
2866514c09 add initial code/stubs, actions, menu items for save as 2015-01-11 12:15:46 -05:00
56d48a927a Alow tabbing between fields in metadata editor. 2015-01-07 20:56:39 -05:00
59a15a1f57 Fix Session file filter so session files are displayed in file browser
This small mistake slipped in with 78d0b2
2015-01-06 14:02:31 +07:00
78d0b2eebb un-hardcode "*.ardour" file filters 2015-01-05 18:36:43 +01:00
02a7bbce76 Fix for Clock updates 2015-01-02 22:07:50 +07:00
b5c9a92a58 Move Timers/Timeouts from ARDOUR_UI into functions in timers.h and use PBD::Timers 2015-01-01 19:04:14 +07:00
bec521c6a7 proper default setup and fallbacks for video on windows 2014-12-24 01:36:46 +01:00
1f0fbea628 reorder members and constructors to ensure null pointers for ARDOUR_UI::{editor,mixer} 2014-12-22 19:48:30 -05:00
64fa63212f move all (G)UI related configuration parameters into UIConfiguration, not RCConfiguration 2014-12-22 13:39:46 -05:00
0d771999ac expand help menu with various useful entries.
From Georg Kraus. Addresses #5783, and was github pull request #67. Manually applied via .diff because of merge mechanics issues
2014-12-18 11:09:10 -05:00
f6e88ead01 move theme manager into preferences window 2014-12-15 12:32:41 -05:00
1e0c1751a5 more DEBUG::Butler output, formatting corrections, and a warning on cerr if capture/playback buffers are too full/empty 2014-12-09 16:36:52 -05:00
9ac551abab another metric ton of color work 2014-12-08 22:02:38 -05:00
8f4ab08e20 revert UIConfiguration back to a normal member of ARDOUR_UI 2014-12-07 13:12:48 -05:00
e9768e934f move creation of UIConfiguration object to precede creation of ArdourUI.
This is pretty kludgy but we need the UIConfiguration object (or any color management object) to be the first to connect to
the ColorsChanged signal.

Might be better to make the UIConfiguration object a delegate for the ThemeManager.
2014-11-26 18:22:22 +02:00
fcd7ec92d4 With printf() / snprintf() etc "%f" actually requests a double, not a float
Let's pass the correct type, since we can't rely on these functions to do intelligent conversion
2014-11-26 09:57:14 +00:00
ad739cd018 add some assert() messages.
as hints clang static analyzer "Called C++ object pointer is null"
2014-11-17 03:49:19 +01:00
47f4005dbc fix logic (and possible segfault if !editor) 2014-11-17 03:28:33 +01:00
533b545295 add popup message and error log for AU crash reports 2014-11-12 13:35:15 +01:00
c0a28fca09 add win IRC channel 2014-10-28 02:40:04 +01:00
baea04713f combine short periodic timeout functions for windows.
Fixes excessive CPU usage (spinlock instead of sleep/WaitForSingleObject)

MS Windows has a scheduler time-slice of 15ms.
Ardour has two fast timeout functions: The FPS timeout (20-60Hz, clock
video-monitor) and a fast-screen-update (25Hz, meters etc).
They are loosely coupled (async) and scheduled from the main application
thread (gtk main).

Since they're async, gtk schedules them as needed. Even though the actual
period of the separate timeouts is larger. The effective period between
all timeout callbacks is <15ms and the main application thread never idles.
2014-10-25 19:21:15 +02:00
730e09ce65 another round of compiler warning fixes 2014-10-23 05:31:40 +02:00