Commit Graph

630 Commits

Author SHA1 Message Date
5b2a435e02 getting editor_drag.cc to compile 2021-08-13 12:51:29 -06:00
5c579ed52d
Remove unused #include<> (1/2)
PBD::stacktrace() is not used nor needed by default.
It should be used sparingly.
2021-05-05 17:43:28 +02:00
39334279b5
LAN for ranges 2021-04-13 00:10:38 +02:00
2ed8fd2723
Pixel-pushing: vertically align special busses
The mixer's track area has a border with shadow (again).
This breaks vertical alignment with monitor-section,
master, foldback busses.
2021-04-03 22:27:05 +02:00
ac5bca4a92
Clean up RouteUI header
* Consolidate access modifiers
* Remove all public member variables
* Only expose required functions, use private
  whenever possible
* Rename private members, prefix underscore
* Remove cruft
2021-03-27 17:44:34 +01:00
003be3d87e
Localize private variable (only used by RouteUI) 2021-03-27 16:25:30 +01:00
3e7b2bb3f5
Separate IO connection button into dedicated class 2021-01-30 02:38:39 +01:00
d42b09f1d3
Remove cruft, there are no more diskstreams 2021-01-29 03:23:57 +01:00
9b4d330285
Remove unused variable
`ignore_toggle` is never set to true.
2021-01-29 02:58:25 +01:00
edd3179fbf
VKeybd: show pretty-name in port-connector
This follows a special case in PortGroupList::gather().
The Virtual Keyboard is an Ardour owned async terminal port,
that is in a session bundle (not a UserBundle).

See also 728d2a3771 and 559ffcff63
2021-01-18 03:18:21 +01:00
b2c4e71a45
Subscribe to pretty-port name changes (GUI) 2021-01-18 03:18:20 +01:00
8bb76f2a65
NO-OP: code-reorder to facility Mixbus LAN button layout 2020-11-02 15:52:42 +01:00
f5c1830263
Show monitor-section button only in the mixer window
Previously it was possible to to also have it visible on the
editor-mixer.

Also always use "Mon", the text also fits on narrow mixer-strips
2020-10-04 16:28:28 +02:00
72adf2844e
Consistent naming of LAN UI elements -- #8318 2020-08-04 21:33:53 +02:00
973d52b949
Plenty of space for "Mute" on narrow master-bus 2020-08-03 22:28:46 +02:00
6224bd7e7a
Add Volume Ctrl position to processor-box context menu
This makes it easier to discover the option, compared to hiding
it in the context menu of the slider itself.
2020-08-03 14:59:05 +02:00
60062e6b43
Allow to toggle main-out volume custom position from the mixer-strip
(this is not necessarily click-free)
2020-07-27 22:02:09 +02:00
612746f3b0
Improve master-strip layout spacing
Simply removing the items from the rec_mon_table still leaves
a space since the table itself is still packed and the
global-vpacker uses a spacing of 2px.

So the rec-mon table has to be unpacked. explicit hide/show
calls in set_route() are also not helpful since the widget is
managed by a VisibilityGroup.
2020-07-22 23:55:01 +02:00
4ccd3c9740
Use slider for master output volume 2020-07-22 23:19:16 +02:00
75187f6469
Update mixer-strip group button height
On tracks the bottom row of each mixer-strip has three buttons.
Two are provided by the gain-meter (automation, meter-point),
and the size of those is set in GainMeterBase (current 15x15px).

The track-group button size was left unspecified.
The master-bus only has the gain-meter buttons, and hence was
less tall compared to tracks.
2020-07-22 23:18:55 +02:00
fced1a5dc1
Cont'd work on Loudness Assistant
* use relative gain for analysis
* allow to select constraints
* tweak UI layout, use monospace font
2020-07-22 03:26:58 +02:00
John Emmas
1c98687bea MSVC itself defines a class called CheckMenuItem - so make sure we know to use the one from Gtk 2020-07-21 10:25:22 +01:00
aa9c5737cc
GUI support to en/disable master-bus output gain control 2020-07-21 05:51:56 +02:00
7b68b85f93
Add loudness-measurement and master-volume to master mixer-strip 2020-07-21 02:18:39 +02:00
efd3f6bdab
Fix master-mute button visibility in editor-mixer 2020-07-21 02:18:39 +02:00
bd92e290c0
Fix send-button layout (2 column table)
Amend c765079b2f, remove Mixbus special-case for Ardour
2020-03-31 01:37:38 +02:00
8fced29372
Visibility fixes for detached editor and Show-Sends buttons
Detaching the editor would cause the inactive_name labels and
to mixer-strip elements to appear (due to show_all).
2020-03-31 01:37:38 +02:00
eb6d718305
Hide Aux-send button in editor-mixer 2020-03-31 01:37:38 +02:00
c765079b2f Show Sends button should instigate a Spill, akin to a VCA spill 2020-03-23 15:24:08 -05:00
b760d541c6
Pan: remove automation-state indirection 1/2 2020-03-23 16:41:13 +01:00
6120d4d43a
Improve RouteUI API consistency
This is an effective NO-OP
 * Some methods have been re-named to improve consistency
 * Duplicate function calls were removed:
   RouteUI::set_route() already updates mute/solo
   MixerStrip does not have to update it again
 * virtual methods have been protected
2020-03-02 19:18:57 +01:00
f29e5ea7ab
Leave processor box sensitive when editing aux-sends
This is required to toggle the strip to revert from aux-view
to the main route using the aux-send processor itself.

Discuss:
Perhaps this should be reverted, and ProcessorBox::edit_aux_send()
be removed: It is currently possible to create various
inconsistent mixer-states.

* use "Aux" on a Bus, then double-click some Internal-Send to
  revert strips. But Aux remains active
* Removing sends while "Aux" is active does not disable Aux.

If the processor box was insensitive those issues won't be present.
However it is convenient to use double-click on the editor-mixer to
access a send's panner ...
2020-02-13 22:24:24 +01:00
eb7297e2fc
Remove duplicate separators from context menu 2020-01-28 23:38:02 +01:00
b21bab3a8c
Don't allow to deactivate master 2020-01-28 23:37:10 +01:00
6dfee0b1d2
Amend 87af9fb (fix context menu, don't allow to remove master) 2020-01-28 23:17:21 +01:00
87af9fb820
Consolidate Mixer-strip sensitivity
* Use a single method to set mixer-strip widget sensitivity
* Update context-menu to only allow show actions that can
  currently be performed, depending on active/inactive state.
* Mark all control elements of in-active strips as insenstive
  except those required to re-enable the route.
* Also update processor-box and solo-button when showing Aux

Special case Mixbus. Mixbus already shows a "Insensitive" label,
and Mixbus-channelstrip element sensitivity remains to be
implemented before using this mechanism.
2020-01-28 22:22:57 +01:00
6914671736
Propagate ::route_active_changed() methods 2020-01-22 01:35:18 +01:00
ab298f035a
Consolidate automation and meter-point strings
This also properly selects texts in dropdown-menus on the mixer-strip,
panner and plugin-controls, gain-meters.
2019-10-31 16:12:27 +01:00
70c523e0e8
Remove defunct Route "Adjust Latency" GUI
This was based on Ardour-5 style "set custom latency of the IO", and
inform, override JACK-port latency compensation.

Ardour6: IO itself is no longer in control. This is abstracted by
IOProcessor.

In any case, this is to be superseded by bundling a-virtual-latency,
and allowing track playback offset (that has no additional
thru-latency for cue-monitoring).
2019-09-29 18:25:14 +02:00
468731c14b goodbye Profile->...trx 2019-09-25 13:02:31 -06:00
80692dd36b remove empty methods and signal connections 2019-09-22 19:21:18 -06:00
1d557ba69f
Use new icons in mixer window 2019-09-12 23:36:25 +02:00
4050ca5633
Update GPL boilerplate and (C)
Copyright-holder and year information is extracted from git log.

git history begins in 2005. So (C) from 1998..2005 is lost. Also some
(C) assignment of commits where the committer didn't use --author.
2019-08-03 15:53:15 +02:00
c4cb9ef4d7
Tweak Mixer screenshot method, include VCA, master-bus 2019-07-18 00:05:32 +02:00
0e60060c62
Fix meter type/position context-menu issues 2019-07-17 17:30:47 +02:00
dc131da53b
Hide "Add MIDI Port" in the GUI if there is already one 2019-07-11 22:58:27 +02:00
9f20631984
Update GUI: meter-type API and meter-type state changes
This removes all additional GUI side meter-type state.
The route's meter-processors is now responsible for providing
the type.

meter-type is now implicit for GainMeter, LevelMeter used by
meter-strips and mixer-strips.
2019-06-09 19:56:30 +02:00
2e5daf2eeb
Reduce #includes - avoid ardour_ui.h 2019-03-08 01:53:55 +01:00
7b96fa1c5e
Fix some Gtk::Menu memory leaks
A Gtk::manage()d widget will be deleted when its parent container
is destroyed. Top-level context menus are not inside a container and
hence need to be manually deallocated.

The solution here is to use a shared Gtk::Menu pointer that is
centrally de/re-allocated.

This works because the GUI is single-threaded and at most one
context menu is visible at a time.
2019-03-07 23:50:50 +01:00
64e1d691ec
Prefer using RAII to suspend signals 2019-03-07 23:50:43 +01:00
94d3da7e09
GUI updates to handle monitor-section changes
This fixes various MS related action sensitivity issues, as well
as action-states.

Also manually adding a monitor-section to a session now always
immediately shows it, regardless of prior ToggleMonitorSection
visibility.
2019-03-01 16:51:08 +01:00
65bda27d42 Tweaks to Mixer and Monitor keybindings:
Add Mixer-specific view keybindings for list, vca, mon.  (thanks to: the_CLA)
Move monitor keybindings (mute, dim, mono) to be globally-accessible.

Implement new mixer-specific actions to show/hide monitor,vcas,mixbuses (the_CLA)
Move monitor funcs (mute,dim,mono) to globally-accessible actions.
Make a new Monitor group insted of using Transport group.
Allow use-monitor-section to be controlled by both menu and session-options dialog.
2018-12-07 12:57:26 -06:00
245d48dbd0
NO-OP: Clarify function name 2018-11-28 15:16:25 +01:00
f150f6c074
Use central method to check for engine where required
These are generally places where tracks/busses are created or port
connections change.
2018-11-28 00:01:50 +01:00
0140b24248 Change get_routes to get_routelist where appropriate. 2018-11-07 17:00:16 -08:00
269b0ebcd8 Same for midi input enable button 2018-03-13 08:05:41 -07:00
b8856076c2 Trim and vca button should also be insensitive in strip aux mode 2018-03-12 16:03:53 -07:00
ceac42cc03 NO-OP: whitespace
- remove trailing whitespace
- remove space after opening brackets and before closing brackets
- add space around operators
- do not use '//' for multi-line comments, do not use "//" on line-start
  to comment-out code breaking indenting (-Wmisleading-indent)
- do add a single space after comment-start /*{SPACE}... or //{SPACE}...
- reserve duplicate whitespace "  " for alignment, remove other duplicate
  whitespace
- use established "TODO" and "XXX" (highlighted keywords)
- remove equal-sign series "====" (those indicate merge conflicts)
2018-02-24 13:55:20 +01:00
55ee5d2e50 Fix duplicate if(A) else if (A) condition
Issue came to be from consolidating Session and UI configuration.
Found by PVS-Studio - https://www.viva64.com/en/b/0540/
2017-11-23 09:50:50 +01:00
ea5fa64c0b manually fix up various cases where Gtk:Frame foo_frame had been changed to foo_sample 2017-09-18 14:59:11 -04:00
30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
e6064b286e basic GUI framework for setting Disk I/O options 2017-09-18 11:40:53 -04:00
a4a87f56e9 mega-commit to save state of first "it compilesand links" state for separated disk i/o changes.
THIS WILL NOT RUN. THIS REQUIRES MANY CHANGES
2017-09-18 11:40:52 -04:00
ae0dcdc0c5 Fix various tooltip markup (ampersand) entity-escape:
* track/port names
* plugin-names
* MIDI patch-names
2017-09-14 19:23:37 +02:00
b5e1eb7538 Migrate PC dialog to RouteUI, midnam handing to RTAV.
This allows to to bring up the PC dialog from Editor/Editor-Mixer & Mixer
for both MIDI Tracks as well as MIDI Busses.
2017-09-09 18:25:36 +02:00
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
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
18cf003aa9 Fix typo in dea8ee7f 2017-08-24 16:20:51 +02:00
dea8ee7f38 Make clicks on io menu bundles always connect
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-24 15:41:40 +02:00
74fada443d Make the output menu able to connect partial matches
Use the new partial connection feature of IO::connect_ports_to_bundle.
2017-08-23 23:31:28 +02:00
cc63df7e8d Populate strips output menus with a more user-friendly heuristic
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-23 23:31:10 +02:00
452e22e9c9 Improve maybe_add_bundle_to_output_menu
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-23 22:59:43 +02:00
8119026bc8 Use port enumeration instead of manual indexed loop 2017-08-23 22:59:43 +02:00
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