13
0
Commit Graph

35051 Commits

Author SHA1 Message Date
c0b1f0e63c fix buglet in RAII mgmt of Bindings::_drags_active 2022-04-18 12:21:57 -06:00
729f930974 bindings: add a mechanism to prevent binding activation during drag 2022-04-18 11:38:21 -06:00
Caleb Potter
8b82de7ac1 Prevents user from infinitely banking right in mackie plugin subview
Changes handle_cursor_right_press() in PluginSubviewState to pure virtual
function so that PluginSelect and PluginEdit can each have their own
version.
2022-04-18 11:14:53 -06:00
Caleb Potter
f3bd740913 Formatting. Adds spaces before parentheses 2022-04-18 11:07:45 -06:00
Caleb Potter
8e375f5acd Moves left brackets to be on the same line as conditionals 2022-04-18 11:07:45 -06:00
Caleb Potter
bc6461dc76 Prevents user from infinitely banking right in mackie sends subview 2022-04-18 11:07:45 -06:00
Caleb Potter
17a7dbe06d adds ability to bank over in mackie sends subview
The cursor_left and cursor_right mackie control buttons will now move the
sends subview left and right like it does in the plugin subview. Previously,
if you had more than 8 sends (which is almost always the case for Mixbus),
then sends 9+ were unreachable on an 8 channel controller.
2022-04-18 11:07:45 -06:00
5f7e009d39
VTL: fix tooltips 2022-04-18 16:39:43 +02:00
0852032e85 midi note editing: adjust scroll modifiers and allow range expansion as well as scroll 2022-04-17 23:23:45 -06:00
b725b7ddb4 midi editing: scroll in a midi region with no selection will scroll the note range (#8721) 2022-04-17 23:16:50 -06:00
a0d08232ad midi selection: implement MidiRegionView::set_selected()
This allows an MRV to clear its own selection of notes when
the region itself is deselected. This should help #8729 and #8899
2022-04-17 22:58:16 -06:00
789abc561d MIDI editing: fix selection during note resize drags
The ::start_drag() implementation now defers add/extend selection logic to
MidiRegionView::note_selected(), and drops the original limitation that we did
not do extend-selection on button press, only button release.
2022-04-17 22:18:31 -06:00
e01452c6a6 MIDI editing: clean up logic for ::note_selected()
The behavior should be the same but the logical intent of the code is now more
obvious.
2022-04-17 22:17:09 -06:00
948fc52c5c NOOP: whitespace before parens in function call 2022-04-17 12:04:05 -06:00
95b1943978 midi editing: when transposing, expand MIDI streamview note range when/as necessary so that notes do not vanish 2022-04-17 12:03:36 -06:00
bde3f3a277 midi region view: allow change_note_note() to return the new note value 2022-04-17 12:02:53 -06:00
3315a6588a midi regon view: fix logic error introduced when redisplay was split between model_changed and view_changed 2022-04-17 12:02:18 -06:00
f888d3d8ee specify valid chars for MIDI note names in preferences 2022-04-16 18:02:25 -06:00
52f713b591 option editor: allow EntryOption to have a list of valid chars (not just invalid) 2022-04-16 18:02:11 -06:00
bae15f216b make default MIDI note range editable in preferences 2022-04-16 12:08:44 -06:00
a4f26f91c8 parametize default MIDI scroomer (and thus MIDI track) note range 2022-04-16 12:08:44 -06:00
1237a4f3bb
VTL: refine video-export UI (tooltips, error dialog, etc) 2022-04-15 18:25:58 +02:00
72d5fd248a
VTL: fix lead-in/out, explicitly set fps 2022-04-15 18:25:58 +02:00
d6cd9c8a5b MIDI: allow middle-button to delete notes in draw/edit modes 2022-04-15 10:04:59 -06:00
f71430390f
Re-introduce video export options
When adding ffmpeg 5.0 compatibility, the dialog was
dramatically simplified. This re-introduces some options
for audio-quality and also saves/restores settings.
2022-04-15 02:01:06 +02:00
217f51e6fb
Break out common plugin-insert state methods
This is in preparation for IO-Plug, and should also come
in handy later for per region plugins.
2022-04-14 20:08:22 +02:00
9cbf3ae4ad
Who needs PIs for Plugin GUIs?
Use abstract base class for plugin UIs wherever possible
2022-04-14 16:35:03 +02:00
74a673ce17
Create a virtual base class for PluginInsert
This in in preparation for IO-Plug GUI support.
2022-04-14 16:35:03 +02:00
f9d80c32d6
Allow to destroy Widgets when removing them from a container
This is useful when the container uses manage()d Widgets,
which are otherwise not destroyed.
2022-04-14 16:35:02 +02:00
defc902571
Allow to use Destructible as virtual base class
This is in preparation for a pure-virtual base class for
PluginInsert to expose `DropReferences` in the virtual base.

```
class PlugInsertBase : virtual public PBD::Destructible
class PluginInsert : public Processor, public PlugInsertBase
class Processor : public SessionObject
class SessionObject : public PBD::StatefulDestructible
```
2022-04-14 16:35:02 +02:00
c8bb8a3f99
Fix Pin-management IOButton - use client-name 2022-04-14 16:35:02 +02:00
db1a6720c2
Fix Region Export (clip library bounce)
Region::read_at fails if the region is not in a playlist.
It also applies fades and and region transparency which are
not relevant here.
2022-04-14 16:34:39 +02:00
844479568b
fix building OSC surface (amend 9b89dd7967) 2022-04-14 04:49:23 +02:00
99ed076e7e
Potential fix for region export on windows 2022-04-14 00:31:33 +02:00
7f12c664d2
Consistent checks for peakfile file descriptors
This fixes a crash on windows, close(-1) or closing an
already closed FD will abort the application
(Save-As can trigger the issue in done_with_peakfile_writes).

Note that g_open() returns -1 if an error occurred. However
other negative number may still be a valid FD.
2022-04-13 18:04:35 +02:00
luz paz
74453cac86 Fix user facing typos
Found via `codespell -q 3 -S *.po,./.git,./share/patchfiles,./libs,./msvc_extra_headers,./share/web_surfaces,*.patch  -L ba,buss,busses,discreet,doubleclick,hsi,ontop,ro,scrollin,seh,siz,sord,sur,te,trough,ue`
2022-04-10 19:58:47 -04:00
0e8c7272eb
Fix duplicate undo/redo when stretching multiple regions
Previously, when running timefx on multiple regions on
the same track, undo commands accumulated for each region
in the playlist. Resulting in duplicate actions on undo/redo.

```
<UndoTransaction tv-sec="1649607270" tv-usec="646684" name="pitch shift">
    <StatefulDiffCommand obj-id="1690" type-name="ARDOUR::AudioPlaylist">
      <Changes>
        <Regions>
          <Add id="4046"/>
          <Remove id="2284"/>
        </Regions>
      </Changes>
    </StatefulDiffCommand>
    <StatefulDiffCommand obj-id="1690" type-name="ARDOUR::AudioPlaylist">
      <Changes>
        <Regions>
          <Add id="4046"/>
          <Add id="4057"/>
          <Remove id="2284"/>
          <Remove id="2388"/>
        </Regions>
      </Changes>
    </StatefulDiffCommand>
...
```
2022-04-10 18:25:19 +02:00
91e1083cb1 fix typo 2022-04-09 18:35:16 -06:00
bdc8264fda given 217519b1b4, revert 5bbfac23 and cleanup DEBUG_TRACE output 2022-04-09 18:33:24 -06:00
Mads Kiilerich
217519b1b4 Put ostream operator<< for PresentationInfo in std namespace
Fix compilation error seen with gcc 12.0.1 on Fedora 36:

In file included from ../libs/ardour/ardour/variant.h:30,
                 from ../libs/ardour/ardour/parameter_descriptor.h:25,
                 from ../libs/ardour/ardour/automation_control.h:39,
                 from ../libs/ardour/ardour/amp.h:30,
                 from ../libs/ardour/session.cc:61:
../libs/pbd/pbd/compose.h: In instantiation of ‘StringPrivate::Composition& StringPrivate::Composition::arg(const T&) [with T = ARDOUR::PresentationInfo]’:
../libs/pbd/pbd/compose.h:277:31:   required from ‘std::string string_compose(const std::string&, const T1&, const T2&, const T3&, const T4&) [with T1 = std::__cxx11::basic_string<char>; T2 = unsigned int; T3 = std::__cxx11::basic_string<char>; T4 = ARDOUR::PresentationInfo; std::string = std::__cxx11::basic_string<char>]’
../libs/ardour/session.cc:3268:4:   required from here
../libs/pbd/pbd/compose.h:122:20: error: no match for ‘operator<<’ (operand types are ‘std::ostringstream’ {aka ‘std::__cxx11::basic_ostringstream<char>’} and ‘const ARDOUR::PresentationInfo’)
  122 |                 os << obj;
      |                 ~~~^~~~~~

This might also fix a similar problem with clang, and
https://github.com/Ardour/ardour/commit/5bbfac23808 can be backed out.
2022-04-09 18:03:21 -06:00
Mads Kiilerich
705de9389b wscript: address some pyflake warnings
gtk2_ardour/wscript:15:1 redefinition of unused 'TaskGen' from line 3
wscript:102:9 dictionary key 'sse' repeated with different values
wscript:104:9 dictionary key 'sse' repeated with different values
2022-04-09 12:16:41 +02:00
Mads Kiilerich
5b7431f243 wscript: drop unnecessary trailing ";" 2022-04-09 12:16:41 +02:00
Mads Kiilerich
49855e52aa wscript: consistently have at most one empty separator line 2022-04-09 12:16:40 +02:00
Mads Kiilerich
bac32a8c2d wscript: consistently use 4 spaces for indentation 2022-04-09 12:16:40 +02:00
Mads Kiilerich
c3bdcdd3fa wscript: consistently use space indentation instead of tab indentation 2022-04-09 12:16:40 +02:00
Mads Kiilerich
06f8936a73 wscript: remove trailing whitespace 2022-04-09 12:16:37 +02:00
Mads Kiilerich
4cec4a659b wscript: drop X bit
The wscripts are not executed directly and do not need X.
2022-04-09 12:02:23 +02:00
Mads Kiilerich
4fb3a23adb wscript: use consistent python shebang path
Most wscripts use
  #!/usr/bin/env python
Use that consistently.

The wscripts are not executed directly and do not need the shebang path,
but it might guide editors and other tools to recognize the files as
being Python-ish.
2022-04-09 11:44:28 +02:00
luz paz
8017ba2340
Fix typo in color theme comment 2022-04-09 02:27:40 +02:00
luz paz
58e5ee6051
Fix pointer typo (callbck->callback) 2022-04-09 02:25:59 +02:00