summaryrefslogtreecommitdiff
path: root/gtk2_ardour/mixer_strip.cc
AgeCommit message (Collapse)Author
2017-09-14Fix various tooltip markup (ampersand) entity-escape:5.12Robin Gareus
* track/port names * plugin-names * MIDI patch-names
2017-09-09Migrate PC dialog to RouteUI, midnam handing to RTAV.Robin Gareus
This allows to to bring up the PC dialog from Editor/Editor-Mixer & Mixer for both MIDI Tracks as well as MIDI Busses.
2017-08-28Refactor update_io_buttonJulien "_FrnchFrgg_" RIVAUD
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-25Remove unneeded testJulien "_FrnchFrgg_" RIVAUD
The for loop will not be executed if |port_connections| is empty, no need to check beforehand.
2017-08-24Fix typo in dea8ee7fRobin Gareus
2017-08-24Make clicks on io menu bundles always connectJulien "_FrnchFrgg_" RIVAUD
If a bundle was already connected, a click on the corresponding entry disconnected it, essentially giving toggle semantics to the io menus. This behavior has three problems: — When clicking on a not yet connected bundle, the new bundle replaces any already connected one. This is not consistent with a toggle mode. — It is a less discoverable and less easy way to disconnect a bundle than the already present "Disconnect" menu entry. — Bundles that match the I/O channels only partially (recently added to cater for e.g. MIDI+STEREO tracks connecting to Master) are never considered "connected" because the channels are not connected 1:1. Those will thus never toggle, making the behavior inconsistent. Change the semantics to ensure a bundle is connected on click instead.
2017-08-23Make the output menu able to connect partial matchesJulien "_FrnchFrgg_" RIVAUD
Use the new partial connection feature of IO::connect_ports_to_bundle.
2017-08-23Populate strips output menus with a more user-friendly heuristicJulien "_FrnchFrgg_" RIVAUD
Ensure the master bus is the first proposed bundle if it is present. Also propose internal route inputs before physical outs or other software via JACK. Last, but not least, add to the menu not only exactly matching bundles, but also bundles that have the same number of channels than the route output when considering only the DataType we think the user wants to use. This covers both the case of a MIDI+STEREO instrument track connecting to master, and the case of a STEREO track connecting to a MIDI+STEREO vocoder track.
2017-08-23Improve maybe_add_bundle_to_output_menuJulien "_FrnchFrgg_" RIVAUD
Avoid proposing the monitor section in the list if the current route is not the master bus. Also allow the caller to pass a DataType as argument to allow partial bundle match on that datatype only.
2017-08-23Use port enumeration instead of manual indexed loopJulien "_FrnchFrgg_" RIVAUD
2017-08-23Generalise heuristic for user-intended main type of a route's IOJulien "_FrnchFrgg_" RIVAUD
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-23Remove never changing and/or unused argumentsJulien "_FrnchFrgg_" RIVAUD
2017-08-06Update Selection API to include all StripablesRobin Gareus
2017-07-24Add touch to trim-controlRobin Gareus
2017-07-17Remove <gtkmm.h> include from header files.Robin Gareus
2017-07-17Move more Gtkmm2ext widgets into libwidgetRobin Gareus
2017-07-17Remove unused sources & includesRobin Gareus
2017-07-17Move Gtkmm2ext widgets into libwidgetRobin Gareus
2017-07-17Separate Ardour UI widgets into dedicated libraryRobin Gareus
2017-07-01NO-OP whitespace (updated GH PR #357)Thomas Brand
2017-06-29Use quotes for bundled library includesRobin Gareus
2017-06-29Use mnemonic-save API for menu-element textsRobin Gareus
2017-06-22Update GUI to follow Slavable API changeRobin Gareus
2017-06-21Remove Cruft -- AutomationStyle never did anything.Robin Gareus
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-04-19Use PBD::to_string from pbd/string_convert.h in MixerStrip classTim Mayberry
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-19Use AxisView::get/set_gui_property API in MixerStrip classTim Mayberry
2017-03-24Revert "consistent use of context-menu popups"Robin Gareus
This reverts commit b3722f7063699fafd0421d504e05a7300c70e0ec. 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-16consistent use of context-menu popupsRobin Gareus
2017-03-08Consolidate codeRobin Gareus
2017-02-20consolidate Ardour+Mixbus code, fix duplicate SeparatorElem in MB.Robin Gareus
2017-02-06save/restore VCA master state inside slaves, so that a reloaded session ends ↵Paul Davis
up back in the same state
2017-02-02Right-click on a VCA to assign it to the selected channels.Ben Loftis
2017-01-24Meter point toggle button now uses a popup menu instead of togglingDaniel Sheeler
2017-01-09Better fix for widgets that do not apply to master bus: leave them in place, ↵Ben Loftis
but insensitive, to retain layout
2017-01-09Revert "Remove the Solo+Iso buttons in the Master bus."Ben Loftis
This reverts commit 7f280e2bed51cfa56fedeaf08f28b6040c93b5b1.
2017-01-09Remove the Solo+Iso buttons in the Master bus.Ben Loftis
2016-12-21Vertically line up mixer strip (backport from Mixbus)Robin Gareus
2016-12-12UI tweak for the spacer at the bottom of the master bus.Ben Loftis
2016-11-11Refine instrument fan-out:Robin Gareus
* prefix (rather than suffix) portgroup-name * check if group already exists * disconnect targets (when autoconnect preference is enabled) * expose tracks/busses option
2016-11-10Implement instrument fan-out options (group, track/bus)Robin Gareus
2016-11-10C++ implementation of fan_out_instrument.luaRobin Gareus
2016-09-15Skip pin-management for MB channelstrip pluginsRobin Gareus
2016-08-18Make name_button behave more like a Gtk::MenuToolButtonJulien "_FrnchFrgg_" RIVAUD
Make it popup its menu in attached mode, and on mouse down, but keep the context menu behavior on right-click.
2016-08-18Make in/out buttons behave more like Gtk::MenuToolButtonJulien "_FrnchFrgg_" RIVAUD
Make them popup their menu as if attached rather than as a context menu.
2016-08-17Make the group button in MixerStrip behave like a dropdownJulien "_FrnchFrgg_" RIVAUD
Since it mostly is a multiple-choice menu.
2016-07-24Make the trim knob on busses show only if there is audioJulien "_FrnchFrgg_" RIVAUD
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-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-09Better heuristics for guessing the primary type of an input or outputJulien "_FrnchFrgg_" RIVAUD
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-09update_io_button: store input() or output() in a variableJulien "_FrnchFrgg_" RIVAUD
This avoids repeating "if (for_input)" checks.
2016-07-06many changes associated with rationalizing selection flowPaul Davis