1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-12-15 09:01:12 +01:00
Commit Graph

495 Commits

Author SHA1 Message Date
Paul Licameli
79e9f2b5dd Scrolling left of zero will work right with fisheye present. 2015-07-19 11:44:25 -04:00
Paul-Licameli
5418ce377b Move PositionToTime, TimeToPosition into class ZoomInfo ...
... and use them in many more places in TrackPanel.cpp, so there are fewer
direct uses of ZoomInfo::zoom.

Also use then in horizontal scrolling code
2015-07-19 11:44:04 -04:00
Paul-Licameli
5a6d5d1443 Add and use some ZoomInfo and ViewInfo member functions, so we can eliminate...
... miscellaneous direct uses of ZoomInfo::zoom to test and set zoom level.

This includes all the remaining assignments to it.

But moving TrackInfo::PositionToTime and TrackInfo::TimeToPosition into
ZoomInfo and using them is needed to eliminate many more uses.

Also #if'd out the unused AudacityProject::OnZoomToggle().
2015-07-19 11:44:02 -04:00
Paul-Licameli
ab21f75c77 ViewInfo is becoming a smart class, not a dumb struct
Now it has:
A constructor
XML attribute serializer functions (but no XML tag of its own)

Also removed unused lastZoom
2015-07-19 11:43:59 -04:00
Leland Lucius
39064c42d5 FileDialog shouldn't return duplicate names. 2015-07-18 21:26:11 -05:00
James Crook
c43936f630 Bug1085 - Play-at-Speed key-binding broken
Caused by fix to Bug 844 not initialising mIsCapturing to false.  So play-at-apeed could mistakenly think recording was in progress, and so prevent play-at-speed.
2015-07-18 12:51:28 +01:00
Leland Lucius
805f0e29d1 Round 7 of wx3 changes
I believe the FileDialog is now complete and consistent across
all 3 platforms.
2015-07-16 01:12:09 -05:00
Leland Lucius
9b9c8cc073 Round 5 of wx3 changes
FileDialog now complete on Linux.  Needs some fine tuning on
Windows and OSX.
Builds with wx3 and gtk2 or gtk3.
Still more effect work to do.
2015-07-14 23:33:53 -05:00
Leland Lucius
d1f66d768f Updates for wx3
A long way to go yet, but many OSX issues fixed including
conversion of Audio Unit effects.
2015-06-30 11:25:32 -05:00
Leland Lucius
602e21358c Do not cause duplicate ".aup" extensions to be added on OSX
The real problem is that there's a lot of code that is looking
for the ".aup" extension, but it's not using case insensitive
comparisons.

But that'll have to get resolved ... later.
2015-06-16 00:03:03 -05:00
Leland Lucius
de1fe0ae37 Fix for bug #1034 2015-06-15 23:38:02 -05:00
Paul Licameli
79305db179 Project.h does not need Meter.h 2015-06-10 00:29:47 -04:00
David Bailes
d395a61450 Fix for initial width of actual rate field of status bar. This was too big, and causing messages in the main field to be truncated. 2015-06-08 12:33:20 +01:00
Leland Lucius
f3f8e9cedb Make autosave filename English to work with Arabic translation on LInux
And just fix up a few comments.
2015-06-07 12:38:29 -05:00
David Bailes
391bd1691c status bar state field. When you move to the menubar, the state field is no longer cleared. This was achieved by introducing a dummy field of width 0. When you first open a new audacity project, the state is stopped - previously the state only appeared after the first play/pause/etc command. 2015-06-02 15:18:46 +01:00
Leland Lucius
0e12ab6760 Fix for bug #334 2015-05-29 23:01:58 -05:00
Paul Licameli
6ae8a656ab Rewrote escape key handling, more like other Track Panel key handlers
... and removed some abandoned spectral editing code
2015-05-29 21:13:59 -04:00
Leland Lucius
0ef7ccb1d1 Fix permissions...not sure why this was happening though 2015-05-29 19:49:28 -05:00
David Bailes
5c67bc38b3 Add a field to the status bar to show the state of Audacity, eg play/record/play pause. This is useful so that screen readers can easily read audacitys state. 2015-05-29 17:47:43 +01:00
Paul Licameli
6810095509 Removed some functions never called, code never reached, fields never used 2015-05-29 00:13:50 -04:00
Paul Licameli
c84eeabe97 Bug 986 and other changes for more consistent zoom all and zoom fit...
... when there is audio before time zero.
2015-05-28 20:22:42 -04:00
Paul Licameli
0bfac5db40 Two colored time ruler, when scrolling past zero enabled. 2015-05-28 17:07:42 -04:00
Paul Licameli
f07a487e47 Bug977: Enable new scrolling limits as a Tracks preference, default off. 2015-05-27 18:47:03 -04:00
Paul Licameli
fa3f91b38d Horizontal scrolling snaps 0 to left edge and guarantees it is reachable 2015-05-26 21:28:22 -04:00
Paul-Licameli
bdc2839112 Preliminaries for bug 900
Create WaveTrackCache as a utility class but don't use it anywhere yet.

The possible minor performance problem with effects is fixed by changes
in WaveTrack::GetBestBlockSize().
2015-05-26 20:02:37 -04:00
Paul Licameli
5c62b80bc4 Defined EXPERIMENTAL_SCROLLING LIMITS
When it is enabled, the project can scroll up to one-half of a screenful
beyond time zero or the maximum track time.  I was careful to disable selection
of negative times.

This is motivated by the smooth scrolling scrub.  It behaves more sensibly at
the extremes.  It can still keep the play indicator centered.

Also removed an unused member of ViewInfo.
2015-05-24 13:38:54 -04:00
Leland Lucius
b307ca01d2 Fix include case 2015-05-24 06:31:30 -05:00
Leland Lucius
cd11ddea43 Fix bug #883 2015-05-24 06:24:27 -05:00
Leland Lucius
913cfe23b4 Fix for bug #879 2015-05-17 01:02:52 -05:00
Steve Daulton
b9dd3e64c6 Fixes for bug 844 2015-05-15 21:17:24 +01:00
Daniel Winzen
759ff8cd0d Performance improvements 2015-04-23 16:07:25 +02:00
Leland Lucius
0c0650588a Allow recovery of 2.1.0 or earlier autosave files 2015-04-19 00:36:55 -05:00
Leland Lucius
3e1fbcd5ec Additional autosave speed improvement and 1 fix
This changes the autosave XML file to a binary representation
during writing to speed up autosave processing.  A lot of the
time used during autosave is a result of having to convert and
print all of the values to the XML file.

Writing the same information, but in binary format, reduces
all of that to just the bare essentials and the actual write
I/O.

During recovery, the binary file is read and converted to
the real xML representation and processing happens as it
did before.

It is a noticeable difference with very long or many tracks.

The included fix has to do with append recording.

Say you have 3 tracks and you want to append recorded audio
to the middle track.  Sometime later Audacity crashes and
upon recovery, the recorded audio is actually appended to
the third track, not the second one.

This fixes that by adding an "autosaveid" to each track as
it is written to the autosave file.  The same ID is written
to the recording recovery appends to the autosave file.

Then, during recovery, the IDs are matched up and the audio
gets appended to the proper track.

These autosaveid attributes are only present in the autosave
file and not in saved project files.
2015-04-17 16:58:26 -05:00
James Crook
6a84f657c3 Added missing #include "Diags.h" 2015-04-17 22:53:58 +01:00
James Crook
13f8333873 First use of Diags.
Refined the Diags Macros, and used to actually monitor timings.
2015-04-17 22:43:14 +01:00
Paul-Licameli
2b85d0edb4 Preliminary function argument list changes and comments, for scrubbing project
In particular, use an options structure for AudioIO::StartStream to simplify
calls

ControlToolBar::PlayPlayRegion also takes that structure as an argument, and a
SelectedRegion instead of two times

And other changes
2015-04-17 02:25:39 -04:00
Leland Lucius
8fbfa460c4 Migrating the remaining effects
This brings the builtin, LV2, and VAMP effects inline with the
Audio Units, LADSPA, and VST effects.  All effects now share
a common UI.

This gives all effects (though not implemented for all):

User and factory preset capability
Preset import/export capability
Shared or private configuration options

Builtin effects can now be migrated to RTP, depending on algorithm.
LV2 effects now support graphical interfaces if the plugin supplies one.
Nyquist prompt enhanced to provide some features of the Nyquist Workbench.

It may not look like it, but this was a LOT of work, so trust me, there
WILL be problems and everything effect related should be suspect.  Keep
a sharp eye (or two) open.
2015-04-16 23:36:28 -05:00
david avery
0319f6ea51 merging wx3 changes 2015-04-12 23:52:32 -06:00
Paul-Licameli
7d6de21e3a Enh809 - Add persistency of spectral selections, including those in labels 2015-04-10 15:20:50 -04:00
Paul-Licameli
5d19887da6 Bug812 - Vertical scrollbar position should be persistent too, as is horizontal
Effective but perhaps inelegant fix.
2015-04-10 15:20:32 -04:00
Leland Lucius
2457579091 Bug 765 - Delays using Edit commands and Draw Tool in long projects
A 4hr track used to take about 20s to cut a few samples. This is now significantly improved, to around 3s. Leland did this by

(a) moving the size calculation to when we examine the undo history, so it isn't slowing down the edits.
(b) in size calculation, using sizes that are cached rather than going to disk to find the sizes.
(c) writing the autosave file which is to an FFIle to a string first, i.e. using XMLStringWriter as a buffer for XMLFileWriter.

Step (c) may also make autosave marginally safer, as the risk of a partially updated autosave file is reduced.
2015-04-07 12:20:50 +01:00
Paul Licameli
e9537fccb8 Bug897 - Time ruler is not redrawn for zoom or horizontal scroll when play region is locked
Added a Refresh() to fix this.
2015-04-05 22:27:35 +01:00
lllucius
f60afbb8da Fix disk space checking to prevent error message
The error message only happens in debug builds, but the cause of
the message still happens in release builds.  Basically, the temporary
project directory may not yet be created if the person is only monitoring.
2015-01-06 16:16:01 +00:00
stevethefiddle@gmail.com
c8cabab88b Better fix for bug 802. 2015-01-05 11:07:55 +00:00
lllucius
f5f3c5135f Make sure display refreshes after audio I/O stops
What looked simple in r13811 was not so simple apparently.
(We REALLY need a gAudioIO->IsCapturing())
2014-12-29 22:28:32 +00:00
lllucius
204aa37716 Only push state if recording, not when monitoring 2014-12-29 20:26:07 +00:00
lllucius
c305724561 Fix for bug #806
This was my bad.  I'd reset the number of capture channels
in AudioIO when the stream was stopped.  Unfortunately, two
methods depended on it being valid AFTER the stream had
stopped.

Those methods, TrackPanel::OnTimer and AudacityProjecT::OnCloseWindow,
were using it as an indicator if recording had been taking place
before they stopped the stream.  They then flushed the tracks, pushed
the state onto the undo stack and did some other post-recording tasks.

Turns out that the tracks are already flushed as part of the normal
AudioIO::StopStream processing, so that was redundant.

And, instead of duplicating the process, I've relocated most of each
methods processing to AudacityProject::OnAudioIOStopRecording.
2014-12-28 08:53:57 +00:00
lllucius
9bbc261321 Attempt #2 at taming the meter toolbars
It corrects several "multiple project" problems with the
meter toolbars and meters.

In addition, there was a "multiple project" issue where
the transport buttons didn't disable properly in the
non-active project.
2014-12-19 16:38:56 +00:00
lllucius
fe42e881a5 First stab at taming the meter toolbars
This should correct at least a couple of the reported
issues.  And it also has some fixes in for multiple
project support.
2014-12-17 19:16:08 +00:00
lllucius
a0370e8faa Fix for startup crash on Windows 8
Don't know why it didn't crash on w7...should have...
2014-12-08 14:32:56 +00:00