Commit graph

25423 commits

Author SHA1 Message Date
Julien "_FrnchFrgg_" RIVAUD
bfb62d2cb3 Fix headers of .po files so they conform to the template 2017-09-02 16:42:08 +02:00
Robin Gareus
511216a587 Disable ArdourHTTP debug 2017-09-01 00:36:19 +02:00
Robin Gareus
841bbca773 print debugging for macOS/curl issues 2017-08-31 20:45:51 +02:00
Robin Gareus
db7ae81f07 Call curl_global_init() exactly only once (2/2) 2017-08-31 20:08:54 +02:00
Robin Gareus
e544934780 Call curl_global_init() exactly only once (1/2) 2017-08-31 20:08:47 +02:00
Robin Gareus
720292696a Fix ArdourHTTP error reporting 2017-08-31 19:21:43 +02:00
Robin Gareus
e10c162efb Fix C++11'ism 2017-08-30 23:10:26 +02:00
Julien "_FrnchFrgg_" RIVAUD
7033b34a65 Ensure a plugin generic UI doesn't exceed screen width
Do that by wrapping the packed controls box in a ScrolledWindow and
making it request the same width than the box but capped to 90% of the
screen width.

Also, when the box width exceeds the maximum value, try again with
one-letter automation buttons in case the reduced width avoids showing a
scroll bar.
2017-08-30 20:11:17 +02:00
Julien "_FrnchFrgg_" RIVAUD
03f77792dd Remove over-protection
The queued resize will only happen trigger a size-request when the
widget is realized, and on_size_request() calls ensure_layout().

Moreover, this over protection meant that sometimes a resize wasn't
noticed by the button containers.
2017-08-30 20:11:17 +02:00
Robin Gareus
f52f23b12d Fix scope in 4c077010a 2017-08-30 18:01:17 +02:00
Robin Gareus
d11d8b8a96 Catch new exception in other places. 2017-08-30 17:53:31 +02:00
Robin Gareus
3d9a0a1f98 Don't use API definition as namespace & fix whitespace 2017-08-30 17:53:08 +02:00
Robin Gareus
4c077010ad Don't create empty description nodes.
Other places e.g. Route::save_as_template(), Session::save_template()
don't to that either.
2017-08-30 17:45:34 +02:00
Ben Loftis
1f6c54a2f0 Gracefully handle templates that lack contents in their description or created_with node. 2017-08-30 10:23:34 -05:00
Ben Loftis
7d88091229 Avoid assert() when loading xml: Throw an XMLerror if attribute_value fails. 2017-08-30 10:23:34 -05:00
Julien "_FrnchFrgg_" RIVAUD
86222360a3 Change the autostate button width of all controls 2017-08-30 16:09:19 +02:00
John Emmas
35fcb622bc Accommodate recently removed source(s) in our MSVC project (portaudio_audiobackend) 2017-08-30 09:53:33 +01:00
Robin Gareus
467c801ce8 Abstract definition of rt-scheduler policy
pthread-w32 does not support pthread_setschedparam() with
SCHED_FIFO and bails out. While pthread_create() simply ignores the policy
and sets the priority regadless.

This only affects ctrl-surface event-loops & AutomationWatch on Windows.
2017-08-29 20:35:36 +02:00
Robin Gareus
df659e91f1 Consolidate _realtime_pthread_create() into libpbd. 2017-08-29 17:25:23 +02:00
Robin Gareus
6ab00534c0 Set Automationwatch thread priority (needs to be higher than GUI)
This fixes an issue with sparse automation touch/write when the CPU is
busy (stationary playhead, waveform rendering, or just high DSP load)
2017-08-29 17:25:23 +02:00
Robin Gareus
229c9584bf Add a PBD API to set pthread priority 2017-08-29 17:25:23 +02:00
Julien "_FrnchFrgg_" RIVAUD
f72c819035 Use small Astate buttons for plugins with many controls
The generic plugin UI uses spelled-out automation state buttons for
controls, which is good for readability and usability, but some plugins
have a very big amount of controls which means we need a lot of columns.

For those plugins, prefer one-letter automation states, to save width.
2017-08-29 12:06:33 +02:00
Julien "_FrnchFrgg_" RIVAUD
1b561446b8 GenericUI: rationalize Autostate button sizing
When there was a knobtable in the ControlUI, the behavior of the
automation state button changed by displaying one-char state as in track
headers. Factor out that logic to depend on a new boolean property of
the ControlUI, which should be set with set_short_autostate().

This regroups sizing logic in a single place and avoids future
discrepancies between the actual caption and the size allocated for it,
when several use-cases for smaller buttons are added.
2017-08-29 12:06:33 +02:00
Julien "_FrnchFrgg_" RIVAUD
d4c211ef6f Compare bundle ports per-type
This addresses the XXX comment in Bundle::has_same_ports()
2017-08-29 10:53:41 +02:00
Julien "_FrnchFrgg_" RIVAUD
41c5913b91 Make Bundle::disconnect() more robust
Instead of asserting or crashing if the number of channels of both
bundles don't match, just try to disconnect as much as possible.
2017-08-29 10:53:41 +02:00
Julien "_FrnchFrgg_" RIVAUD
6d0b009995 Refactor update_io_button
Check, in order, if the io is connected to another Ardour route, then a
user bundle, then some physical ports with simple configuration, and
lastly another client.

Before, Routes were considered connected as long as every io port
connected to that route, even if the channel order was mixed or worse if
all ports were connected to the same channel. Now Routes and Bundles are
considered connected if they are exclusively connected, in the right
order, to all their ports with matching datatype.
2017-08-28 19:43:28 +02:00
Julien "_FrnchFrgg_" RIVAUD
50c6a90d24 Make Bundle::connected_to() optionally check for exclusivity
If the new optional argument is true, then the first bundle will also
check if it has other connections than to the given bundle.
2017-08-28 17:54:32 +02:00
Julien "_FrnchFrgg_" RIVAUD
6039b44c0a Make Bundle::connected_to() able to check only a single DataType
Also use the same iteration logic than in Bundle::connect to avoid
mismatched port types.
2017-08-28 14:10:22 +02:00
Len Ovens
e07bb07899 OSC: Change jog mode should not stop transport
unless started by scrub or shuttle.
2017-08-27 14:15:34 -07:00
Ben Loftis
7d553eea80 Editor zoom: add 2hour and 24hour zoom limits. 2017-08-27 10:25:09 -05:00
Ben Loftis
7e300c93f2 Editor zooming: right-click on summary -> context menu -> reset to session extents. 2017-08-26 23:32:02 -05:00
Ben Loftis
631629b8e7 Editor zoom: add zoom_to_extents() 2017-08-26 23:06:29 -05:00
Ben Loftis
1c145ccfc3 Editor zooming: Config preference to define how much zooming will be easily allowed beyond the session_ui_extents() 2017-08-26 22:44:58 -05:00
Ben Loftis
49765f8897 Editor zooming:
Add config setting for playhead-scroll-speed.
Default to 100% for now, but for new users we might later default it to something slower.
If you want to scroll quickly, it is preferred to zoom out first, then scroll.
2017-08-26 22:44:58 -05:00
Ben Loftis
71d9ea7270 Editor zooming: Tweak the Summary to stop at right edge, use session_gui_extents(). 2017-08-26 22:44:58 -05:00
Ben Loftis
901432f030 Editor zooming: refactor zoom-limiting code into editor::session_gui_extents. 2017-08-26 22:44:58 -05:00
Ben Loftis
9b87279eca Editor zooming:
New function session_gui_extents() reports the extents of all playlists.
  ToDo: include region playlists, when they become available.
also:  slow-down autoscroll (ToDo:  make a config variable for this)
2017-08-26 22:44:58 -05:00
Ben Loftis
e9f4c5fc1c Editor zooming: Initialize leftmost_frame, for sessions that start at high timecodes. 2017-08-26 22:44:58 -05:00
Robin Gareus
d190ad7904 mp4chaps Lua script: don't clutter global environment 2017-08-26 15:42:14 +02:00
Robin Gareus
8c556fcbdc Fix too restrictive Lua sandbox
Don't limit the environment when evaluating bytecode (factory function).
2017-08-26 15:42:14 +02:00
John Emmas
b25b99216c Fix a compiler problem when building 'gtk2_ardour/template_dialog.cc' with MSVC
When setting up the 'TemplatesImported' signal, these 2 calls appear in the c'tor for class TemplateDialog:-

	boost::bind (&RouteTemplateManager::init, route_tm)
	boost::bind (&SessionTemplateManager::init, session_tm)

However - '&RouteTemplateManager::init' and '&SessionTemplateManager::init' are in fact the address of the same function. This seems to be causing a problem, either for boost::bind, or MSVC (or both).

In earlier builds they were 2 separate functions. So let's put them back that way (since the current code actually crashes the compiler!!)
2017-08-26 13:07:45 +01:00
Julien "_FrnchFrgg_" RIVAUD
5aeb5f0c7d Remove unneeded test
The for loop will not be executed if |port_connections| is empty, no
need to check beforehand.
2017-08-25 21:35:18 +02:00
Ben Loftis
3596bdff14 Secondary clock visibility is a global pref, not a per-session setting. 2017-08-25 14:37:51 -05:00
Len Ovens
dbab25f537 OSC: same fix for /select/* 2017-08-25 10:22:42 -07:00
Len Ovens
d7fcdbfe1d OSC: account for user sending the wrong number of paramters gracefully 2017-08-25 09:45:06 -07:00
Ben Loftis
6e4c9490d4 Some fixes for ruler-visibility. Secondary-clock coming soon. 2017-08-25 09:19:17 -05:00
Ben Loftis
d3bdad4927 Templates: attempt to set ruler and clock visibility. Not working. 2017-08-25 09:01:57 -05:00
Ben Loftis
e7473c4c52 Track Templates: tweaks to MIDI Bus description text. 2017-08-24 21:21:38 -05:00
Robin Gareus
0e9dab6aab Allow to send immediate PC messages without closing the dialog.
Perhaps every change should trigger a PC (without "Apply") button?!
2017-08-24 23:41:21 +02:00
Robin Gareus
18cf003aa9 Fix typo in dea8ee7f 2017-08-24 16:20:51 +02:00