13
0
Commit Graph

607 Commits

Author SHA1 Message Date
ce9bdd1db0 Generalise heuristic for user-intended main type of a route's IO
The heuristic currently used to display port connections in a
compact user-friendly way only considers Audio and MIDI data types.

Replace it by a better heuristic that does essentially the same thing
with all DataTypes, assuming they are ordered by likeliness of usage.
Currently the result is the same since there are only two DataTypes.
2017-08-23 22:59:38 +02:00
f90a70e774 Remove never changing and/or unused arguments 2017-08-23 22:10:51 +02:00
7009ff0300 Update Selection API to include all Stripables 2017-08-06 22:17:58 +02:00
4ff6ed0f22 Add touch to trim-control 2017-07-24 01:59:22 +02:00
eb1e423b75 Remove <gtkmm.h> include from header files. 2017-07-17 21:06:04 +02:00
f9e5e4360e Move more Gtkmm2ext widgets into libwidget 2017-07-17 21:06:04 +02:00
b5e9451bc7 Remove unused sources & includes 2017-07-17 21:06:04 +02:00
f6e182b937 Move Gtkmm2ext widgets into libwidget 2017-07-17 21:06:04 +02:00
5c92613698 Separate Ardour UI widgets into dedicated library 2017-07-17 21:06:04 +02:00
Thomas Brand
63ea7b6516 NO-OP whitespace (updated GH PR #357) 2017-07-01 19:28:26 +02:00
e74d1f1048 Use quotes for bundled library includes 2017-06-29 00:22:45 +02:00
c3c4efaa09 Use mnemonic-save API for menu-element texts 2017-06-29 00:22:42 +02:00
d55cb9ba94 Update GUI to follow Slavable API change 2017-06-22 22:04:10 +02:00
7c94499aec Remove Cruft -- AutomationStyle never did anything.
Trim automation is planned via SlavableAC as normal AutomationMode.
Some of this code have a revival (a special "Trim+Preview" state
before merging Automation but that has to be more general than Pan & Gain.
2017-06-21 13:16:27 +02:00
99ee7d7b61 Use PBD::to_string from pbd/string_convert.h in MixerStrip class
The numeric formatting is equivalent. Even though this string is being used in
the UI as a label I think this is another case where we don't want a localized
numeric string, which would only be relevant with a track count >=1000.
2017-04-19 09:37:01 +10:00
634207dd6a Use AxisView::get/set_gui_property API in MixerStrip class 2017-04-19 09:36:58 +10:00
962e7a214a Revert "consistent use of context-menu popups"
This reverts commit b3722f7063.

In some cases ardour shows context-menu on right-mouse-button
release. In this case selecting a menu-entry should happen
with the left-mouse button (or any button?!)

Using ev->button is only correct if the menu is temporary and only
visible while the button is held, button release then activates the
menu-item.

This needs further work, in some cases allowing any button (0) to work
makes sense and overall consistency needs to be improved.
Different places use different strategies for context-menus which
don't always match the button used in the event-handler.

This is a hotfix (to make TAV context menus work again with left-click)
2017-03-24 14:48:46 +01:00
b3722f7063 consistent use of context-menu popups 2017-03-16 02:36:48 +01:00
c93bef0ab6 Consolidate code 2017-03-08 22:17:16 +01:00
6df23c4e65 consolidate Ardour+Mixbus code, fix duplicate SeparatorElem in MB. 2017-02-20 16:35:55 +01:00
edd1061c3d save/restore VCA master state inside slaves, so that a reloaded session ends up back in the same state 2017-02-06 16:49:08 +01:00
b759bae0cd Right-click on a VCA to assign it to the selected channels. 2017-02-02 11:02:10 -06:00
Daniel Sheeler
33c74357f0 Meter point toggle button now uses a popup menu instead of toggling 2017-01-24 13:38:23 +01:00
86e46ae41d Better fix for widgets that do not apply to master bus: leave them in place, but insensitive, to retain layout 2017-01-09 19:41:31 -06:00
69d043766f Revert "Remove the Solo+Iso buttons in the Master bus."
This reverts commit 7f280e2bed.
2017-01-09 19:07:36 -06:00
7f280e2bed Remove the Solo+Iso buttons in the Master bus. 2017-01-09 08:17:38 -06:00
36c34330b2 Vertically line up mixer strip (backport from Mixbus) 2016-12-21 03:53:45 +01:00
afa6720288 UI tweak for the spacer at the bottom of the master bus. 2016-12-12 12:16:43 -06:00
857c0d4a5e Refine instrument fan-out:
* prefix (rather than suffix) portgroup-name
* check if group already exists
* disconnect targets (when autoconnect preference is enabled)
* expose tracks/busses option
2016-11-11 10:48:33 +01:00
33942e6d52 Implement instrument fan-out options (group, track/bus) 2016-11-10 21:39:20 +01:00
b116a68a5c C++ implementation of fan_out_instrument.lua 2016-11-10 04:54:59 +01:00
b302f70265 Skip pin-management for MB channelstrip plugins 2016-09-15 15:32:45 +02:00
1d686ac978 Make name_button behave more like a Gtk::MenuToolButton
Make it popup its menu in attached mode, and on mouse down, but keep the
context menu behavior on right-click.
2016-08-18 11:52:22 +02:00
3ab6ff8be7 Make in/out buttons behave more like Gtk::MenuToolButton
Make them popup their menu as if attached rather than as a context menu.
2016-08-18 11:50:38 +02:00
b48e803cf6 Make the group button in MixerStrip behave like a dropdown
Since it mostly is a multiple-choice menu.
2016-08-17 01:46:11 +02:00
4093cf6b90 Make the trim knob on busses show only if there is audio
The trim knob has been designed to operate only on audio channels. If
the bus has none, hide the knob that would otherwise have no effect at
all.

Factor the trim control show/hide code out of MixerStrip::set_route(),
and also call that code in response to I/O changes in the route.
2016-07-24 13:51:11 +02:00
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
9389ee1e96 Better heuristics for guessing the primary type of an input or output
In order to choose which port name to display (if any) in the button,
MixerStrip::update_io_button() first chose a primary type for the input
or output. It was AUDIO in all cases, except if the route was a
MidiTrack where the primary type was MIDI.

In the latter case, it enabled the following code of update_io_button()
to show the MIDI sources feeding the MidiTrack rather than showing an
unhelpful dash.

But this simple heuristic has several shortcommings:
 - Going further, tracks and busses will probably loose strong types so
   the approach is not future-proof;
 - It doesn't take midi busses into account, yet there is no reason for
   them to be handled differently than midi tracks;
 - It falls short when the midi track contains a synthesiser and is
   meant to output audio.

Improve the heuristics by choosing the data type as follows:
 A) If there are connected audio ports, consider audio as primary type.
 B) Else, if there are connected midi ports, consider midi as primary type.
 C) If there are audio ports, consider audio as primary type.
 D) Else, if there are midi ports, consider midi as primary type.

These new heuristics give the same results for audio tracks and busses
(whose audio inputs have not been removed), and the same result for the
input of midi tracks (again, provided the inputs have not been tampered
with). It improves the situation for inputs of midi busses, and output
of midi tracks and busses, especially when synthesisers are in use.
2016-07-09 21:08:16 +02:00
35b4cb91d2 update_io_button: store input() or output() in a variable
This avoids repeating "if (for_input)" checks.
2016-07-09 21:08:16 +02:00
da7d7f9502 many changes associated with rationalizing selection flow 2016-07-06 13:39:10 -04:00
e4ba62e4c4 show first word of comment on track's comment-button 2016-06-21 18:18:54 +02:00
b5a134d73a fix comment-button highlight 2016-06-20 00:59:21 +02:00
30fd6ed4de mark mixer strip name label (button) as having occasional text
Sometimes it shows a track number, sometimes not, but this should never affect its size request
2016-06-14 11:48:50 -04:00
b5387804a4 remove commented line 2016-06-14 11:48:08 -04:00
3888b244a6 mark mixer strip width and hide buttons as square 2016-06-14 11:47:53 -04:00
0678d0ada1 use new ControlSlaveUI object in mixer strip 2016-06-09 13:12:09 -04:00
01812f53c3 use, or mostly use PresentationInfo for selection status of Routes.
Needs extension to Surfaces, replacing GuiSelectionChanged signal concept
2016-06-05 20:50:57 -04:00
518f7f9892 RouteUI connects to Route's PropertyChange signal; derived types implement route_property_changed() 2016-06-05 16:33:02 -04:00
2161c5d507 use new RouteGroup property names 2016-06-05 16:33:01 -04:00
c31435b474 RouteUI is now also derived from SessionHandlePtr but NOT AxisView. Fix initialization.
Only "most derived" classes can initialize virtual base classes (SessionHandlePtr)
2016-06-05 16:33:01 -04:00
384d05dd35 change AxisView color API to be virtual and implement per-type variants 2016-06-05 16:33:01 -04:00
171b70927a make AxisView::marked_for_display() be virtual so we can use the a Stripable's PresentationInfo hidden() status 2016-06-05 16:33:01 -04:00
8818e1887a there is no explicit "Remote Control ID" control anymore - all done by ordering in the GUI 2016-06-02 19:19:22 -04:00
0d999ea4ec remove un-used name_hbox widget from TimeAxisView 2016-06-01 21:57:43 -04:00
22cbc69074 only show "Pin Connections..." in mixer-strip if there are plugins 2016-06-01 22:43:40 +02:00
f513878c8a MSVC itself defines a class called CheckMenuItem - so make sure we know to use the one from Gtk 2016-06-01 14:30:29 +01:00
4b11bb4d15 no-op; change comment 2016-05-31 15:30:44 -04:00
760beab7fa use Slavable API in GUI 2016-05-31 15:30:41 -04:00
653ae4acd6 universal change in the design of the way Route/Track controls are designed and used. The controls now own their own state, rather than proxy for state in their owners.
Massive changes all over the code to accomodate this. Many things are not finished. Consider this a backup safety commit
2016-05-31 15:30:40 -04:00
91f8c0be54 use new API for control slave/master relationships 2016-05-31 15:30:40 -04:00
b34f949518 follow session track-number policy in mixer strip, as is done in the editor 2016-05-31 15:30:40 -04:00
04e26fe7e6 move VCA assignment up to Route level 2016-05-31 15:30:39 -04:00
dc9f579a8b add GUI support for slaving VCAs to other VCAs 2016-05-31 15:30:39 -04:00
9339a7b997 add solo/mute controls to VCAMasterStrip 2016-05-31 15:30:39 -04:00
7f244ce14d use VCAUpdateStatus to keep VCA button current 2016-05-31 15:30:39 -04:00
3be9d6dccc remove debug output 2016-05-31 15:30:39 -04:00
8ce39c891b change sort ordering model in mixer and editor
This allows correct reordering of the mixer "track_model" even
when non-route elements are present.

This isn't really utilized in the Editor at present because we do
not show VCAs there at all, but it will become important in the
future when we represent VCA automation there
2016-05-31 15:30:39 -04:00
75b327964b tweak mixer VCA button appearance and prepare for live updates to VCA state 2016-05-31 15:30:39 -04:00
d47dc72595 single button for VCA assignment, plus unassign now works 2016-05-31 15:30:38 -04:00
acaaa98bd0 start shaping up VCA assign process 2016-05-31 15:30:38 -04:00
4d14ae4e23 mostly restore VCA state on session loading.
This does not restore VCA assignments
2016-05-31 15:30:38 -04:00
33e56e58d7 initial part of vca assignment via context menu 2016-05-31 15:30:38 -04:00
089549acb6 add 4 harrison-style vca assign buttons to the mixer strip 2016-05-31 15:30:38 -04:00
ac7df69b49 rec-safe GUI 2016-05-24 21:30:33 +02:00
6605b52c17 centralize rec-en sensitivity & prepare for rec-safe 2016-05-24 03:01:27 +02:00
cc0abf4ef5 add route-ui pin-manager 2016-05-10 20:54:11 +02:00
3dc322fa66 fix 8f14f422e0, port_prefix already includes colon 2016-04-17 16:52:38 +02:00
8f14f422e0 unhardcode "Program Name" string length 2016-04-17 14:01:57 +02:00
6f4ccfcd3b hide strict-i/o UI for Mixbus 2016-04-15 14:53:18 +02:00
d739d2fd64 hide add/remove output buttons on mixer-strip. 2016-04-14 20:04:58 +02:00
bff4972e5b add mixer strip context menu to en/disable strict-i/o 2016-03-28 18:25:34 +02:00
b77236d4b4 fixing leaking tooltip string
Manually created version of PR #211
2016-02-26 14:36:51 -05:00
6991a07902 remove all trace of SAE from source code.
This had become incoherent over time, and posed a development hazard and burden going forward
2016-02-22 15:31:24 -05:00
dd32c05cda GainMeter(Base) now has an explicit gain control given to it 2016-01-25 11:47:44 -05:00
9e5b7db89f first compiling, mostly working version of group controls changes 2016-01-22 11:58:31 -05:00
5a766dc24d indicate monitor-state 2016-01-08 14:22:02 +01:00
559649c338 use config value to avoid race on session-setup. 2016-01-08 11:34:28 +01:00
ca6ee56347 kunterbunte Monitor-Sektion
reduce color diversity and clean up color definitions of
the monitor section: mute, solo: use mixer-colors, prefix all MS-colors
with "monitor section"
2016-01-01 13:28:47 +01:00
7edd521afe unhardcode "ardour:" port-prefix 2015-12-21 18:54:34 +01:00
ffde3968ec allow to show/hide Monitor Section 2015-12-19 17:42:36 +01:00
André Nusser
7a846b7e6d Make capitalization consistent and other minor spelling corrections. 2015-12-01 00:39:35 +01:00
778e656bd7 update editor-mixer frozen state - fixes #6689 2015-11-21 19:47:36 +01:00
cf8b9464c5 tweak selection code for mixer strip Duplicate func 2015-11-17 17:34:33 -06:00
6f955aa0bd add Duplicate action to track and mixer context menus 2015-11-17 16:55:11 -06:00
696b89b71a rework 8b80fe0, use std::string, not char* 2015-10-15 11:24:15 +02:00
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
9f2aba1451 mixer-strip name context-menu cleanup
patch thanks to chaot4
2015-09-27 21:45:40 +02:00
c829c10a74 band-aid for Glib::operator<<
it seems that g_locale_from_utf8() (called by <<) is not thread safe,
at least not on OSX.

glib error-code 1, Invalid byte sequence in conversion input
-> throws Glib::Error.

possible fix for #6435, route-creation is interrupted via catch(...)
2015-09-19 19:00:43 +02:00
1d42ed077e Use ARDOUR_UI_UTILS::set_tooltip rather than via ARDOUR_UI::set_tip
This removes the direct dependence on ARDOUR_UI/Gtk_UI for setting
tooltips. Removes inclusion of ardour_ui.h from 16 files.
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
6cfceb8823 fix mixer-strip input button update 2015-08-23 19:50:04 +02:00
71595234bc indicate port-connections of non-track type
Previously a Midi-track with synth showed “-“ for the output
even if the audio output ports were connected. (only MIDI
connections are displayed on the button).
2015-07-02 10:03:21 +02:00
1d5c6104f5 replace old ArdourButton::Icon API with Gtkmm2ext. 2015-05-24 21:45:39 +02:00
db7d0c59b5 remove explicit VectorIcon Element 2015-05-24 20:28:24 +02:00
ff563d293e separate detent & zero-arc flags for knob 2015-04-25 16:59:33 +02:00
517211681e 0dBFS peak meter GUI 2015-04-25 06:46:56 +02:00
c43c3d3e08 more trim knob tweaks 2015-04-25 02:25:07 +02:00
50a0748c2b trim typo and details 2015-04-25 01:17:25 +02:00
e22d7c2e28 tweak trim-knob size (same height as midi-input) 2015-04-25 01:04:54 +02:00
de80782f05 add trim control to mixer-strip. 2015-04-24 22:37:03 +02:00
b38ab89d92 clean up GUI scaling 2015-04-22 21:40:43 +02:00
451450d3f8 scalable panners 2015-04-20 20:45:36 +02:00
494009a6e2 towards scaleable meter and mixer UI
somewhat hacky solution, but there's no good central point to
control this and get integer rounding/summing, is there?
2015-04-20 20:45:36 +02:00
edb9a24727 when building context menu for click on mixer strip, ensure clicked-on strip sets selection appropriately 2015-04-13 22:43:22 -04:00
d25e8f2233 update ArdourButton Icon API 2015-04-07 22:34:09 +02:00
c819449552 add explanatory comment 2015-04-06 20:14:37 -04:00
803853b4a4 rationalize incorrect design for removing tracks.
Still requires a way to make this work correctly from the mixer window
2015-04-06 17:56:23 -04:00
446baca43b renice mixer strip
Also speed up track creation(!). get_icon()’s
regexp file search takes a surprising long time.
2015-04-06 18:44:55 +02:00
c57d2627a2 and lock, too. 2015-04-05 02:06:03 +02:00
0c468dc379 add more contexts for SLA. 2015-04-05 00:44:03 +02:00
6d531b82e0 add context to single-letter translatable 2015-04-05 00:17:53 +02:00
22ca914f1b Revert "fix typo, list output bundles properly."
This reverts commit ba8b91679a.
2015-04-02 19:01:22 +02:00
d6574c9c40 remove duplicated calls to update solo/mute state from RouteUI descendants.
RouteUI::set_route() already does the right thing. Also remove RouteUI::mute_changed() since its
only role was to handle the mute change signal from a route, which boost::bind() makes unnecessary
since we can connect update_mute_display() directly.
2015-03-31 12:31:06 -04:00
nick_m
ca1856a09b Mixer visibility prefs changes teke effect "live". 2015-03-29 17:43:07 +11:00
d44273e8a4 make mixer strip “Add XXX Port” translatable 2015-03-24 02:57:25 +01:00
37a9ef0501 indicate MIDI port names (vs audio system ports) 2015-03-12 16:18:06 +01:00
69dc9451a7 NOOP, add a missing ‘p’ 2015-03-11 20:06:41 +01:00
0272c4f749 renice connection button labels
* pango ellipsize text
* use pretty-names if available
2015-03-11 20:06:41 +01:00
ba8b91679a fix typo, list output bundles properly. 2015-03-08 19:02:32 +01:00
f4203cce7e Potential fix for confusion for Input/Output buttons on tracks with audio+midi ports 2015-02-25 17:19:44 -06:00
e9e29bf2b0 flip the priority of input and output buttons and menus
left-click should show the simple input picker menu.
right-click shows the routing grid.
also reordered the menu to give lower precedence to {add/remove}-port
2015-02-10 14:43:17 -06:00
64fa63212f move all (G)UI related configuration parameters into UIConfiguration, not RCConfiguration 2014-12-22 13:39:46 -05:00
ea5876b836 Remove dead code. 2014-11-25 02:11:44 -05:00
c5e97ea21b Don't show meter-type menu for MIDI-only meters 2014-10-23 14:45:49 +02:00
089184c016 fix mixer strip track number display (amend 4a00bdf0) 2014-09-06 12:48:47 +02:00
a07dc44b4d remove pixel based Button LED diameter setting
Diameter is calculated depending on font-scaling.
Besides, all explicit calls simply set the default
value, anyway. If some API is needed in the future,
it should set the diameter in [em].
2014-09-06 02:08:59 +02:00
4a00bdf04a fundamentally change ArdourButton PangoLayout handling
This fixes issues where button text was set during static
initialization where the widget style was not yet available,
and a lot of related issues where the text was set
before style.
2014-09-06 00:41:56 +02:00
ada9f10687 fix 849d80b - don't show solo Lock/Iso on master bus 2014-09-05 03:10:59 +02:00
7b3914c730 "Aux" is a small button now, 2nd line is not visible 2014-09-04 20:11:45 +02:00
c4212fb10b use tape-track rec-enable icon throughout. 2014-09-03 02:40:01 +02:00
eed9542930 get rid of a compiler warning 2014-09-02 16:17:42 +02:00
885f1c71ec Remove unused variables (fix warnings). 2014-08-31 17:54:16 -04:00
42e6c9c75d proper round corners for peak&gain display 2014-08-31 12:08:39 +02:00
65287a6f09 mark "Label Buttons" as inactive 2014-08-29 21:10:20 +02:00
7306568634 More fixes to ArdourButton actions.
Optionally allow events to fallthrough to parents, in particular for the DnDVBox case.
Also allow the number_label to operate as a track selector.
2014-08-28 14:25:19 -05:00
3f297f7dab Fix ArdourButton event sequence.
Always give ArdourButton a chance to handle Press or Release events if you override them.
This allows ArdourButtons to do the "Pressed" animation
And it now correctly eats the event so button clicks don't select the channelstrip.
2014-08-28 10:31:57 -05:00
74f313dd6b Rationalize ArdourButton and lots of associated theming issues.
ArdourButtons now have a "pushed" animation.
The gradient is now implemented in the button, rather than providing 2 colors in the theme, which was burdensome.
Lots of code cleanup in ArdourButton.  Removed several unnecessary flags.
Refactor more stuff into route_ui.
2014-08-22 11:51:20 -05:00
f3d524deb7 Yet another attempt to standardize button heights.
Use the same string for all ArdourButtons to define the height.
Height can still vary if you use a different font, though.
2014-08-13 10:57:04 -05:00
ce4333f059 Use explicit strip widths and button heights for the mixer
The goal is to preserve a consistent layout and sizing of the buttons.
Button height should not resize based on text, because font styles differ and this leads to inconsistent button heights
Button width should not be based on text or font size;  instead, font size just determines how many chars will be visible in the button
There are some elements of the editor page which _do_ scale based on the text width, and thats probably sensible because the text is predefined, and needs to fit
2014-08-06 15:47:22 -05:00