Commit Graph

874 Commits

Author SHA1 Message Date
Paul Licameli cfbdd2d22e Type alias ManualPageID for wxString used in many places...
... eliminating many direct mentions of wxString.  A real type distinction will
be made next.
2021-07-01 13:33:04 -04:00
dofuuz 474f05d414 New colormap for Spectrogram
- Add color scheme preference

Add 'Spectro. Color scheme' to 'Set Track Visuals' macro command
2021-06-15 12:41:44 -04:00
James Crook 404ad6ad8a Bug 2803 - Audacity unresponsive after 'Fit to Height'
a) Fixed root cause, which is conversion of a
negative integer to a large unsigned, leading to
a very tall track.
b) Improved mitigation (in projects that already
have over tall tracks) by setting a smaller minimum
for the allowed size.
2021-06-08 22:05:56 +01:00
James Crook 1b9e938869 Fix / workaround for bad track heights.
The root cause of the bad track height hasn't been tracked down
yet.  It  may be related to collapsing tracks as it was first seen with
all tracks collapsed.
2021-06-08 19:29:55 +01:00
Dmitry Vedenko 690772ccb0 Use ShowExceptionDialog when we want to show ErrorReportDialog 2021-06-08 08:08:26 -07:00
Paul Licameli e6e96de0fd Replace most inclusions of MemoryX.h with <memory> ...
... Most often it was needed for a custom definition of std::make_unique, but
we build C++14 now.
2021-06-02 07:08:19 -04:00
Paul Licameli f369b5109b Change almost all uses of WaveTrack::Get() to GetFloats() ...
... A call graph browser easily shows that the extra generality of fetching
samples in some other format is only used in Benchmark -- where the format is
always the same as what the track is constructed with.

This makes re-verification of the claims in comments two commits ago easier.
2021-05-27 11:38:10 -04:00
Paul Licameli 45c6190c51 New library lib-strings for Identifier and internationalization 2021-05-27 09:51:32 -04:00
Paul Licameli c4487814cf Invert dependency of TranslatableString and audacity/Types.h 2021-05-27 09:51:32 -04:00
Paul Licameli 7e697d1d8f Replace many inclusions of Types.h with Identifier.h 2021-05-27 09:51:32 -04:00
Paul Licameli 9a66255013 Move AudioIOBase::mPlaybackSchedule up into AudioIoCallback 2021-05-14 16:25:41 -04:00
Paul Licameli d92a68f076 ViewInfo does not depend on AudioIOBase...
... ViewInfo should only be concerned with screen geometry.

(And so it won't depend on AudioIO (even higher level) after stream time moves
there.)

PlaybackScroller receives the timer event directly (not from ViewInfo) and
caches playback position instead.  Then, as before, it propagates the event
to PlayIndicatorOverlay.
2021-05-14 16:25:14 -04:00
Paul Licameli 85a8d0ac97 Keep !EXPERIMENTAL_MIDI_OUT compilable 2021-05-11 19:32:10 -05:00
Paul Licameli 406b23cae7 More uses of AUDACITY_DLL_API...
... in many places where the function call will later need to be between
modules (or libraries, or the executable) and the annotation will be a necessity
to keep the linkage working on Windows.

That's all that this sweeping commit does.
2021-05-10 10:46:55 -04:00
Paul Licameli fbfccf1393 Delete or un-inline some constructors, assignments, others...
... Which will be needed for various reasons for Windows builds of certain
modularizations, which will otherwise complain that they can no longer
generate them as inlines.

In one case, deleted copies require explicitly defaulted moves, but they will
work as generated inline.
2021-05-10 10:46:55 -04:00
Paul Licameli c5ebc396eb Audacity.h has shrunk to nothing, now remove it! 2021-05-10 00:05:23 -05:00
Paul Licameli e653b4aaf8 Eliminate Experimental.h, configure compile options instead...
... This makes it impossible to forget to include the EXPERIMENTAL definitions
(such as when cutting and pasting code) and so get unintended quiet changes of
behavior.

The EXPERIMENTAL flags are now specified instead in new file Experimental.cmake
2021-04-27 12:40:07 -04:00
James Crook 5d28d6989e Bug 2699 - Cannot edit labels with emoji in them correctly.
Fixed on Windows 10.
Probably still broken on mac and linux.
2021-03-23 16:41:08 +00:00
James Crook eb16476b31 Bug 2680 - Scale for Spectrogram changed unexpectedly.
This fixes the reported issue of a jump in the spectrogram
min frequency value when using half-wave collapsed and
generating silence.
2021-02-26 13:13:25 +00:00
James Crook 7428c61060 Bug 2565 - (Residual) Fix auto-scroll regression.
My fix for 2565 broke autoscroll.

Scrubbing can be 'paused' when it is not active!
This meant that paused scrubbing could stop autoscroll
of normal play.  The fix is to only suppress the autoscroll
if scrubbing is active and paused.
2021-02-13 10:49:52 +00:00
Leland Lucius 9940f1cf64 Bug 2571 - Linux: No digit highlight in Edit Label time / frequency controls 2021-02-12 01:50:05 -06:00
James Crook 0e20a0873f Bug 2656 - Cannot horizontal scroll when paused in play-at-speed. 2021-02-04 21:49:29 +00:00
Leland Lucius 773a86d66e Bug 2654 - Enh: Time tracks have no context menu for scale changes - inconsistent with audio track 2021-02-04 02:56:26 -06:00
Paul Licameli 23f32a8319 Remove some unnecessary #include directives 2021-01-30 12:37:47 -05:00
Paul Licameli 35e9afe34d Remove unnecessary parts of fix for bug 2501...
... Don't need to put the project in a strange state where Undo commands are
ignored until labels are de-selected
2021-01-26 04:23:45 -05:00
Leland Lucius a03a6abb4b Bug 2501 - Undo for label edit results in a blank label 2021-01-24 23:27:50 -06:00
Paul Licameli 7b513ce0c4 Start backward scrub, sometimes play head move a little forward; fix 2021-01-12 08:39:54 -05:00
freddii 534359de6c
Fix minor typos (#720)
Co-authored-by: freddii <https://freddii@github.com>
2021-01-12 11:56:09 +00:00
Paul Licameli c67842f525 Bug2494: Label cut/copy/paste on Mac and the system clipboard...
... The fix also requires commit 58ad95e7981c9a2b116f318539c37889281baabe of
https://github.com/audacity/wxWidgets.git in the wxWidgets build
2020-12-02 17:50:39 -05:00
Paul Licameli 8e28a257a5 Bug2588: Amend the fix at 3c76cea to be safe during append-record 2020-11-24 13:35:42 -05:00
Paul Licameli caa312ab7b Remove some unneeded #includes and forward declarations 2020-11-20 13:47:47 -05:00
Paul Licameli f82b23d9d4 Register MakeTrackShifter properly 2020-11-20 13:15:01 -05:00
Paul Licameli 6050edb3ca Bug2598: Envelope edit not dependend on visibility of channels...
... And other rewrites.  Don't use a cache of wave clip X coordinates computed
during drawing.
2020-11-19 22:29:21 -05:00
Paul Licameli 3c76cea190 Bug2588: Click to join clips shouldn't depend on channel visibility 2020-11-19 21:32:59 -05:00
Paul Licameli 9d6cfcc746 WaveTrackView::BuildSubViews can be simplified...
... The setting of scale type now happens in the default constructor of
WaveformSettings, which calls LoadPrefs.

Since creation of WaveformSettings is always forced, we don't need the
distinction between WaveTrack::GetWaveformSettings and
WaveTrack::GetIndependentWaveformSettings.

That distinction was more analogy with the handling of SpectrogramSettings that
we don't need now.
2020-10-10 11:27:06 -04:00
Paul Licameli e5a7e6fb21 Remove unnecessary line...
... This is a vestige of the time when "Waveform" and "Waveform dB" were
considered separate wave track view types.  But now that scale choice is
independent of Waveform vs. Spectrogram choice, there is no possible change of
scale type happening here, requiring invalidation of the vertical ruler.
2020-10-10 11:26:24 -04:00
David Bailes cce2c7b883 Bugs 2558 2559: After clip left/right, selection start can be wrong
Problem:
In DoClipMove() in ClipMenus.cpp, there are a couple of problems in the code for the adjustment of the new value t0 due to potential rounding errors:
1. The code uses the start and end of intervals, and these values are not updated after the move.
2. It's assumed that the same correction is valid for all track types.

Fix:
Implement an adjustment which depends on track type, and does not use the start and end values of intervals.
2020-10-07 13:27:09 +01:00
Paul Licameli 783183a4dd Dragging a label from track to track may also carry clips with it 2020-09-21 17:31:48 +01:00
Paul Licameli 785857a883 Make FindCorrespondence invocable repeatedly to accumulate pairs 2020-09-21 17:31:48 +01:00
Paul Licameli cc554350aa Simplify TemporaryClipRemover 2020-09-21 17:31:48 +01:00
Paul Licameli 2b542bf734 Move TrackShifter subclasses each to its own new source file...
... These do not require header files; they are tiny proto-plugins that work
by registration of AttachedVirtualFunction overrides at startup.

Dependency may go from them to TrackView subclasses but not back; so in
principle a reduced Audacity without time-shift could be linked that still uses
the TrackView subclasses.

But other work to make the hit test for the Time Shift tool registrable would
have to precede that.
2020-09-21 17:31:48 +01:00
Paul Licameli 4abd38b9a0 Bug2464 extra: labels should be draggable from one track to another 2020-09-21 17:31:48 +01:00
Paul Licameli 9b1901c971 A convenience function in LabelTrackShifter eliminates repetition 2020-09-21 17:31:48 +01:00
Paul Licameli 3fcda6fc3c Fix sync-lock behavior of time shift, don't move too many other tracks 2020-09-21 11:32:19 -04:00
Paul Licameli c48b813795 Bug2464: Shifting a label should shift wave clips too...
... Implemented non-invasively just with overrides in LabelTrackShifter

Exceeding the bug description: it's also possible to drag just the subset of
labels that fall partly or wholly in the selected region.

I expect details of the new behavior may be debated.
2020-09-20 01:01:17 -04:00
Paul Licameli 6e0b5b690a More control over HitTest behavior moved into the Track Shifter classes 2020-09-20 00:31:39 -04:00
Paul Licameli f204ee3192 Always pass ViewInfo to TrackShiftHandle::HitTest 2020-09-20 00:30:07 -04:00
Paul Licameli 637ce894c1 Pass project to TrackShifter factory, which LabelTrackShifter will need 2020-09-20 00:30:06 -04:00
Paul Licameli 14dc5af223 Pass optional extra information into TrackShifter::HitTest ...
... Because LabelTrack, unlike the others, will also need a mouse y coordinate.

The extra information is present when using the time-shift tool but not when
using the items in ClipMenus.
2020-09-20 00:30:01 -04:00
Paul Licameli 3b903ee77d TimeShiftHandle doesn't need Track subclasses 2020-09-20 00:26:48 -04:00