13
0
Commit Graph

25699 Commits

Author SHA1 Message Date
7872e4033f LV2/midnam tweaks - fix race conditions
* Emit signal once midnam was actually updated
* only re-read midnam if was it changed. This allows idempotent calls to
  read_midnam() - from the same thread.

At session-load a synth-plugin may load a soundfont in the background
and emit midnam_update() after the synth was initialized but before the
GUI thread connects to the signal. By making the call idempotent the
GUI can call read_midnam() after connecting to the signal to catch up.
2017-09-09 03:08:46 +02:00
b43fd4ad0e GenericPluginUI: send MIDI to plugin if it's not on a MIDI track 2017-09-09 03:08:46 +02:00
2ca3009143 Allow to send MIDI data directly to a plugin 2017-09-09 03:08:46 +02:00
483ad807ce fix crashing thinko in push2 code 2017-09-08 18:36:26 -04:00
f095cb75fa Fixup key-release events for plugin-uis 2017-09-08 23:35:00 +02:00
746665e89c Add a PianoKeyboard to GenericUI (on a MIDI track) 2017-09-08 23:35:00 +02:00
64be124fe0 PluginUI: only show "Reset" & Automation buttons if there are any controls 2017-09-08 23:35:00 +02:00
aa11cb96b3 Experimental GenericPluginUI MIDI patch select. 2017-09-08 23:35:00 +02:00
c3e8cdb418 PatchChange Dialog: update title & refresh midnam on change 2017-09-08 23:35:00 +02:00
b7227415ad a-fluidsynth mark session as modified if .sf2 changes 2017-09-08 23:35:00 +02:00
ba7bbd1d51 a-fluidsynth: implement LV2_BANKPATCH__notify 2017-09-08 23:35:00 +02:00
e452ba0fe1 Add LV2 extension to notify host about midi-bank/pgm state. 2017-09-08 23:35:00 +02:00
8bc2bf0155 Non-numeric Properties are not automatable
Fixes a crash, when the Generic-UI tries to access the AutomationList
of LV2 URID or String Properties.
2017-09-08 23:35:00 +02:00
4459761f4d Patch select: button theme-ing 2017-09-08 11:15:02 -05:00
1166538433 Patch select: apply conventions for context menus. 2017-09-08 11:09:26 -05:00
a3fd0bc34b Accommodate newly introduced source(s) in our MSVC project (gtk2_ardour) 2017-09-08 10:18:25 +01:00
ee88a6e2a4 Various Patch Select Dialog tweaks
* send PGM change when bank changes
* only set Program button text as needed
* prperly escape mnemonics
2017-09-08 04:58:25 +02:00
e15d9202a5 Emit Changed() signal when MIDI bank/pgm changes 2017-09-08 04:35:06 +02:00
32bec8c8b1 Add Pianokeyboard + Velocity Control to PC Dialog 2017-09-08 04:32:43 +02:00
a34764ec9f Patch Change Audition 2017-09-08 02:20:53 +02:00
6376730093 Rework Patch-Change/Select Dialog 2017-09-08 02:19:31 +02:00
187748874c Fix a -Wsign-compare 2017-09-07 06:08:31 +02:00
6654c53760 Fix bumping .mid file name (snapshots & playlist copy)
When forking regions, copying playlists or saving snapshots we do not
have a reference to the track and cannot use the track's name as basis
for the new filename like Editor::fork_region() does.
A cloned midi region's name is based on the original region name.

This prevents endless addition "name-1-1-1-1-1-1-1-1.mid", adding
to the region's basename.
2017-09-07 06:05:26 +02:00
40edbb9519 Remove "How to Apply These Terms" part from the license.
This part of the complete GPL text is aimed at developers not end-users.
2017-09-07 05:59:53 +02:00
8b5553c977 Deploy dynamically loaded NSS libs with OSX bundles 2017-09-07 00:45:29 +02:00
5d0b00589c Fix the Unicode workaround in wscript
The previous code was supposed to ensure VERSION and PROGRAM_VERSION
were *not* Unicode objects since though they are the correct type to
represent strings in Python 2, too many libraries have strange issues
dealing with them, and UnicodeErrors can creep in with implicit
conversions from/to Unicode objects.

But in fact it did exactly the contrary since str.decode() always
returns Unicode objects, whose type corresponds to the str class in
Python 3. Fix it so that in both Python 2 and 3 the constants are
eventually instances of str.
2017-09-03 20:39:10 +02:00
bfb62d2cb3 Fix headers of .po files so they conform to the template 2017-09-02 16:42:08 +02:00
511216a587 Disable ArdourHTTP debug 2017-09-01 00:36:19 +02:00
841bbca773 print debugging for macOS/curl issues 2017-08-31 20:45:51 +02:00
db7ae81f07 Call curl_global_init() exactly only once (2/2) 2017-08-31 20:08:54 +02:00
e544934780 Call curl_global_init() exactly only once (1/2) 2017-08-31 20:08:47 +02:00
720292696a Fix ArdourHTTP error reporting 2017-08-31 19:21:43 +02:00
e10c162efb Fix C++11'ism 2017-08-30 23:10:26 +02:00
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
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
f52f23b12d Fix scope in 4c077010a 2017-08-30 18:01:17 +02:00
d11d8b8a96 Catch new exception in other places. 2017-08-30 17:53:31 +02:00
3d9a0a1f98 Don't use API definition as namespace & fix whitespace 2017-08-30 17:53:08 +02:00
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
1f6c54a2f0 Gracefully handle templates that lack contents in their description or created_with node. 2017-08-30 10:23:34 -05:00
7d88091229 Avoid assert() when loading xml: Throw an XMLerror if attribute_value fails. 2017-08-30 10:23:34 -05:00
86222360a3 Change the autostate button width of all controls 2017-08-30 16:09:19 +02:00
35fcb622bc Accommodate recently removed source(s) in our MSVC project (portaudio_audiobackend) 2017-08-30 09:53:33 +01:00
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
df659e91f1 Consolidate _realtime_pthread_create() into libpbd. 2017-08-29 17:25:23 +02:00
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
229c9584bf Add a PBD API to set pthread priority 2017-08-29 17:25:23 +02:00
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
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
d4c211ef6f Compare bundle ports per-type
This addresses the XXX comment in Bundle::has_same_ports()
2017-08-29 10:53:41 +02:00