Fix minor typos
This commit is contained in:
parent
f420a546a0
commit
d1ada5f08c
|
@ -209,7 +209,7 @@ class wxWindow;
|
||||||
|
|
||||||
// These macros are used widely, so declared here.
|
// These macros are used widely, so declared here.
|
||||||
#define QUANTIZED_TIME(time, rate) (floor(((double)(time) * (rate)) + 0.5) / (rate))
|
#define QUANTIZED_TIME(time, rate) (floor(((double)(time) * (rate)) + 0.5) / (rate))
|
||||||
// dB - linear amplitude convesions
|
// dB - linear amplitude conversions
|
||||||
#define DB_TO_LINEAR(x) (pow(10.0, (x) / 20.0))
|
#define DB_TO_LINEAR(x) (pow(10.0, (x) / 20.0))
|
||||||
#define LINEAR_TO_DB(x) (20.0 * log10(x))
|
#define LINEAR_TO_DB(x) (20.0 * log10(x))
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ It handles initialization and termination by subclassing wxApp.
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
// This may be used to debug memory leaks.
|
// This may be used to debug memory leaks.
|
||||||
// See: Visual Leak Dectector @ http://vld.codeplex.com/
|
// See: Visual Leak Detector @ http://vld.codeplex.com/
|
||||||
#include <vld.h>
|
#include <vld.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1384,7 +1384,7 @@ bool AudacityApp::OnInit()
|
||||||
std::shared_ptr< wxCmdLineParser > parser{ ParseCommandLine().release() };
|
std::shared_ptr< wxCmdLineParser > parser{ ParseCommandLine().release() };
|
||||||
if (!parser)
|
if (!parser)
|
||||||
{
|
{
|
||||||
// Either user requested help or a parsing error occured
|
// Either user requested help or a parsing error occurred
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1886,7 +1886,7 @@ bool AudacityApp::CreateSingleInstanceChecker(const wxString &dir)
|
||||||
|
|
||||||
mIPCServ.reset();
|
mIPCServ.reset();
|
||||||
|
|
||||||
// Try twice to either become the server or make a connnection to one. If
|
// Try twice to either become the server or make a connection to one. If
|
||||||
// both attempts fail, then there's something wrong that we can't deal with,
|
// both attempts fail, then there's something wrong that we can't deal with,
|
||||||
// like insufficient access to create the socket, no memory, etc.
|
// like insufficient access to create the socket, no memory, etc.
|
||||||
for (int attempts = 0; attempts < 2; ++attempts)
|
for (int attempts = 0; attempts < 2; ++attempts)
|
||||||
|
|
|
@ -2054,7 +2054,7 @@ void AudioIO::PrepareMidiIterator(bool send, double offset)
|
||||||
// instead of initializing with an Alg_seq, we use begin_seq()
|
// instead of initializing with an Alg_seq, we use begin_seq()
|
||||||
// below to add ALL Alg_seq's.
|
// below to add ALL Alg_seq's.
|
||||||
mIterator = std::make_unique<Alg_iterator>(nullptr, false);
|
mIterator = std::make_unique<Alg_iterator>(nullptr, false);
|
||||||
// Iterator not yet intialized, must add each track...
|
// Iterator not yet initialized, must add each track...
|
||||||
for (i = 0; i < nTracks; i++) {
|
for (i = 0; i < nTracks; i++) {
|
||||||
const auto t = mMidiPlaybackTracks[i].get();
|
const auto t = mMidiPlaybackTracks[i].get();
|
||||||
Alg_seq_ptr seq = &t->GetSeq();
|
Alg_seq_ptr seq = &t->GetSeq();
|
||||||
|
@ -4389,7 +4389,7 @@ int AudioIoCallback::AudioCallback(const void *inputBuffer, void *outputBuffer,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// ------ MEMORY ALLOCATIONS -----------------------------------------------
|
// ------ MEMORY ALLOCATIONS -----------------------------------------------
|
||||||
// tempFloats will be a resusable scratch pad for (possibly format converted)
|
// tempFloats will be a reusable scratch pad for (possibly format converted)
|
||||||
// audio data. One temporary use is for the InputMeter data.
|
// audio data. One temporary use is for the InputMeter data.
|
||||||
const auto numPlaybackChannels = mNumPlaybackChannels;
|
const auto numPlaybackChannels = mNumPlaybackChannels;
|
||||||
const auto numCaptureChannels = mNumCaptureChannels;
|
const auto numCaptureChannels = mNumCaptureChannels;
|
||||||
|
|
|
@ -700,7 +700,7 @@ public:
|
||||||
* audacity actually runs the audio I/O stream at. if there is no suitable
|
* audacity actually runs the audio I/O stream at. if there is no suitable
|
||||||
* rate available from the hardware, it returns 0.
|
* rate available from the hardware, it returns 0.
|
||||||
* The sampleRate argument gives the desired sample rate (the rate of the
|
* The sampleRate argument gives the desired sample rate (the rate of the
|
||||||
* audio to be handeled, i.e. the currently Project Rate).
|
* audio to be handled, i.e. the currently Project Rate).
|
||||||
* capturing is true if the stream is capturing one or more audio channels,
|
* capturing is true if the stream is capturing one or more audio channels,
|
||||||
* and playing is true if one or more channels are being played. */
|
* and playing is true if one or more channels are being played. */
|
||||||
double GetBestRate(bool capturing, bool playing, double sampleRate);
|
double GetBestRate(bool capturing, bool playing, double sampleRate);
|
||||||
|
@ -730,7 +730,7 @@ private:
|
||||||
* currently in use (for many reasons). The number of Capture and Playback
|
* currently in use (for many reasons). The number of Capture and Playback
|
||||||
* channels requested includes an allocation for doing software playthrough
|
* channels requested includes an allocation for doing software playthrough
|
||||||
* if necessary. The captureFormat is used for recording only, the playback
|
* if necessary. The captureFormat is used for recording only, the playback
|
||||||
* being floating point always. Returns true if the stream opened sucessfully
|
* being floating point always. Returns true if the stream opened successfully
|
||||||
* and false if it did not. */
|
* and false if it did not. */
|
||||||
bool StartPortAudioStream(const AudioIOStartStreamOptions &options,
|
bool StartPortAudioStream(const AudioIOStartStreamOptions &options,
|
||||||
unsigned int numPlaybackChannels,
|
unsigned int numPlaybackChannels,
|
||||||
|
|
|
@ -1042,7 +1042,7 @@ wxString AudioIOBase::GetDeviceInfo()
|
||||||
s << XO("%d - %s\n").Format( i, name );
|
s << XO("%d - %s\n").Format( i, name );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Determine mixer capabilities - it it doesn't support either
|
// Determine mixer capabilities - if it doesn't support either
|
||||||
// input or output, we emulate them (by multiplying this value
|
// input or output, we emulate them (by multiplying this value
|
||||||
// by all incoming/outgoing samples)
|
// by all incoming/outgoing samples)
|
||||||
|
|
||||||
|
|
|
@ -187,7 +187,7 @@ bool MacroCommands::ReadMacro(const wxString & macro)
|
||||||
if (lines > 0) {
|
if (lines > 0) {
|
||||||
for (int i = 0; i < lines; i++) {
|
for (int i = 0; i < lines; i++) {
|
||||||
|
|
||||||
// Find the command name terminator...ingore line if not found
|
// Find the command name terminator...ignore line if not found
|
||||||
int splitAt = tf[i].Find(wxT(':'));
|
int splitAt = tf[i].Find(wxT(':'));
|
||||||
if (splitAt < 0) {
|
if (splitAt < 0) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -722,7 +722,7 @@ bool MacroCommands::ApplySpecialCommand(
|
||||||
}
|
}
|
||||||
// end CLEANSPEECH remnant
|
// end CLEANSPEECH remnant
|
||||||
|
|
||||||
/// DoAudacityCommand() takes a PluginID and executes the assocated command.
|
/// DoAudacityCommand() takes a PluginID and executes the associated command.
|
||||||
///
|
///
|
||||||
/// At the moment flags are used only to indicate whether to prompt for
|
/// At the moment flags are used only to indicate whether to prompt for
|
||||||
/// parameters
|
/// parameters
|
||||||
|
|
|
@ -352,7 +352,7 @@ void BenchmarkDialog::OnRun( wxCommandEvent & WXUNUSED(event))
|
||||||
gPrefs->Write(wxT("/GUI/EditClipCanMove"), false);
|
gPrefs->Write(wxT("/GUI/EditClipCanMove"), false);
|
||||||
gPrefs->Flush();
|
gPrefs->Flush();
|
||||||
|
|
||||||
// Rememebr the old blocksize, so that we can restore it later.
|
// Remember the old blocksize, so that we can restore it later.
|
||||||
auto oldBlockSize = Sequence::GetMaxDiskBlockSize();
|
auto oldBlockSize = Sequence::GetMaxDiskBlockSize();
|
||||||
Sequence::SetMaxDiskBlockSize(blockSize * 1024);
|
Sequence::SetMaxDiskBlockSize(blockSize * 1024);
|
||||||
|
|
||||||
|
|
|
@ -588,7 +588,7 @@ size_t BlockFile::CommonReadData(
|
||||||
format == int16Sample &&
|
format == int16Sample &&
|
||||||
sf_subtype_is_integer(info.format)) {
|
sf_subtype_is_integer(info.format)) {
|
||||||
// If both the src and dest formats are integer formats,
|
// If both the src and dest formats are integer formats,
|
||||||
// read integers directly from the file, comversions not needed
|
// read integers directly from the file, conversions not needed
|
||||||
framesRead = SFCall<sf_count_t>(
|
framesRead = SFCall<sf_count_t>(
|
||||||
sf_readf_short, sf.get(), (short *)data, len);
|
sf_readf_short, sf.get(), (short *)data, len);
|
||||||
}
|
}
|
||||||
|
|
|
@ -213,8 +213,8 @@ static void AddSources(int deviceIndex, int rate, std::vector<DeviceSourceMap> *
|
||||||
// If the device is for input, open a stream so we can use portmixer to query
|
// If the device is for input, open a stream so we can use portmixer to query
|
||||||
// the number of inputs. We skip this for outputs because there are no 'sources'
|
// the number of inputs. We skip this for outputs because there are no 'sources'
|
||||||
// and some platforms (e.g. XP) have the same device for input and output, (while
|
// and some platforms (e.g. XP) have the same device for input and output, (while
|
||||||
// Vista/Win7 seperate these into two devices with the same names (but different
|
// Vista/Win7 separate these into two devices with the same names (but different
|
||||||
// portaudio indecies)
|
// portaudio indices)
|
||||||
// Also, for mapper devices we don't want to keep any sources, so check for it here
|
// Also, for mapper devices we don't want to keep any sources, so check for it here
|
||||||
if (isInput && !IsInputDeviceAMapperDevice(info)) {
|
if (isInput && !IsInputDeviceAMapperDevice(info)) {
|
||||||
if (info)
|
if (info)
|
||||||
|
@ -279,7 +279,7 @@ void DeviceManager::Rescan()
|
||||||
// FIXME: TRAP_ERR PaErrorCode not handled in ReScan()
|
// FIXME: TRAP_ERR PaErrorCode not handled in ReScan()
|
||||||
int nDevices = Pa_GetDeviceCount();
|
int nDevices = Pa_GetDeviceCount();
|
||||||
|
|
||||||
//The heirarchy for devices is Host/device/source.
|
//The hierarchy for devices is Host/device/source.
|
||||||
//Some newer systems aggregate this.
|
//Some newer systems aggregate this.
|
||||||
//So we need to call port mixer for every device to get the sources
|
//So we need to call port mixer for every device to get the sources
|
||||||
for (int i = 0; i < nDevices; i++) {
|
for (int i = 0; i < nDevices; i++) {
|
||||||
|
|
|
@ -896,7 +896,7 @@ bool DirManager::AssignFile(wxFileNameWrapper &fileName,
|
||||||
wxDir checkit(dir.GetFullPath());
|
wxDir checkit(dir.GetFullPath());
|
||||||
if(!checkit.IsOpened()) return FALSE;
|
if(!checkit.IsOpened()) return FALSE;
|
||||||
|
|
||||||
// this code is only valid if 'value' has no extention; that
|
// this code is only valid if 'value' has no extension; that
|
||||||
// means, effectively, AssignFile may be called with 'diskcheck'
|
// means, effectively, AssignFile may be called with 'diskcheck'
|
||||||
// set to true only if called from MakeFileBlockName().
|
// set to true only if called from MakeFileBlockName().
|
||||||
|
|
||||||
|
@ -1105,7 +1105,7 @@ wxFileNameWrapper DirManager::MakeBlockFileName()
|
||||||
|
|
||||||
while(1){
|
while(1){
|
||||||
|
|
||||||
/* blockfiles are divided up into heirarchical directories.
|
/* blockfiles are divided up into hierarchical directories.
|
||||||
Each toplevel directory is represented by "e" + two unique
|
Each toplevel directory is represented by "e" + two unique
|
||||||
hexadecimal digits, for a total possible number of 256
|
hexadecimal digits, for a total possible number of 256
|
||||||
toplevels. Each toplevel contains up to 256 subdirs named
|
toplevels. Each toplevel contains up to 256 subdirs named
|
||||||
|
|
|
@ -283,7 +283,7 @@ void Envelope::CopyRange(const Envelope &orig, size_t begin, size_t end)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the final point if it needs interpolated representation
|
// Create the final point if it needs interpolated representation
|
||||||
// If the last point of e was exatly at t1, this effectively copies it too.
|
// If the last point of e was exactly at t1, this effectively copies it too.
|
||||||
if (mTrackLen > 0 && i < len)
|
if (mTrackLen > 0 && i < len)
|
||||||
AddPointAtEnd( mTrackLen, orig.GetValue(mOffset + mTrackLen));
|
AddPointAtEnd( mTrackLen, orig.GetValue(mOffset + mTrackLen));
|
||||||
}
|
}
|
||||||
|
|
|
@ -316,7 +316,7 @@ bool EnvelopeEditor::HandleDragging(const wxMouseEvent & event, wxRect & r,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Exit dragging mode and delete dragged point if neccessary.
|
// Exit dragging mode and delete dragged point if necessary.
|
||||||
bool EnvelopeEditor::HandleMouseButtonUp()
|
bool EnvelopeEditor::HandleMouseButtonUp()
|
||||||
{
|
{
|
||||||
mEnvelope.ClearDragPoint();
|
mEnvelope.ClearDragPoint();
|
||||||
|
|
|
@ -430,12 +430,12 @@ extern "C" {
|
||||||
//
|
//
|
||||||
// The FFMPEG_FUNCTION_WITH_RETURN takes 4 arguments:
|
// The FFMPEG_FUNCTION_WITH_RETURN takes 4 arguments:
|
||||||
// 1) The return type <---|
|
// 1) The return type <---|
|
||||||
// 2) The function name | Taken from the FFmpeg funciton prototype
|
// 2) The function name | Taken from the FFmpeg function prototype
|
||||||
// 3) The function arguments <---|
|
// 3) The function arguments <---|
|
||||||
// 4) The argument list to pass to the real function
|
// 4) The argument list to pass to the real function
|
||||||
//
|
//
|
||||||
// The FFMPEG_FUNCTION_NO_RETURN takes 3 arguments:
|
// The FFMPEG_FUNCTION_NO_RETURN takes 3 arguments:
|
||||||
// 1) The function name <---| Taken from the FFmpeg funciton prototype
|
// 1) The function name <---| Taken from the FFmpeg function prototype
|
||||||
// 2) The function arguments <---|
|
// 2) The function arguments <---|
|
||||||
// 3) The argument list to pass to the real function
|
// 3) The argument list to pass to the real function
|
||||||
//
|
//
|
||||||
|
|
|
@ -72,7 +72,7 @@ wxString sf_header_shortname(int format);
|
||||||
/** @brief Get the most common file extension for the given format
|
/** @brief Get the most common file extension for the given format
|
||||||
*
|
*
|
||||||
* AND the given format with SF_FORMAT_TYPEMASK to get just the container
|
* AND the given format with SF_FORMAT_TYPEMASK to get just the container
|
||||||
* format, then retreive the most common extension using SFC_GET_FORMAT_INFO.
|
* format, then retrieve the most common extension using SFC_GET_FORMAT_INFO.
|
||||||
* @param format the libsndfile format to get the name for (only the container
|
* @param format the libsndfile format to get the name for (only the container
|
||||||
* part is used) */
|
* part is used) */
|
||||||
wxString sf_header_extension(int format);
|
wxString sf_header_extension(int format);
|
||||||
|
|
|
@ -1012,7 +1012,7 @@ void FrequencyPlotDialog::Recalc()
|
||||||
// In wxMac, the skipped window MUST be a top level window. I'd originally made it
|
// In wxMac, the skipped window MUST be a top level window. I'd originally made it
|
||||||
// just the mProgress window with the idea of preventing user interaction with the
|
// just the mProgress window with the idea of preventing user interaction with the
|
||||||
// controls while the plot was being recalculated. This doesn't appear to be necessary
|
// controls while the plot was being recalculated. This doesn't appear to be necessary
|
||||||
// so just use the the top level window instead.
|
// so just use the top level window instead.
|
||||||
{
|
{
|
||||||
Optional<wxWindowDisabler> blocker;
|
Optional<wxWindowDisabler> blocker;
|
||||||
if (IsShown())
|
if (IsShown())
|
||||||
|
|
|
@ -63,5 +63,5 @@ std::unique_ptr<wxImage> CreateSysBackground(int width, int height, int offset,
|
||||||
// Pastes one image into another at specified location.
|
// Pastes one image into another at specified location.
|
||||||
void PasteSubImage( wxImage * pDest, wxImage * pSrc, int x, int y );
|
void PasteSubImage( wxImage * pDest, wxImage * pSrc, int x, int y );
|
||||||
|
|
||||||
// Gets a rectangle from within anothe rimage, INCLUDING the alpha channel
|
// Gets a rectangle from within another image, INCLUDING the alpha channel
|
||||||
wxImage GetSubImageWithAlpha( const wxImage & Src, const wxRect &rect );
|
wxImage GetSubImageWithAlpha( const wxImage & Src, const wxRect &rect );
|
||||||
|
|
|
@ -65,7 +65,7 @@ extern AUDACITY_DLL_API const wxString& GetCustomSubstitution(const wxString& st
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// The two string arugments will go to the .pot file, as
|
// The two string arguments will go to the .pot file, as
|
||||||
// msgid sing
|
// msgid sing
|
||||||
// msgid_plural plural
|
// msgid_plural plural
|
||||||
//
|
//
|
||||||
|
@ -135,7 +135,7 @@ public:
|
||||||
*/
|
*/
|
||||||
static bool SanitiseFilename(wxString &name, const wxString &sub);
|
static bool SanitiseFilename(wxString &name, const wxString &sub);
|
||||||
|
|
||||||
/** \brief Remove accelerator charactors from strings
|
/** \brief Remove accelerator characters from strings
|
||||||
*
|
*
|
||||||
* Utility function - takes a translatable string to be used as a menu item,
|
* Utility function - takes a translatable string to be used as a menu item,
|
||||||
* for example _("&Splash...\tAlt+S"), and strips all of the menu
|
* for example _("&Splash...\tAlt+S"), and strips all of the menu
|
||||||
|
|
|
@ -222,7 +222,7 @@ void LyricsPanel::Finish(double finalT)
|
||||||
mHighlightTextCtrl->ShowPosition(0);
|
mHighlightTextCtrl->ShowPosition(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Binary-search for the syllable syllable whose char0 <= startChar <= char1.
|
// Binary-search for the syllable whose char0 <= startChar <= char1.
|
||||||
int LyricsPanel::FindSyllable(long startChar)
|
int LyricsPanel::FindSyllable(long startChar)
|
||||||
{
|
{
|
||||||
int i1, i2;
|
int i1, i2;
|
||||||
|
|
|
@ -20,7 +20,7 @@ For example DEFINE_IMAGE will generate:
|
||||||
|
|
||||||
- extern int name;
|
- extern int name;
|
||||||
- int name = -1;
|
- int name = -1;
|
||||||
- RegisterImage( name, initiialiser, textual_name);
|
- RegisterImage( name, initialiser, textual_name);
|
||||||
|
|
||||||
On three different passes. We control which by defining one of
|
On three different passes. We control which by defining one of
|
||||||
THEME_INITS or THEME_DECLARATIONS or neither of these.
|
THEME_INITS or THEME_DECLARATIONS or neither of these.
|
||||||
|
|
|
@ -203,7 +203,7 @@ public:
|
||||||
void UpdatePrefs() override;
|
void UpdatePrefs() override;
|
||||||
|
|
||||||
// Add clusters for any tracks we're not yet showing.
|
// Add clusters for any tracks we're not yet showing.
|
||||||
// Update pointers for tracks we're aleady showing.
|
// Update pointers for tracks we're already showing.
|
||||||
void UpdateTrackClusters();
|
void UpdateTrackClusters();
|
||||||
|
|
||||||
int GetTrackClustersWidth();
|
int GetTrackClustersWidth();
|
||||||
|
|
|
@ -1069,7 +1069,7 @@ void NoteTrack::ZoomAllNotes()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!hasNotes) {
|
if (!hasNotes) {
|
||||||
// Semi-arbitary default values:
|
// Semi-arbitrary default values:
|
||||||
minPitch = 48;
|
minPitch = 48;
|
||||||
maxPitch = 72;
|
maxPitch = 72;
|
||||||
}
|
}
|
||||||
|
@ -1102,7 +1102,7 @@ NoteTrackDisplayData::NoteTrackDisplayData(const NoteTrack* track, const wxRect
|
||||||
}
|
}
|
||||||
// Effective space, excluding the margins and the lines between some notes
|
// Effective space, excluding the margins and the lines between some notes
|
||||||
auto effectiveHeight = r.height - (2 * (mMargin + 1)) - numC - numF;
|
auto effectiveHeight = r.height - (2 * (mMargin + 1)) - numC - numF;
|
||||||
// Guarenteed that both the bottom and top notes will be visible
|
// Guaranteed that both the bottom and top notes will be visible
|
||||||
// (assuming that the clamping below does not happen)
|
// (assuming that the clamping below does not happen)
|
||||||
mPitchHeight = effectiveHeight / ((float) span);
|
mPitchHeight = effectiveHeight / ((float) span);
|
||||||
|
|
||||||
|
|
|
@ -138,7 +138,7 @@ public:
|
||||||
|
|
||||||
/// Zooms out a constant factor (subject to zoom limits)
|
/// Zooms out a constant factor (subject to zoom limits)
|
||||||
void ZoomOut(const wxRect &rect, int y) { Zoom(rect, y, 1.0f / ZoomStep, true); }
|
void ZoomOut(const wxRect &rect, int y) { Zoom(rect, y, 1.0f / ZoomStep, true); }
|
||||||
/// Zooms in a contant factor (subject to zoom limits)
|
/// Zooms in a constant factor (subject to zoom limits)
|
||||||
void ZoomIn(const wxRect &rect, int y) { Zoom(rect, y, ZoomStep, true); }
|
void ZoomIn(const wxRect &rect, int y) { Zoom(rect, y, ZoomStep, true); }
|
||||||
/// Zoom the note track around y.
|
/// Zoom the note track around y.
|
||||||
/// If center is true, the result will be centered at y.
|
/// If center is true, the result will be centered at y.
|
||||||
|
|
|
@ -50,7 +50,7 @@ TranslatableString PitchName(
|
||||||
|
|
||||||
// PitchName_Absolute does the same thing as PitchName, but appends
|
// PitchName_Absolute does the same thing as PitchName, but appends
|
||||||
// the octave number, e.g., instead of "C" it will return "C4"
|
// the octave number, e.g., instead of "C" it will return "C4"
|
||||||
// if the dMIDInote corresonds to middle C, i.e., is 60.
|
// if the dMIDInote corresponds to middle C, i.e., is 60.
|
||||||
TranslatableString PitchName_Absolute(
|
TranslatableString PitchName_Absolute(
|
||||||
const double dMIDInote,
|
const double dMIDInote,
|
||||||
const PitchNameChoice choice = PitchNameChoice::Sharps);
|
const PitchNameChoice choice = PitchNameChoice::Sharps);
|
||||||
|
|
|
@ -41,7 +41,7 @@ public:
|
||||||
static const FilePath &GetExecutablePath();
|
static const FilePath &GetExecutablePath();
|
||||||
|
|
||||||
//
|
//
|
||||||
// Audacity treats the / as a file seperator always for Mac OS,
|
// Audacity treats the / as a file separator always for Mac OS,
|
||||||
// however /'s are allowed in the filename. In order for /'s to
|
// however /'s are allowed in the filename. In order for /'s to
|
||||||
// work they muse be treated as :'s. To facilitate this, this
|
// work they muse be treated as :'s. To facilitate this, this
|
||||||
// function should be called when opening or saving a file on
|
// function should be called when opening or saving a file on
|
||||||
|
|
|
@ -124,7 +124,7 @@ private:
|
||||||
|
|
||||||
// Common
|
// Common
|
||||||
|
|
||||||
// Among other purposes, PluginDescriptor acts as the resouce handle,
|
// Among other purposes, PluginDescriptor acts as the resource handle,
|
||||||
// or smart pointer, to a resource created in a plugin library, and is responsible
|
// or smart pointer, to a resource created in a plugin library, and is responsible
|
||||||
// for a cleanup of this pointer.
|
// for a cleanup of this pointer.
|
||||||
ComponentInterface *mInstance;
|
ComponentInterface *mInstance;
|
||||||
|
|
|
@ -334,7 +334,7 @@ bool ProjectFileIO::HandleXMLTag(const wxChar *tag, const wxChar **attrs)
|
||||||
|
|
||||||
if (!bFileVersionFound ||
|
if (!bFileVersionFound ||
|
||||||
(fileVersion.length() != 5) || // expecting '1.1.0', for example
|
(fileVersion.length() != 5) || // expecting '1.1.0', for example
|
||||||
// JKC: I commentted out next line. IsGoodInt is not for
|
// JKC: I commented out next line. IsGoodInt is not for
|
||||||
// checking dotted numbers.
|
// checking dotted numbers.
|
||||||
//!XMLValueChecker::IsGoodInt(fileVersion) ||
|
//!XMLValueChecker::IsGoodInt(fileVersion) ||
|
||||||
(fileVersion > wxT(AUDACITY_FILE_FORMAT_VERSION)))
|
(fileVersion > wxT(AUDACITY_FILE_FORMAT_VERSION)))
|
||||||
|
@ -358,7 +358,7 @@ bool ProjectFileIO::HandleXMLTag(const wxChar *tag, const wxChar **attrs)
|
||||||
// KLUDGE: guess the true 'fileversion' by stripping away any '-beta-Rc' stuff on
|
// KLUDGE: guess the true 'fileversion' by stripping away any '-beta-Rc' stuff on
|
||||||
// audacityVersion.
|
// audacityVersion.
|
||||||
// It's fairly safe to do this as it has already been established that the
|
// It's fairly safe to do this as it has already been established that the
|
||||||
// puported file version was five chars long.
|
// supported file version was five chars long.
|
||||||
fileVersion = audacityVersion.Mid(0,5);
|
fileVersion = audacityVersion.Mid(0,5);
|
||||||
|
|
||||||
bool bIsOld = fileVersion < wxT(AUDACITY_FILE_FORMAT_VERSION);
|
bool bIsOld = fileVersion < wxT(AUDACITY_FILE_FORMAT_VERSION);
|
||||||
|
@ -459,7 +459,7 @@ void ProjectFileIO::WriteXML(
|
||||||
xmlFile.WriteAttr(wxT("datadir"), dirManager.GetDataFilesDir());
|
xmlFile.WriteAttr(wxT("datadir"), dirManager.GetDataFilesDir());
|
||||||
|
|
||||||
// Note that the code at the start assumes that if mFileName has a value
|
// Note that the code at the start assumes that if mFileName has a value
|
||||||
// then the file has been saved. This is not neccessarily true when
|
// then the file has been saved. This is not necessarily true when
|
||||||
// autosaving as it gets set by AddImportedTracks (presumably as a proposal).
|
// autosaving as it gets set by AddImportedTracks (presumably as a proposal).
|
||||||
// I don't think that mDirManager.projName gets set without a save so check that.
|
// I don't think that mDirManager.projName gets set without a save so check that.
|
||||||
if( !IsProjectSaved() )
|
if( !IsProjectSaved() )
|
||||||
|
|
|
@ -19,7 +19,7 @@ class wxString;
|
||||||
|
|
||||||
namespace ProjectFileIORegistry {
|
namespace ProjectFileIORegistry {
|
||||||
|
|
||||||
// Type of functions returning objects that intepret a part of the saved XML
|
// Type of functions returning objects that interpret a part of the saved XML
|
||||||
using TagHandlerFactory =
|
using TagHandlerFactory =
|
||||||
std::function< XMLTagHandler *( AudacityProject & ) >;
|
std::function< XMLTagHandler *( AudacityProject & ) >;
|
||||||
|
|
||||||
|
|
|
@ -360,7 +360,7 @@ bool ProjectFileManager::DoSave (const bool fromSaveAs,
|
||||||
auto &projectFileIO = ProjectFileIO::Get( proj );
|
auto &projectFileIO = ProjectFileIO::Get( proj );
|
||||||
const auto &settings = ProjectSettings::Get( proj );
|
const auto &settings = ProjectSettings::Get( proj );
|
||||||
|
|
||||||
wxASSERT_MSG(!bWantSaveCopy || fromSaveAs, "Copy Project SHOULD only be availabele from SaveAs");
|
wxASSERT_MSG(!bWantSaveCopy || fromSaveAs, "Copy Project SHOULD only be available from SaveAs");
|
||||||
|
|
||||||
// Some confirmation dialogs
|
// Some confirmation dialogs
|
||||||
if (!bWantSaveCopy)
|
if (!bWantSaveCopy)
|
||||||
|
@ -931,7 +931,7 @@ will be irreversibly overwritten.").Format( fName, fName );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Overwrite disalowed. The destination project is open in another window.
|
// Overwrite disallowed. The destination project is open in another window.
|
||||||
AudacityMessageDialog m(
|
AudacityMessageDialog m(
|
||||||
nullptr,
|
nullptr,
|
||||||
XO("The project will not saved because the selected project is open in another window.\nPlease try again and select an original name."),
|
XO("The project will not saved because the selected project is open in another window.\nPlease try again and select an original name."),
|
||||||
|
@ -1226,7 +1226,7 @@ void ProjectFileManager::OpenFile(const FilePath &fileNameArg, bool addtohistory
|
||||||
auto &window = ProjectWindow::Get( project );
|
auto &window = ProjectWindow::Get( project );
|
||||||
|
|
||||||
// On Win32, we may be given a short (DOS-compatible) file name on rare
|
// On Win32, we may be given a short (DOS-compatible) file name on rare
|
||||||
// occassions (e.g. stuff like "C:\PROGRA~1\AUDACI~1\PROJEC~1.AUP"). We
|
// occasions (e.g. stuff like "C:\PROGRA~1\AUDACI~1\PROJEC~1.AUP"). We
|
||||||
// convert these to long file name first.
|
// convert these to long file name first.
|
||||||
auto fileName = PlatformCompatibility::ConvertSlashInFileName(
|
auto fileName = PlatformCompatibility::ConvertSlashInFileName(
|
||||||
PlatformCompatibility::GetLongFileName(fileNameArg));
|
PlatformCompatibility::GetLongFileName(fileNameArg));
|
||||||
|
@ -1444,7 +1444,7 @@ void ProjectFileManager::OpenFile(const FilePath &fileNameArg, bool addtohistory
|
||||||
// Going through OnClose() may be overkill, but it's safe.
|
// Going through OnClose() may be overkill, but it's safe.
|
||||||
/*
|
/*
|
||||||
// There was an error in the load/check and the user
|
// There was an error in the load/check and the user
|
||||||
// explictly opted to close the project.
|
// explicitly opted to close the project.
|
||||||
mTracks->Clear(true);
|
mTracks->Clear(true);
|
||||||
mFileName = wxT("");
|
mFileName = wxT("");
|
||||||
SetProjectTitle();
|
SetProjectTitle();
|
||||||
|
@ -1598,7 +1598,7 @@ ProjectFileManager::AddImportedTracks(const FilePath &fileName,
|
||||||
// See bug #1224
|
// See bug #1224
|
||||||
// The track panel hasn't we been fully created, so the DoZoomFit() will not give
|
// The track panel hasn't we been fully created, so the DoZoomFit() will not give
|
||||||
// expected results due to a window width of zero. Should be safe to yield here to
|
// expected results due to a window width of zero. Should be safe to yield here to
|
||||||
// allow the creattion to complete. If this becomes a problem, it "might" be possible
|
// allow the creation to complete. If this becomes a problem, it "might" be possible
|
||||||
// to queue a dummy event to trigger the DoZoomFit().
|
// to queue a dummy event to trigger the DoZoomFit().
|
||||||
wxEventLoopBase::GetActive()->YieldFor(wxEVT_CATEGORY_UI | wxEVT_CATEGORY_USER_INPUT);
|
wxEventLoopBase::GetActive()->YieldFor(wxEVT_CATEGORY_UI | wxEVT_CATEGORY_USER_INPUT);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -444,7 +444,7 @@ unsigned operator()
|
||||||
|
|
||||||
// Disabled this code to fix Bug 1923 (tricky to wheel-zoom right of waveform).
|
// Disabled this code to fix Bug 1923 (tricky to wheel-zoom right of waveform).
|
||||||
#if 0
|
#if 0
|
||||||
// When zooming in in empty space, it's easy to 'lose' the waveform.
|
// When zooming in empty space, it's easy to 'lose' the waveform.
|
||||||
// This prevents it.
|
// This prevents it.
|
||||||
// IF zooming in
|
// IF zooming in
|
||||||
if (steps > 0)
|
if (steps > 0)
|
||||||
|
@ -574,7 +574,7 @@ ProjectWindow::ProjectWindow(wxWindow * parent, wxWindowID id,
|
||||||
mNextWindowID = NextID;
|
mNextWindowID = NextID;
|
||||||
|
|
||||||
// Two sub-windows need to be made before Init(),
|
// Two sub-windows need to be made before Init(),
|
||||||
// so that this construcator can complete, and then TrackPanel and
|
// so that this constructor can complete, and then TrackPanel and
|
||||||
// AdornedRulerPanel can retrieve those windows from this in their
|
// AdornedRulerPanel can retrieve those windows from this in their
|
||||||
// factory functions
|
// factory functions
|
||||||
|
|
||||||
|
@ -609,7 +609,7 @@ ProjectWindow::ProjectWindow(wxWindow * parent, wxWindowID id,
|
||||||
pPage = Factory.AddPage( pNotebook, _("Main Mix"));
|
pPage = Factory.AddPage( pNotebook, _("Main Mix"));
|
||||||
#else
|
#else
|
||||||
// Not using a notebook, so we place the track panel inside another panel,
|
// Not using a notebook, so we place the track panel inside another panel,
|
||||||
// this keeps the notebook code and normal code consistant and also
|
// this keeps the notebook code and normal code consistent and also
|
||||||
// paves the way for adding additional windows inside the track panel.
|
// paves the way for adding additional windows inside the track panel.
|
||||||
mMainPanel = safenew wxPanelWrapper(this, -1,
|
mMainPanel = safenew wxPanelWrapper(this, -1,
|
||||||
wxDefaultPosition,
|
wxDefaultPosition,
|
||||||
|
@ -843,7 +843,7 @@ void ProjectWindow::OnScrollRight()
|
||||||
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// This handles the event when the left direction button on the scrollbar is depresssed
|
/// This handles the event when the left direction button on the scrollbar is depressed
|
||||||
///
|
///
|
||||||
void ProjectWindow::OnScrollLeftButton(wxScrollEvent & /*event*/)
|
void ProjectWindow::OnScrollLeftButton(wxScrollEvent & /*event*/)
|
||||||
{
|
{
|
||||||
|
@ -864,7 +864,7 @@ void ProjectWindow::OnScrollLeftButton(wxScrollEvent & /*event*/)
|
||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
/// This handles the event when the right direction button on the scrollbar is depresssed
|
/// This handles the event when the right direction button on the scrollbar is depressed
|
||||||
///
|
///
|
||||||
void ProjectWindow::OnScrollRightButton(wxScrollEvent & /*event*/)
|
void ProjectWindow::OnScrollRightButton(wxScrollEvent & /*event*/)
|
||||||
{
|
{
|
||||||
|
@ -1010,7 +1010,7 @@ void ProjectWindow::FixScrollbars()
|
||||||
auto panelWidth = viewInfo.GetTracksUsableWidth();
|
auto panelWidth = viewInfo.GetTracksUsableWidth();
|
||||||
auto panelHeight = viewInfo.GetHeight();
|
auto panelHeight = viewInfo.GetHeight();
|
||||||
|
|
||||||
// (From Debian...at least I think this is the change cooresponding
|
// (From Debian...at least I think this is the change corresponding
|
||||||
// to this comment)
|
// to this comment)
|
||||||
//
|
//
|
||||||
// (2.) GTK critical warning "IA__gtk_range_set_range: assertion
|
// (2.) GTK critical warning "IA__gtk_range_set_range: assertion
|
||||||
|
|
|
@ -150,7 +150,7 @@ int SmallRB(int bits, int numberBits)
|
||||||
return ( (sSmallRBTable[*((unsigned char *)&bits)]<<8) + (sSmallRBTable[*(((unsigned char *)&bits)+1)]) )>>(16-numberBits);
|
return ( (sSmallRBTable[*((unsigned char *)&bits)]<<8) + (sSmallRBTable[*(((unsigned char *)&bits)+1)]) )>>(16-numberBits);
|
||||||
};
|
};
|
||||||
|
|
||||||
/* wrapper funcitons. If passed -1 function choice will be made locally */
|
/* wrapper functions. If passed -1 function choice will be made locally */
|
||||||
void RealFFTf1x(fft_type *buffer, FFTParam *h, int functionType)
|
void RealFFTf1x(fft_type *buffer, FFTParam *h, int functionType)
|
||||||
{
|
{
|
||||||
switch(functionType) {
|
switch(functionType) {
|
||||||
|
@ -1799,7 +1799,7 @@ void RealFFTf1xFastMathBR24(fft_type *buffer, FFTParam *h)
|
||||||
// vx.m128_f32[i]=((fft_type )SmallRB(iSinCosIndex+i,h->pow2Bits-1))*iToRad;
|
// vx.m128_f32[i]=((fft_type )SmallRB(iSinCosIndex+i,h->pow2Bits-1))*iToRad;
|
||||||
}
|
}
|
||||||
//"Warning C4701 potentially uninitialized local variable 'vx' " is OK.
|
//"Warning C4701 potentially uninitialized local variable 'vx' " is OK.
|
||||||
//vx is initilased component by component, and MSVC doesn't realize.
|
//vx is initialised component by component, and MSVC doesn't realize.
|
||||||
sincos_ps(vx, &sin4_2, &cos4_2);
|
sincos_ps(vx, &sin4_2, &cos4_2);
|
||||||
sin=-sin4_2.m128_f32[0];
|
sin=-sin4_2.m128_f32[0];
|
||||||
cos=-cos4_2.m128_f32[0];
|
cos=-cos4_2.m128_f32[0];
|
||||||
|
|
|
@ -17,7 +17,7 @@ enum {
|
||||||
|
|
||||||
struct FFTParam;
|
struct FFTParam;
|
||||||
|
|
||||||
/* wrapper funcitons. If passed -1 function choice will be made locally */
|
/* wrapper functions. If passed -1 function choice will be made locally */
|
||||||
void RealFFTf1x(fft_type *, FFTParam*, int functionType=-1);
|
void RealFFTf1x(fft_type *, FFTParam*, int functionType=-1);
|
||||||
void InverseRealFFTf1x(fft_type *, FFTParam*, int functionType=-1);
|
void InverseRealFFTf1x(fft_type *, FFTParam*, int functionType=-1);
|
||||||
void ReorderToTime1x(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut, int functionType=-1);
|
void ReorderToTime1x(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut, int functionType=-1);
|
||||||
|
|
|
@ -59,7 +59,7 @@ class Resample final
|
||||||
@param inBufferLen Length of the input buffer, in samples.
|
@param inBufferLen Length of the input buffer, in samples.
|
||||||
@param lastFlag Flag to indicate this is the last lot of input samples and
|
@param lastFlag Flag to indicate this is the last lot of input samples and
|
||||||
the buffer needs to be emptied out into the rate converter.
|
the buffer needs to be emptied out into the rate converter.
|
||||||
(unless lastFlag is true, we don't garuntee to process all the samples in
|
(unless lastFlag is true, we don't guarantee to process all the samples in
|
||||||
the input this time, we may leave some for next time)
|
the input this time, we may leave some for next time)
|
||||||
@param outBuffer Buffer to write output (converted) samples to.
|
@param outBuffer Buffer to write output (converted) samples to.
|
||||||
@param outBufferLen How big outBuffer is.
|
@param outBufferLen How big outBuffer is.
|
||||||
|
|
|
@ -150,7 +150,7 @@ void ReverseSamples(samplePtr buffer, sampleFormat format,
|
||||||
void InitDitherers();
|
void InitDitherers();
|
||||||
|
|
||||||
// These are so commonly done for processing samples in floating point form in memory,
|
// These are so commonly done for processing samples in floating point form in memory,
|
||||||
// let's have abbeviations.
|
// let's have abbreviations.
|
||||||
using Floats = ArrayOf<float>;
|
using Floats = ArrayOf<float>;
|
||||||
using FloatBuffers = ArraysOf<float>;
|
using FloatBuffers = ArraysOf<float>;
|
||||||
using Doubles = ArrayOf<double>;
|
using Doubles = ArrayOf<double>;
|
||||||
|
|
|
@ -17,8 +17,8 @@
|
||||||
\class Shuttle
|
\class Shuttle
|
||||||
\brief Moves data from one place to another, converting it as required.
|
\brief Moves data from one place to another, converting it as required.
|
||||||
|
|
||||||
Shuttle provides a base class for transfering parameter data into and
|
Shuttle provides a base class for transferring parameter data into and
|
||||||
out of clasess into some other structure. This is a common
|
out of classes into some other structure. This is a common
|
||||||
requirement and is needed for:
|
requirement and is needed for:
|
||||||
- Prefs data
|
- Prefs data
|
||||||
- Command line parameter data
|
- Command line parameter data
|
||||||
|
|
|
@ -327,7 +327,7 @@ wxCheckBox * ShuttleGuiBase::AddCheckBox( const TranslatableString &Prompt, bool
|
||||||
return pCheckBox;
|
return pCheckBox;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// For a consistant two-column layout we want labels on the left and
|
/// For a consistent two-column layout we want labels on the left and
|
||||||
/// controls on the right. CheckBoxes break that rule, so we fake it by
|
/// controls on the right. CheckBoxes break that rule, so we fake it by
|
||||||
/// placing a static text label and then a tick box with an empty label.
|
/// placing a static text label and then a tick box with an empty label.
|
||||||
wxCheckBox * ShuttleGuiBase::AddCheckBoxOnRight( const TranslatableString &Prompt, bool Selected)
|
wxCheckBox * ShuttleGuiBase::AddCheckBoxOnRight( const TranslatableString &Prompt, bool Selected)
|
||||||
|
@ -1967,7 +1967,7 @@ wxChoice *ShuttleGuiBase::TieChoice(
|
||||||
/// between gui and stack variable and stack variable and shuttle.
|
/// between gui and stack variable and stack variable and shuttle.
|
||||||
/// The Translated choices and default are integers, not Strings.
|
/// The Translated choices and default are integers, not Strings.
|
||||||
/// Behaves identically to the previous, but is meant for use when the choices
|
/// Behaves identically to the previous, but is meant for use when the choices
|
||||||
/// are non-exhaustive and there is a companion control for abitrary entry.
|
/// are non-exhaustive and there is a companion control for arbitrary entry.
|
||||||
/// @param Prompt The prompt shown beside the control.
|
/// @param Prompt The prompt shown beside the control.
|
||||||
/// @param SettingName The setting name as stored in gPrefs
|
/// @param SettingName The setting name as stored in gPrefs
|
||||||
/// @param Default The default integer value for this control
|
/// @param Default The default integer value for this control
|
||||||
|
|
|
@ -140,7 +140,7 @@ public:
|
||||||
|
|
||||||
// Utility function that combines a bitmap and a mask, both in XPM format.
|
// Utility function that combines a bitmap and a mask, both in XPM format.
|
||||||
wxImage MaskedImage( char const ** pXpm, char const ** pMask );
|
wxImage MaskedImage( char const ** pXpm, char const ** pMask );
|
||||||
// Utility functiuon that takes a 32 bit bitmap and makes it into an image.
|
// Utility function that takes a 32 bit bitmap and makes it into an image.
|
||||||
wxImage MakeImageWithAlpha( wxBitmap & Bmp );
|
wxImage MakeImageWithAlpha( wxBitmap & Bmp );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -589,7 +589,7 @@ public:
|
||||||
// If no function accepts the track, do nothing and return R{}
|
// If no function accepts the track, do nothing and return R{}
|
||||||
// if R is not void.
|
// if R is not void.
|
||||||
// If one of the functions invokes the call-through, then the next following
|
// If one of the functions invokes the call-through, then the next following
|
||||||
// applicable funtion is called.
|
// applicable function is called.
|
||||||
template< typename R = void, typename ...Functions >
|
template< typename R = void, typename ...Functions >
|
||||||
R TypeSwitch(const Functions &...functions)
|
R TypeSwitch(const Functions &...functions)
|
||||||
{
|
{
|
||||||
|
|
|
@ -272,7 +272,7 @@ void TrackArtist::UpdatePrefs()
|
||||||
// two steps down for every one across. This creates a pattern that repeats in
|
// two steps down for every one across. This creates a pattern that repeats in
|
||||||
// 5-step by 5-step boxes. Because we're only drawing in 5/25 possible positions
|
// 5-step by 5-step boxes. Because we're only drawing in 5/25 possible positions
|
||||||
// we have a grid spacing somewhat smaller than the image dimensions. Thus we
|
// we have a grid spacing somewhat smaller than the image dimensions. Thus we
|
||||||
// acheive lower density than with a square grid and eliminate edge cases where
|
// achieve lower density than with a square grid and eliminate edge cases where
|
||||||
// no tiles are displayed.
|
// no tiles are displayed.
|
||||||
//
|
//
|
||||||
// The pattern draws in tiles at (0,0), (2,1), (4,2), (1,3), and (3,4) in each
|
// The pattern draws in tiles at (0,0), (2,1), (4,2), (1,3), and (3,4) in each
|
||||||
|
@ -406,7 +406,7 @@ void TrackArt::DrawBackgroundWithSelection(
|
||||||
dc->SetPen(*wxTRANSPARENT_PEN);
|
dc->SetPen(*wxTRANSPARENT_PEN);
|
||||||
if (track->GetSelected() || track->IsSyncLockSelected())
|
if (track->GetSelected() || track->IsSyncLockSelected())
|
||||||
{
|
{
|
||||||
// Rectangles before, within, after the selction
|
// Rectangles before, within, after the selection
|
||||||
wxRect before = rect;
|
wxRect before = rect;
|
||||||
wxRect within = rect;
|
wxRect within = rect;
|
||||||
wxRect after = rect;
|
wxRect after = rect;
|
||||||
|
|
|
@ -43,7 +43,7 @@ namespace TrackArt {
|
||||||
TrackPanelDrawingContext &context, const wxRect &rect );
|
TrackPanelDrawingContext &context, const wxRect &rect );
|
||||||
|
|
||||||
// Helper: draws background with selection rect
|
// Helper: draws background with selection rect
|
||||||
void DrawBackgroundWithSelection(TrackPanelDrawingContext &contex,
|
void DrawBackgroundWithSelection(TrackPanelDrawingContext &context,
|
||||||
const wxRect &rect, const Track *track,
|
const wxRect &rect, const Track *track,
|
||||||
const wxBrush &selBrush, const wxBrush &unselBrush,
|
const wxBrush &selBrush, const wxBrush &unselBrush,
|
||||||
bool useSelection = true);
|
bool useSelection = true);
|
||||||
|
|
|
@ -99,7 +99,7 @@ is time to refresh some aspect of the screen.
|
||||||
|
|
||||||
This is a diagram of TrackPanel's division of one (non-stereo) track rectangle.
|
This is a diagram of TrackPanel's division of one (non-stereo) track rectangle.
|
||||||
Total height equals TrackView::GetHeight()'s value. Total width is the wxWindow's
|
Total height equals TrackView::GetHeight()'s value. Total width is the wxWindow's
|
||||||
width. Each charater that is not . represents one pixel.
|
width. Each character that is not . represents one pixel.
|
||||||
|
|
||||||
Inset space of this track, and top inset of the next track, are used to draw the
|
Inset space of this track, and top inset of the next track, are used to draw the
|
||||||
focus highlight.
|
focus highlight.
|
||||||
|
@ -814,7 +814,7 @@ void TrackPanel::RefreshTrack(Track *trk, bool refreshbacking)
|
||||||
|
|
||||||
|
|
||||||
/// This method overrides Refresh() of wxWindow so that the
|
/// This method overrides Refresh() of wxWindow so that the
|
||||||
/// boolean play indictaor can be set to false, so that an old play indicator that is
|
/// boolean play indicator can be set to false, so that an old play indicator that is
|
||||||
/// no longer there won't get XORed (to erase it), thus redrawing it on the
|
/// no longer there won't get XORed (to erase it), thus redrawing it on the
|
||||||
/// TrackPanel
|
/// TrackPanel
|
||||||
void TrackPanel::Refresh(bool eraseBackground /* = TRUE */,
|
void TrackPanel::Refresh(bool eraseBackground /* = TRUE */,
|
||||||
|
@ -1164,7 +1164,7 @@ void DrawTrackName(
|
||||||
/*
|
/*
|
||||||
|
|
||||||
The following classes define the subdivision of the area of the TrackPanel
|
The following classes define the subdivision of the area of the TrackPanel
|
||||||
into cells with differing reponses to mouse, keyboard, and scroll wheel
|
into cells with differing responses to mouse, keyboard, and scroll wheel
|
||||||
events.
|
events.
|
||||||
|
|
||||||
The classes defining the less inclusive areas are earlier, while those
|
The classes defining the less inclusive areas are earlier, while those
|
||||||
|
@ -1240,7 +1240,7 @@ struct VRulerAndChannel final : TrackPanelGroup {
|
||||||
wxCoord mLeftOffset;
|
wxCoord mLeftOffset;
|
||||||
};
|
};
|
||||||
|
|
||||||
// One or more sub-views of one channel, stacked vertically, each contianing
|
// One or more sub-views of one channel, stacked vertically, each containing
|
||||||
// a vertical ruler and a channel
|
// a vertical ruler and a channel
|
||||||
struct VRulersAndChannels final : TrackPanelGroup {
|
struct VRulersAndChannels final : TrackPanelGroup {
|
||||||
VRulersAndChannels(
|
VRulersAndChannels(
|
||||||
|
@ -1360,7 +1360,7 @@ struct LabeledChannelGroup final : TrackPanelGroup {
|
||||||
std::make_shared< ChannelGroup >( mpTrack, mLeftOffset ) }
|
std::make_shared< ChannelGroup >( mpTrack, mLeftOffset ) }
|
||||||
} }; }
|
} }; }
|
||||||
|
|
||||||
// TrackPanelDrawable impementation
|
// TrackPanelDrawable implementation
|
||||||
void Draw( TrackPanelDrawingContext &context,
|
void Draw( TrackPanelDrawingContext &context,
|
||||||
const wxRect &rect, unsigned iPass ) override
|
const wxRect &rect, unsigned iPass ) override
|
||||||
{
|
{
|
||||||
|
|
|
@ -229,7 +229,7 @@ void TrackPanelAx::MessageForScreenReader(const TranslatableString& message)
|
||||||
|
|
||||||
mMessage = message.Translation();
|
mMessage = message.Translation();
|
||||||
|
|
||||||
// append \a alernatively, so that the string is never the same as the previous string.
|
// append \a alternatively, so that the string is never the same as the previous string.
|
||||||
// This ensures that screen readers read it.
|
// This ensures that screen readers read it.
|
||||||
if (mMessageCount % 2 == 0)
|
if (mMessageCount % 2 == 0)
|
||||||
mMessage.Append('\a');
|
mMessage.Append('\a');
|
||||||
|
|
|
@ -309,7 +309,7 @@ void UndoManager::PushState(const TrackList * l,
|
||||||
RemoveStateAt(i);
|
RemoveStateAt(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Assume tags was duplicted before any changes.
|
// Assume tags was duplicated before any changes.
|
||||||
// Just save a NEW shared_ptr to it.
|
// Just save a NEW shared_ptr to it.
|
||||||
stack.push_back(
|
stack.push_back(
|
||||||
std::make_unique<UndoStackElem>
|
std::make_unique<UndoStackElem>
|
||||||
|
|
|
@ -1048,7 +1048,7 @@ bool SpecCache::CalculateOneSpectrum
|
||||||
ComputeSpectrumUsingRealFFTf
|
ComputeSpectrumUsingRealFFTf
|
||||||
(useBuffer, settings.hFFT.get(), settings.window.get(), fftLen, results);
|
(useBuffer, settings.hFFT.get(), settings.window.get(), fftLen, results);
|
||||||
if (!gainFactors.empty()) {
|
if (!gainFactors.empty()) {
|
||||||
// Apply a frequency-dependant gain factor
|
// Apply a frequency-dependent gain factor
|
||||||
for (size_t ii = 0; ii < nBins; ++ii)
|
for (size_t ii = 0; ii < nBins; ++ii)
|
||||||
results[ii] += gainFactors[ii];
|
results[ii] += gainFactors[ii];
|
||||||
}
|
}
|
||||||
|
@ -1201,7 +1201,7 @@ void SpecCache::Populate
|
||||||
power = 10.0*log10f(power);
|
power = 10.0*log10f(power);
|
||||||
}
|
}
|
||||||
if (!gainFactors.empty()) {
|
if (!gainFactors.empty()) {
|
||||||
// Apply a frequency-dependant gain factor
|
// Apply a frequency-dependent gain factor
|
||||||
for (size_t ii = 0; ii < nBins; ++ii)
|
for (size_t ii = 0; ii < nBins; ++ii)
|
||||||
results[ii] += gainFactors[ii];
|
results[ii] += gainFactors[ii];
|
||||||
}
|
}
|
||||||
|
|
|
@ -322,7 +322,7 @@ public:
|
||||||
double *cutLineEnd = NULL) const;
|
double *cutLineEnd = NULL) const;
|
||||||
|
|
||||||
/** Expand cut line (that is, re-insert audio, then DELETE audio saved in
|
/** Expand cut line (that is, re-insert audio, then DELETE audio saved in
|
||||||
* cut line). Returns true if a cut line could be found and sucessfully
|
* cut line). Returns true if a cut line could be found and successfully
|
||||||
* expanded, false otherwise */
|
* expanded, false otherwise */
|
||||||
void ExpandCutLine(double cutLinePosition);
|
void ExpandCutLine(double cutLinePosition);
|
||||||
|
|
||||||
|
|
|
@ -702,7 +702,7 @@ void WaveTrack::SetWaveformSettings(std::unique_ptr<WaveformSettings> &&pSetting
|
||||||
// followed by Paste() and is used mostly by effects that
|
// followed by Paste() and is used mostly by effects that
|
||||||
// can't replace track data directly using Get()/Set().
|
// can't replace track data directly using Get()/Set().
|
||||||
//
|
//
|
||||||
// HandleClear() removes any cut/split lines lines with the
|
// HandleClear() removes any cut/split lines with the
|
||||||
// cleared range, but, in most cases, effects want to preserve
|
// cleared range, but, in most cases, effects want to preserve
|
||||||
// the existing cut/split lines, so they are saved before the
|
// the existing cut/split lines, so they are saved before the
|
||||||
// HandleClear()/Paste() and restored after.
|
// HandleClear()/Paste() and restored after.
|
||||||
|
@ -1919,7 +1919,7 @@ bool WaveTrack::Get(samplePtr buffer, sampleFormat format,
|
||||||
// startDelta is zero
|
// startDelta is zero
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// startDelta is nonnegative and less than than len
|
// startDelta is nonnegative and less than len
|
||||||
// samplesToCopy is positive and not more than len
|
// samplesToCopy is positive and not more than len
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1967,7 +1967,7 @@ void WaveTrack::Set(samplePtr buffer, sampleFormat format,
|
||||||
// startDelta is zero
|
// startDelta is zero
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// startDelta is nonnegative and less than than len
|
// startDelta is nonnegative and less than len
|
||||||
// samplesToCopy is positive and not more than len
|
// samplesToCopy is positive and not more than len
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -230,7 +230,7 @@ private:
|
||||||
|
|
||||||
///
|
///
|
||||||
/// MM: Now that each wave track can contain multiple clips, we don't
|
/// MM: Now that each wave track can contain multiple clips, we don't
|
||||||
/// have a continous space of samples anymore, but we simulate it,
|
/// have a continuous space of samples anymore, but we simulate it,
|
||||||
/// because there are alot of places (e.g. effects) using this interface.
|
/// because there are alot of places (e.g. effects) using this interface.
|
||||||
/// This interface makes much sense for modifying samples, but note that
|
/// This interface makes much sense for modifying samples, but note that
|
||||||
/// it is not time-accurate, because the "offset" is a double value and
|
/// it is not time-accurate, because the "offset" is a double value and
|
||||||
|
@ -352,7 +352,7 @@ private:
|
||||||
double LongSamplesToTime(sampleCount pos) const;
|
double LongSamplesToTime(sampleCount pos) const;
|
||||||
|
|
||||||
// Get access to the (visible) clips in the tracks, in unspecified order
|
// Get access to the (visible) clips in the tracks, in unspecified order
|
||||||
// (not necessarioy sequenced in time).
|
// (not necessarily sequenced in time).
|
||||||
WaveClipHolders &GetClips() { return mClips; }
|
WaveClipHolders &GetClips() { return mClips; }
|
||||||
const WaveClipConstHolders &GetClips() const
|
const WaveClipConstHolders &GetClips() const
|
||||||
{ return reinterpret_cast< const WaveClipConstHolders& >( mClips ); }
|
{ return reinterpret_cast< const WaveClipConstHolders& >( mClips ); }
|
||||||
|
|
|
@ -60,7 +60,7 @@ class ODDecodeBlockFile final : public SimpleBlockFile
|
||||||
const wxFileNameWrapper &GetExternalFileName() const override;
|
const wxFileNameWrapper &GetExternalFileName() const override;
|
||||||
void SetExternalFileName( wxFileNameWrapper &&newName ) override;
|
void SetExternalFileName( wxFileNameWrapper &&newName ) override;
|
||||||
|
|
||||||
//Calls that rely on summary files need to be overidden
|
//Calls that rely on summary files need to be overridden
|
||||||
DiskByteCount GetSpaceUsage() const override;
|
DiskByteCount GetSpaceUsage() const override;
|
||||||
/// Gets extreme values for the specified region
|
/// Gets extreme values for the specified region
|
||||||
MinMaxRMS GetMinMaxRMS(
|
MinMaxRMS GetMinMaxRMS(
|
||||||
|
@ -105,7 +105,7 @@ class ODDecodeBlockFile final : public SimpleBlockFile
|
||||||
//returns the number of samples from the beginning of the track that this blockfile ends at
|
//returns the number of samples from the beginning of the track that this blockfile ends at
|
||||||
sampleCount GetGlobalEnd() const {return mClipOffset+mStart+GetLength();}
|
sampleCount GetGlobalEnd() const {return mClipOffset+mStart+GetLength();}
|
||||||
|
|
||||||
//Below calls are overrided just so we can take wxlog calls out, which are not threadsafe.
|
//Below calls are overridden just so we can take wxlog calls out, which are not threadsafe.
|
||||||
|
|
||||||
/// Reads the specified data from the aliased file using libsndfile
|
/// Reads the specified data from the aliased file using libsndfile
|
||||||
size_t ReadData(samplePtr data, sampleFormat format,
|
size_t ReadData(samplePtr data, sampleFormat format,
|
||||||
|
|
|
@ -58,7 +58,7 @@ class ODPCMAliasBlockFile final : public PCMAliasBlockFile
|
||||||
/// Returns TRUE if the summary has not yet been written, but is actively being computed and written to disk
|
/// Returns TRUE if the summary has not yet been written, but is actively being computed and written to disk
|
||||||
bool IsSummaryBeingComputed() override { return mSummaryBeingComputed; }
|
bool IsSummaryBeingComputed() override { return mSummaryBeingComputed; }
|
||||||
|
|
||||||
//Calls that rely on summary files need to be overidden
|
//Calls that rely on summary files need to be overridden
|
||||||
DiskByteCount GetSpaceUsage() const override;
|
DiskByteCount GetSpaceUsage() const override;
|
||||||
/// Gets extreme values for the specified region
|
/// Gets extreme values for the specified region
|
||||||
MinMaxRMS GetMinMaxRMS(
|
MinMaxRMS GetMinMaxRMS(
|
||||||
|
@ -110,7 +110,7 @@ class ODPCMAliasBlockFile final : public PCMAliasBlockFile
|
||||||
sampleCount GetGlobalEnd() const {return mClipOffset+mStart+GetLength();}
|
sampleCount GetGlobalEnd() const {return mClipOffset+mStart+GetLength();}
|
||||||
|
|
||||||
|
|
||||||
//Below calls are overrided just so we can take wxlog calls out, which are not threadsafe.
|
//Below calls are overridden just so we can take wxlog calls out, which are not threadsafe.
|
||||||
|
|
||||||
/// Reads the specified data from the aliased file using libsndfile
|
/// Reads the specified data from the aliased file using libsndfile
|
||||||
size_t ReadData(samplePtr data, sampleFormat format,
|
size_t ReadData(samplePtr data, sampleFormat format,
|
||||||
|
|
|
@ -334,7 +334,7 @@ void SimpleBlockFile::FillCache()
|
||||||
mCache.active = true;
|
mCache.active = true;
|
||||||
mCache.needWrite = false;
|
mCache.needWrite = false;
|
||||||
|
|
||||||
//wxLogDebug("SimpleBlockFile::FillCache(): Succesfully read simple block file into cache.");
|
//wxLogDebug("SimpleBlockFile::FillCache(): Successfully read simple block file into cache.");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Read the summary section of the disk file.
|
/// Read the summary section of the disk file.
|
||||||
|
|
|
@ -50,7 +50,7 @@ bool BatchEvalCommand::Apply(const CommandContext & context)
|
||||||
// Uh oh, I need to build a catalog, expensively
|
// Uh oh, I need to build a catalog, expensively
|
||||||
// Maybe it can be built in one long-lived place and shared among command
|
// Maybe it can be built in one long-lived place and shared among command
|
||||||
// objects instead?
|
// objects instead?
|
||||||
// The catolog though may change during a session, as it includes the
|
// The catalog though may change during a session, as it includes the
|
||||||
// names of macro commands - so the long-lived copy will need to
|
// names of macro commands - so the long-lived copy will need to
|
||||||
// be refreshed after macros are added/deleted.
|
// be refreshed after macros are added/deleted.
|
||||||
MacroCommandsCatalog catalog(&context.project);
|
MacroCommandsCatalog catalog(&context.project);
|
||||||
|
|
|
@ -53,7 +53,7 @@ to create messages for forwarding.
|
||||||
\brief Abstract base class for command interface. This is the version
|
\brief Abstract base class for command interface. This is the version
|
||||||
created by Dan Horgan. It was previously a factory for other command classes.
|
created by Dan Horgan. It was previously a factory for other command classes.
|
||||||
It created a separation between the type of a command and the command itself,
|
It created a separation between the type of a command and the command itself,
|
||||||
which is being removed. These Cmmands were managed by CommandDirectory.
|
which is being removed. These Commands were managed by CommandDirectory.
|
||||||
|
|
||||||
\class OldStyleCommandPointer
|
\class OldStyleCommandPointer
|
||||||
\brief OldStyleCommandPointer is a unique_ptr to an OldStyleCommand.
|
\brief OldStyleCommandPointer is a unique_ptr to an OldStyleCommand.
|
||||||
|
|
|
@ -157,7 +157,7 @@ void CommandBuilder::BuildCommand(AudacityProject *project,
|
||||||
Failure(wxT("Unrecognized parameter: '") + paramName + wxT("'"));
|
Failure(wxT("Unrecognized parameter: '") + paramName + wxT("'"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Handling of quoted strings is quite limitted.
|
// Handling of quoted strings is quite limited.
|
||||||
// You start and end with a " or a '.
|
// You start and end with a " or a '.
|
||||||
// There is no escaping in the string.
|
// There is no escaping in the string.
|
||||||
cmdParams = cmdParams.Mid(splitAt+1);
|
cmdParams = cmdParams.Mid(splitAt+1);
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
\brief Contains definitions for CommandContext
|
\brief Contains definitions for CommandContext
|
||||||
|
|
||||||
\class CommandContext
|
\class CommandContext
|
||||||
\brief CommandContext provides addiitonal information to an
|
\brief CommandContext provides additional information to an
|
||||||
'Apply()' command. It provides the project, and provides output
|
'Apply()' command. It provides the project, and provides output
|
||||||
channels for Error, Progress and Status. Status is used for general
|
channels for Error, Progress and Status. Status is used for general
|
||||||
messaging from a command back to its invoker.
|
messaging from a command back to its invoker.
|
||||||
|
|
|
@ -977,7 +977,7 @@ TranslatableString CommandManager::DescribeCommandsAndShortcuts(
|
||||||
// If RTL, then the control character forces right-to-left sequencing of
|
// If RTL, then the control character forces right-to-left sequencing of
|
||||||
// "/" -separated command names, and puts any "(...)" shortcuts to the
|
// "/" -separated command names, and puts any "(...)" shortcuts to the
|
||||||
// left, consistently with accelerators in menus (assuming matching
|
// left, consistently with accelerators in menus (assuming matching
|
||||||
// operating system prefernces for language), even if the command name
|
// operating system preferences for language), even if the command name
|
||||||
// was missing from the translation file and defaulted to the English.
|
// was missing from the translation file and defaulted to the English.
|
||||||
|
|
||||||
// Note: not putting this and other short format strings in the
|
// Note: not putting this and other short format strings in the
|
||||||
|
@ -1177,7 +1177,7 @@ bool CommandManager::HandleMenuID(
|
||||||
return HandleCommandEntry( project, entry, flags, alwaysEnabled );
|
return HandleCommandEntry( project, entry, flags, alwaysEnabled );
|
||||||
}
|
}
|
||||||
|
|
||||||
/// HandleTextualCommand() allows us a limitted version of script/batch
|
/// HandleTextualCommand() allows us a limited version of script/batch
|
||||||
/// behavior, since we can get from a string command name to the actual
|
/// behavior, since we can get from a string command name to the actual
|
||||||
/// code to run.
|
/// code to run.
|
||||||
CommandManager::TextualCommandResult
|
CommandManager::TextualCommandResult
|
||||||
|
|
|
@ -560,7 +560,7 @@ namespace Registry {
|
||||||
// allows implicit conversions to type Factory.
|
// allows implicit conversions to type Factory.
|
||||||
// (Thus, a lambda can return a unique_ptr<BaseItem> rvalue even though
|
// (Thus, a lambda can return a unique_ptr<BaseItem> rvalue even though
|
||||||
// Factory's return type is shared_ptr, and the needed conversion is
|
// Factory's return type is shared_ptr, and the needed conversion is
|
||||||
// appled implicitly.)
|
// applied implicitly.)
|
||||||
void AppendOne( const ComputedItem::Factory<VisitorType> &factory )
|
void AppendOne( const ComputedItem::Factory<VisitorType> &factory )
|
||||||
{
|
{
|
||||||
auto adaptedFactory = [factory]( Registry::Visitor &visitor ){
|
auto adaptedFactory = [factory]( Registry::Visitor &visitor ){
|
||||||
|
|
|
@ -715,7 +715,7 @@ void GetInfoCommand::ExploreTrackPanel( const CommandContext &context,
|
||||||
for (Overlay * pOverlay : pTP->mOverlays) {
|
for (Overlay * pOverlay : pTP->mOverlays) {
|
||||||
auto R2(pOverlay->GetRectangle(trackRect.GetSize()).first);
|
auto R2(pOverlay->GetRectangle(trackRect.GetSize()).first);
|
||||||
context.Status( wxString::Format(" [ %2i, %3i, %3i, %3i, %3i, \"%s\" ],",
|
context.Status( wxString::Format(" [ %2i, %3i, %3i, %3i, %3i, \"%s\" ],",
|
||||||
depth, R2.GetLeft(), R2.GetTop(), R2.GetRight(), R2.GetBottom(), "Overthing" ));
|
depth, R2.GetLeft(), R2.GetTop(), R2.GetRight(), R2.GetBottom(), "Otherthing" ));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -426,7 +426,7 @@ void ScreenshotCommand::CaptureWindowOnIdle(
|
||||||
wxString Title = pDlg->GetTitle();
|
wxString Title = pDlg->GetTitle();
|
||||||
|
|
||||||
// Remove '/' from "Sliding Time Scale/Pitch Shift..."
|
// Remove '/' from "Sliding Time Scale/Pitch Shift..."
|
||||||
// and any other effects that have illegal filename chanracters.
|
// and any other effects that have illegal filename characters.
|
||||||
Title.Replace( "/", "" );
|
Title.Replace( "/", "" );
|
||||||
Title.Replace( ":", "" );
|
Title.Replace( ":", "" );
|
||||||
wxString Name = mDirToWriteTo + Title + ".png";
|
wxString Name = mDirToWriteTo + Title + ".png";
|
||||||
|
|
|
@ -372,13 +372,13 @@ size_t EffectBassTreble::InstanceProcess(EffectBassTrebleState & data,
|
||||||
|
|
||||||
data.gain = DB_TO_LINEAR(mGain);
|
data.gain = DB_TO_LINEAR(mGain);
|
||||||
|
|
||||||
// Compute coefficents of the low shelf biquand IIR filter
|
// Compute coefficients of the low shelf biquand IIR filter
|
||||||
if (data.bass != oldBass)
|
if (data.bass != oldBass)
|
||||||
Coefficents(data.hzBass, data.slope, mBass, data.samplerate, kBass,
|
Coefficents(data.hzBass, data.slope, mBass, data.samplerate, kBass,
|
||||||
data.a0Bass, data.a1Bass, data.a2Bass,
|
data.a0Bass, data.a1Bass, data.a2Bass,
|
||||||
data.b0Bass, data.b1Bass, data.b2Bass);
|
data.b0Bass, data.b1Bass, data.b2Bass);
|
||||||
|
|
||||||
// Compute coefficents of the high shelf biquand IIR filter
|
// Compute coefficients of the high shelf biquand IIR filter
|
||||||
if (data.treble != oldTreble)
|
if (data.treble != oldTreble)
|
||||||
Coefficents(data.hzTreble, data.slope, mTreble, data.samplerate, kTreble,
|
Coefficents(data.hzTreble, data.slope, mTreble, data.samplerate, kTreble,
|
||||||
data.a0Treble, data.a1Treble, data.a2Treble,
|
data.a0Treble, data.a1Treble, data.a2Treble,
|
||||||
|
|
|
@ -173,7 +173,7 @@ bool EffectCompressor::SetAutomationParameters(CommandParameters & parms)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Effect Implemenration
|
// Effect Implementation
|
||||||
|
|
||||||
bool EffectCompressor::Startup()
|
bool EffectCompressor::Startup()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1382,7 +1382,7 @@ bool EffectEqualization::ProcessOne(int count, WaveTrack * t,
|
||||||
double startT = t->LongSamplesToTime(start);
|
double startT = t->LongSamplesToTime(start);
|
||||||
|
|
||||||
//output has one waveclip for the total length, even though
|
//output has one waveclip for the total length, even though
|
||||||
//t might have whitespace seperating multiple clips
|
//t might have whitespace separating multiple clips
|
||||||
//we want to maintain the original clip structure, so
|
//we want to maintain the original clip structure, so
|
||||||
//only paste the intersections of the NEW clip.
|
//only paste the intersections of the NEW clip.
|
||||||
|
|
||||||
|
@ -1723,7 +1723,7 @@ void EffectEqualization::UpdateDefaultCurves(bool updateAll /* false */)
|
||||||
for (int curveCount = 0; curveCount < numUserCurves; curveCount++) {
|
for (int curveCount = 0; curveCount < numUserCurves; curveCount++) {
|
||||||
bool isCustom = true;
|
bool isCustom = true;
|
||||||
tempCurve = userCurves[curveCount];
|
tempCurve = userCurves[curveCount];
|
||||||
// is the name in the dfault set?
|
// is the name in the default set?
|
||||||
for (int defCurveCount = 0; defCurveCount < numDefaultCurves; defCurveCount++) {
|
for (int defCurveCount = 0; defCurveCount < numDefaultCurves; defCurveCount++) {
|
||||||
if (tempCurve.Name == mCurves[defCurveCount].Name) {
|
if (tempCurve.Name == mCurves[defCurveCount].Name) {
|
||||||
isCustom = false;
|
isCustom = false;
|
||||||
|
@ -2296,7 +2296,7 @@ XMLTagHandler *EffectEqualization::HandleXMLChild(const wxChar *tag)
|
||||||
void EffectEqualization::WriteXML(XMLWriter &xmlFile) const
|
void EffectEqualization::WriteXML(XMLWriter &xmlFile) const
|
||||||
// may throw
|
// may throw
|
||||||
{
|
{
|
||||||
// Start our heirarchy
|
// Start our hierarchy
|
||||||
xmlFile.StartTag( wxT( "equalizationeffect" ) );
|
xmlFile.StartTag( wxT( "equalizationeffect" ) );
|
||||||
|
|
||||||
// Write all curves
|
// Write all curves
|
||||||
|
@ -2324,7 +2324,7 @@ void EffectEqualization::WriteXML(XMLWriter &xmlFile) const
|
||||||
xmlFile.EndTag( wxT( "curve" ) );
|
xmlFile.EndTag( wxT( "curve" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Terminate our heirarchy
|
// Terminate our hierarchy
|
||||||
xmlFile.EndTag( wxT( "equalizationeffect" ) );
|
xmlFile.EndTag( wxT( "equalizationeffect" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2525,7 +2525,7 @@ void EffectEqualization::EnvLinToLog(void)
|
||||||
{
|
{
|
||||||
if( when[i]*mHiFreq >= 20 )
|
if( when[i]*mHiFreq >= 20 )
|
||||||
{
|
{
|
||||||
// Caution: on Linux, when when == 20, the log calulation rounds
|
// Caution: on Linux, when when == 20, the log calculation rounds
|
||||||
// to just under zero, which causes an assert error.
|
// to just under zero, which causes an assert error.
|
||||||
double flog = (log10(when[i]*mHiFreq)-loLog)/denom;
|
double flog = (log10(when[i]*mHiFreq)-loLog)/denom;
|
||||||
mLogEnvelope->Insert(std::max(0.0, flog) , value[i]);
|
mLogEnvelope->Insert(std::max(0.0, flog) , value[i]);
|
||||||
|
@ -3218,7 +3218,7 @@ void EqualizationPanel::OnPaint(wxPaintEvent & WXUNUSED(event))
|
||||||
freq = lin ? step*i : pow(10., loLog + i*step); //Hz
|
freq = lin ? step*i : pow(10., loLog + i*step); //Hz
|
||||||
if( ( lin ? step : (pow(10., loLog + (i+1)*step)-freq) ) < delta)
|
if( ( lin ? step : (pow(10., loLog + (i+1)*step)-freq) ) < delta)
|
||||||
{ //not enough resolution in FFT
|
{ //not enough resolution in FFT
|
||||||
// set up for calculating cos using recurrance - faster than calculating it directly each time
|
// set up for calculating cos using recurrence - faster than calculating it directly each time
|
||||||
double theta = M_PI*freq/mEffect->mHiFreq; //radians, normalized
|
double theta = M_PI*freq/mEffect->mHiFreq; //radians, normalized
|
||||||
double wtemp = sin(0.5 * theta);
|
double wtemp = sin(0.5 * theta);
|
||||||
double wpr = -2.0 * wtemp * wtemp;
|
double wpr = -2.0 * wtemp * wtemp;
|
||||||
|
@ -3230,7 +3230,7 @@ void EqualizationPanel::OnPaint(wxPaintEvent & WXUNUSED(event))
|
||||||
for(int j=0;j<halfM;j++)
|
for(int j=0;j<halfM;j++)
|
||||||
{
|
{
|
||||||
yF += 2. * mOutr[j] * wr; // This works for me, compared to the previous version. Compare wr to cos(theta*(halfM-j)). Works for me. Keep everything as doubles though.
|
yF += 2. * mOutr[j] * wr; // This works for me, compared to the previous version. Compare wr to cos(theta*(halfM-j)). Works for me. Keep everything as doubles though.
|
||||||
// do recurrance
|
// do recurrence
|
||||||
wr = (wtemp = wr) * wpr - wi * wpi + wr;
|
wr = (wtemp = wr) * wpr - wi * wpi + wr;
|
||||||
wi = wi * wpr + wtemp * wpi + wi;
|
wi = wi * wpr + wtemp * wpi + wi;
|
||||||
}
|
}
|
||||||
|
@ -3632,7 +3632,7 @@ void EditCurvesDialog::OnRename(wxCommandEvent & WXUNUSED(event))
|
||||||
// Delete curve/curves
|
// Delete curve/curves
|
||||||
void EditCurvesDialog::OnDelete(wxCommandEvent & WXUNUSED(event))
|
void EditCurvesDialog::OnDelete(wxCommandEvent & WXUNUSED(event))
|
||||||
{
|
{
|
||||||
// We could could count them here
|
// We could count them here
|
||||||
// And then put in a 'Delete N items?' prompt.
|
// And then put in a 'Delete N items?' prompt.
|
||||||
|
|
||||||
#if 0 // 'one at a time' prompt code
|
#if 0 // 'one at a time' prompt code
|
||||||
|
|
|
@ -521,7 +521,7 @@ bool EffectEqualization48x::ProcessTail(WaveTrack * t, WaveTrack * output, sampl
|
||||||
double startT = t->LongSamplesToTime(start);
|
double startT = t->LongSamplesToTime(start);
|
||||||
|
|
||||||
//output has one waveclip for the total length, even though
|
//output has one waveclip for the total length, even though
|
||||||
//t might have whitespace seperating multiple clips
|
//t might have whitespace separating multiple clips
|
||||||
//we want to maintain the original clip structure, so
|
//we want to maintain the original clip structure, so
|
||||||
//only paste the intersections of the NEW clip.
|
//only paste the intersections of the NEW clip.
|
||||||
|
|
||||||
|
|
|
@ -368,7 +368,7 @@ bool EffectPaulstretch::ProcessOne(WaveTrack *track,double t0,double t1,int coun
|
||||||
|
|
||||||
s += nget;
|
s += nget;
|
||||||
|
|
||||||
if (first_time){//blend the the start of the selection
|
if (first_time){//blend the start of the selection
|
||||||
track->Get((samplePtr)fade_track_smps.get(), floatSample, start, fade_len);
|
track->Get((samplePtr)fade_track_smps.get(), floatSample, start, fade_len);
|
||||||
first_time = false;
|
first_time = false;
|
||||||
for (size_t i = 0; i < fade_len; i++){
|
for (size_t i = 0; i < fade_len; i++){
|
||||||
|
|
|
@ -334,7 +334,7 @@ size_t RealtimeEffectManager::RealtimeProcess(int group, unsigned chans, float *
|
||||||
|
|
||||||
// Once we're done, we might wind up with the last effect storing its results
|
// Once we're done, we might wind up with the last effect storing its results
|
||||||
// in the temporary buffers. If that's the case, we need to copy it over to
|
// in the temporary buffers. If that's the case, we need to copy it over to
|
||||||
// the caller's buffers. This happens when the number of effects proccessed
|
// the caller's buffers. This happens when the number of effects processed
|
||||||
// is odd.
|
// is odd.
|
||||||
if (called & 1)
|
if (called & 1)
|
||||||
{
|
{
|
||||||
|
@ -430,7 +430,7 @@ bool RealtimeEffectState::RealtimeAddProcessor(int group, unsigned chans, float
|
||||||
// Call the client until we run out of input or output channels
|
// Call the client until we run out of input or output channels
|
||||||
while (ichans > 0 && ochans > 0)
|
while (ichans > 0 && ochans > 0)
|
||||||
{
|
{
|
||||||
// If we don't have enough input channels to accomodate the client's
|
// If we don't have enough input channels to accommodate the client's
|
||||||
// requirements, then we replicate the input channels until the
|
// requirements, then we replicate the input channels until the
|
||||||
// client's needs are met.
|
// client's needs are met.
|
||||||
if (ichans < numAudioIn)
|
if (ichans < numAudioIn)
|
||||||
|
@ -438,7 +438,7 @@ bool RealtimeEffectState::RealtimeAddProcessor(int group, unsigned chans, float
|
||||||
// All input channels have been consumed
|
// All input channels have been consumed
|
||||||
ichans = 0;
|
ichans = 0;
|
||||||
}
|
}
|
||||||
// Otherwise fullfil the client's needs with as many input channels as possible.
|
// Otherwise fulfill the client's needs with as many input channels as possible.
|
||||||
// After calling the client with this set, we will loop back up to process more
|
// After calling the client with this set, we will loop back up to process more
|
||||||
// of the input/output channels.
|
// of the input/output channels.
|
||||||
else if (ichans >= numAudioIn)
|
else if (ichans >= numAudioIn)
|
||||||
|
@ -447,7 +447,7 @@ bool RealtimeEffectState::RealtimeAddProcessor(int group, unsigned chans, float
|
||||||
ichans -= gchans;
|
ichans -= gchans;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we don't have enough output channels to accomodate the client's
|
// If we don't have enough output channels to accommodate the client's
|
||||||
// requirements, then we provide all of the output channels and fulfill
|
// requirements, then we provide all of the output channels and fulfill
|
||||||
// the client's needs with dummy buffers. These will just get tossed.
|
// the client's needs with dummy buffers. These will just get tossed.
|
||||||
if (ochans < numAudioOut)
|
if (ochans < numAudioOut)
|
||||||
|
@ -455,7 +455,7 @@ bool RealtimeEffectState::RealtimeAddProcessor(int group, unsigned chans, float
|
||||||
// All output channels have been consumed
|
// All output channels have been consumed
|
||||||
ochans = 0;
|
ochans = 0;
|
||||||
}
|
}
|
||||||
// Otherwise fullfil the client's needs with as many output channels as possible.
|
// Otherwise fulfill the client's needs with as many output channels as possible.
|
||||||
// After calling the client with this set, we will loop back up to process more
|
// After calling the client with this set, we will loop back up to process more
|
||||||
// of the input/output channels.
|
// of the input/output channels.
|
||||||
else if (ochans >= numAudioOut)
|
else if (ochans >= numAudioOut)
|
||||||
|
@ -488,7 +488,7 @@ size_t RealtimeEffectState::RealtimeProcess(int group,
|
||||||
// same number of output buffers as there are input buffers.
|
// same number of output buffers as there are input buffers.
|
||||||
//
|
//
|
||||||
// Effects always require a certain number of input and output buffers,
|
// Effects always require a certain number of input and output buffers,
|
||||||
// so if the number of channels we're curently processing are different
|
// so if the number of channels we're currently processing are different
|
||||||
// than what the effect expects, then we use a few methods of satisfying
|
// than what the effect expects, then we use a few methods of satisfying
|
||||||
// the effects requirements.
|
// the effects requirements.
|
||||||
const auto numAudioIn = mEffect.GetAudioInCount();
|
const auto numAudioIn = mEffect.GetAudioInCount();
|
||||||
|
|
|
@ -38,7 +38,7 @@ public:
|
||||||
bool Process() override;
|
bool Process() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// EffectRepair implementaion
|
// EffectRepair implementation
|
||||||
|
|
||||||
bool ProcessOne(int count, WaveTrack * track,
|
bool ProcessOne(int count, WaveTrack * track,
|
||||||
sampleCount start,
|
sampleCount start,
|
||||||
|
|
|
@ -38,7 +38,7 @@ typedef struct {
|
||||||
size_t allocation; /* Number of bytes allocated for data. */
|
size_t allocation; /* Number of bytes allocated for data. */
|
||||||
size_t item_size; /* Size of each item in data */
|
size_t item_size; /* Size of each item in data */
|
||||||
size_t begin; /* Offset of the first byte to read. */
|
size_t begin; /* Offset of the first byte to read. */
|
||||||
size_t end; /* 1 + Offset of the last byte byte to read. */
|
size_t end; /* 1 + Offset of the last byte to read. */
|
||||||
} fifo_t;
|
} fifo_t;
|
||||||
|
|
||||||
static void fifo_clear(fifo_t * f)
|
static void fifo_clear(fifo_t * f)
|
||||||
|
|
|
@ -141,7 +141,7 @@ EffectTruncSilence::EffectTruncSilence()
|
||||||
|
|
||||||
SetLinearEffectFlag(false);
|
SetLinearEffectFlag(false);
|
||||||
|
|
||||||
// This used to be changeable via the audacity.cfg/registery. Doubtful that was
|
// This used to be changeable via the audacity.cfg/registry. Doubtful that was
|
||||||
// ever done.
|
// ever done.
|
||||||
//
|
//
|
||||||
// Original comment:
|
// Original comment:
|
||||||
|
|
|
@ -171,7 +171,7 @@ public:
|
||||||
if (wxTheApp && wxTheApp->argc == 3 && wxStrcmp(wxTheApp->argv[1], VSTCMDKEY) == 0)
|
if (wxTheApp && wxTheApp->argc == 3 && wxStrcmp(wxTheApp->argv[1], VSTCMDKEY) == 0)
|
||||||
{
|
{
|
||||||
// NOTE: This can really hide failures, which is what we want for those pesky
|
// NOTE: This can really hide failures, which is what we want for those pesky
|
||||||
// VSTs that are bad or that our support isn't currect. But, it can also
|
// VSTs that are bad or that our support isn't correct. But, it can also
|
||||||
// hide Audacity failures in the subprocess, so if you're having an unruley
|
// hide Audacity failures in the subprocess, so if you're having an unruley
|
||||||
// VST or odd Audacity failures, comment it out and you might get more info.
|
// VST or odd Audacity failures, comment it out and you might get more info.
|
||||||
//wxHandleFatalExceptions();
|
//wxHandleFatalExceptions();
|
||||||
|
@ -2244,7 +2244,7 @@ bool VSTEffect::Load()
|
||||||
mMidiIns = 0;
|
mMidiIns = 0;
|
||||||
mMidiOuts = 0;
|
mMidiOuts = 0;
|
||||||
|
|
||||||
// Check to see if parameters can be automated. This isn't a gaurantee
|
// Check to see if parameters can be automated. This isn't a guarantee
|
||||||
// since it could be that the effect simply doesn't support the opcode.
|
// since it could be that the effect simply doesn't support the opcode.
|
||||||
mAutomatable = false;
|
mAutomatable = false;
|
||||||
for (int i = 0; i < mAEffect->numParams; i++)
|
for (int i = 0; i < mAEffect->numParams; i++)
|
||||||
|
|
|
@ -2433,7 +2433,7 @@ void AudioUnitEffect::EventListener(const AudioUnitEvent *inEvent,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// We're the master, so propogate
|
// We're the master, so propagate
|
||||||
for (size_t i = 0, cnt = mSlaves.size(); i < cnt; i++)
|
for (size_t i = 0, cnt = mSlaves.size(); i < cnt; i++)
|
||||||
{
|
{
|
||||||
mSlaves[i]->EventListener(inEvent, inParameterValue);
|
mSlaves[i]->EventListener(inEvent, inParameterValue);
|
||||||
|
|
|
@ -261,7 +261,7 @@ void LV2EffectSettingsDialog::PopulateOrExchange(ShuttleGui &S)
|
||||||
{
|
{
|
||||||
wxTextCtrl *t;
|
wxTextCtrl *t;
|
||||||
t = S.TieNumericTextBox(
|
t = S.TieNumericTextBox(
|
||||||
XO("&Buffer Size (8 to %d) samples):")
|
XO("&Buffer Size (8 to %d samples):")
|
||||||
.Format( DEFAULT_BLOCKSIZE ),
|
.Format( DEFAULT_BLOCKSIZE ),
|
||||||
mBufferSize,
|
mBufferSize,
|
||||||
12);
|
12);
|
||||||
|
|
|
@ -138,7 +138,7 @@ bool LV2EffectsModule::Initialize()
|
||||||
#define NODE(n, u) LV2Effect::node_##n = lilv_new_uri(gWorld, u);
|
#define NODE(n, u) LV2Effect::node_##n = lilv_new_uri(gWorld, u);
|
||||||
NODELIST
|
NODELIST
|
||||||
|
|
||||||
// Generatre URIDs
|
// Generate URIDs
|
||||||
#undef URID
|
#undef URID
|
||||||
#define URID(n, u) LV2Effect::urid_##n = LV2Effect::Lookup_URI(LV2Effect::gURIDMap, u);
|
#define URID(n, u) LV2Effect::urid_##n = LV2Effect::Lookup_URI(LV2Effect::gURIDMap, u);
|
||||||
URIDLIST
|
URIDLIST
|
||||||
|
|
|
@ -40,7 +40,7 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
typedef struct _LV2_External_UI_Widget {
|
typedef struct _LV2_External_UI_Widget {
|
||||||
/**
|
/**
|
||||||
* Host calls this function regulary. UI library implementing the
|
* Host calls this function regularily. UI library implementing the
|
||||||
* callback may do IPC or redraw the UI.
|
* callback may do IPC or redraw the UI.
|
||||||
*
|
*
|
||||||
* @param _this_ the UI context
|
* @param _this_ the UI context
|
||||||
|
@ -80,7 +80,7 @@ typedef struct _LV2_External_UI_Host {
|
||||||
* After this callback is called, UI is defunct. Host must call LV2UI_Descriptor::cleanup().
|
* After this callback is called, UI is defunct. Host must call LV2UI_Descriptor::cleanup().
|
||||||
* If host wants to make the UI visible again, the UI must be reinstantiated.
|
* If host wants to make the UI visible again, the UI must be reinstantiated.
|
||||||
*
|
*
|
||||||
* @note When using the depreated URI LV2_EXTERNAL_UI_DEPRECATED_URI,
|
* @note When using the deprecated URI LV2_EXTERNAL_UI_DEPRECATED_URI,
|
||||||
* some hosts will not call LV2UI_Descriptor::cleanup() as they should,
|
* some hosts will not call LV2UI_Descriptor::cleanup() as they should,
|
||||||
* and may call show() again without re-initialization.
|
* and may call show() again without re-initialization.
|
||||||
*
|
*
|
||||||
|
|
|
@ -545,7 +545,7 @@ ProgressResult ExportCL::Export(AudacityProject *project,
|
||||||
mixed = mixer->GetBuffer();
|
mixed = mixer->GetBuffer();
|
||||||
numBytes = numSamples * channels;
|
numBytes = numSamples * channels;
|
||||||
|
|
||||||
// Byte-swapping is neccesary on big-endian machines, since
|
// Byte-swapping is necessary on big-endian machines, since
|
||||||
// WAV files are little-endian
|
// WAV files are little-endian
|
||||||
#if wxBYTE_ORDER == wxBIG_ENDIAN
|
#if wxBYTE_ORDER == wxBIG_ENDIAN
|
||||||
float *buffer = (float *) mixed;
|
float *buffer = (float *) mixed;
|
||||||
|
|
|
@ -101,10 +101,10 @@ public:
|
||||||
/// Callback, called from GetFilename
|
/// Callback, called from GetFilename
|
||||||
bool CheckFileName(wxFileName &filename, int format = 0) override;
|
bool CheckFileName(wxFileName &filename, int format = 0) override;
|
||||||
|
|
||||||
/// Format intialization
|
/// Format initialization
|
||||||
bool Init(const char *shortname, AudacityProject *project, const Tags *metadata, int subformat);
|
bool Init(const char *shortname, AudacityProject *project, const Tags *metadata, int subformat);
|
||||||
|
|
||||||
/// Codec intialization
|
/// Codec initialization
|
||||||
bool InitCodecs(AudacityProject *project);
|
bool InitCodecs(AudacityProject *project);
|
||||||
|
|
||||||
/// Writes metadata
|
/// Writes metadata
|
||||||
|
@ -140,7 +140,7 @@ public:
|
||||||
///\param mixerSpec mixer
|
///\param mixerSpec mixer
|
||||||
///\param metadata tags to write into file
|
///\param metadata tags to write into file
|
||||||
///\param subformat index of export type
|
///\param subformat index of export type
|
||||||
///\return true if export succeded
|
///\return true if export succeeded
|
||||||
ProgressResult Export(AudacityProject *project,
|
ProgressResult Export(AudacityProject *project,
|
||||||
std::unique_ptr<ProgressDialog> &pDialog,
|
std::unique_ptr<ProgressDialog> &pDialog,
|
||||||
unsigned channels,
|
unsigned channels,
|
||||||
|
@ -503,7 +503,7 @@ bool ExportFFmpeg::InitCodecs(AudacityProject *project)
|
||||||
mEncAudioCodecCtx->compression_level = gPrefs->Read(wxT("/FileFormats/FFmpegCompLevel"),-1);
|
mEncAudioCodecCtx->compression_level = gPrefs->Read(wxT("/FileFormats/FFmpegCompLevel"),-1);
|
||||||
mEncAudioCodecCtx->frame_size = gPrefs->Read(wxT("/FileFormats/FFmpegFrameSize"),(long)0);
|
mEncAudioCodecCtx->frame_size = gPrefs->Read(wxT("/FileFormats/FFmpegFrameSize"),(long)0);
|
||||||
|
|
||||||
//FIXME The list of supported options for the seleced encoder should be extracted instead of a few hardcoded
|
//FIXME The list of supported options for the selected encoder should be extracted instead of a few hardcoded
|
||||||
set_dict_int(&options, "lpc_coeff_precision", gPrefs->Read(wxT("/FileFormats/FFmpegLPCCoefPrec"),(long)0));
|
set_dict_int(&options, "lpc_coeff_precision", gPrefs->Read(wxT("/FileFormats/FFmpegLPCCoefPrec"),(long)0));
|
||||||
set_dict_int(&options, "min_prediction_order", gPrefs->Read(wxT("/FileFormats/FFmpegMinPredOrder"),(long)-1));
|
set_dict_int(&options, "min_prediction_order", gPrefs->Read(wxT("/FileFormats/FFmpegMinPredOrder"),(long)-1));
|
||||||
set_dict_int(&options, "max_prediction_order", gPrefs->Read(wxT("/FileFormats/FFmpegMaxPredOrder"),(long)-1));
|
set_dict_int(&options, "max_prediction_order", gPrefs->Read(wxT("/FileFormats/FFmpegMaxPredOrder"),(long)-1));
|
||||||
|
|
|
@ -300,25 +300,25 @@ private:
|
||||||
/// Finds the codec currently selected and returns it's name and description
|
/// Finds the codec currently selected and returns it's name and description
|
||||||
void FindSelectedCodec(wxString **name, wxString **longname);
|
void FindSelectedCodec(wxString **name, wxString **longname);
|
||||||
|
|
||||||
/// Retreives format list from libavformat
|
/// Retrieves format list from libavformat
|
||||||
void FetchFormatList();
|
void FetchFormatList();
|
||||||
|
|
||||||
/// Retreives a list of formats compatible to codec
|
/// Retrieves a list of formats compatible to codec
|
||||||
///\param id Codec ID
|
///\param id Codec ID
|
||||||
///\param selfmt format selected at the moment
|
///\param selfmt format selected at the moment
|
||||||
///\return index of the selfmt in NEW format list or -1 if it is not in the list
|
///\return index of the selfmt in NEW format list or -1 if it is not in the list
|
||||||
int FetchCompatibleFormatList(AVCodecID id, wxString *selfmt);
|
int FetchCompatibleFormatList(AVCodecID id, wxString *selfmt);
|
||||||
|
|
||||||
/// Retreives codec list from libavcodec
|
/// Retrieves codec list from libavcodec
|
||||||
void FetchCodecList();
|
void FetchCodecList();
|
||||||
|
|
||||||
/// Retreives a list of codecs compatible to format
|
/// Retrieves a list of codecs compatible to format
|
||||||
///\param fmt Format short name
|
///\param fmt Format short name
|
||||||
///\param id id of the codec selected at the moment
|
///\param id id of the codec selected at the moment
|
||||||
///\return index of the id in NEW codec list or -1 if it is not in the list
|
///\return index of the id in NEW codec list or -1 if it is not in the list
|
||||||
int FetchCompatibleCodecList(const wxChar *fmt, AVCodecID id);
|
int FetchCompatibleCodecList(const wxChar *fmt, AVCodecID id);
|
||||||
|
|
||||||
/// Retreives list of presets from configuration file
|
/// Retrieves list of presets from configuration file
|
||||||
void FetchPresetList();
|
void FetchPresetList();
|
||||||
|
|
||||||
bool ReportIfBadCombination();
|
bool ReportIfBadCombination();
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
The difficulty in our approach is that we are attempting to use LAME
|
The difficulty in our approach is that we are attempting to use LAME
|
||||||
in a way it was not designed to be used. LAME's API is reasonably
|
in a way it was not designed to be used. LAME's API is reasonably
|
||||||
consistant, so if we were linking directly against it we could expect
|
consistent, so if we were linking directly against it we could expect
|
||||||
this code to work with a variety of different LAME versions. However,
|
this code to work with a variety of different LAME versions. However,
|
||||||
the data structures change from version to version, and so linking
|
the data structures change from version to version, and so linking
|
||||||
with one version of the header and dynamically linking against a
|
with one version of the header and dynamically linking against a
|
||||||
|
|
|
@ -592,7 +592,7 @@ void ExportMultipleDialog::OnExport(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
if ((size_t)mFilterIndex == c)
|
if ((size_t)mFilterIndex == c)
|
||||||
{ // this is the selected format. Store the plug-in and sub-format
|
{ // this is the selected format. Store the plug-in and sub-format
|
||||||
// needed to acheive it.
|
// needed to achieve it.
|
||||||
mPluginIndex = i;
|
mPluginIndex = i;
|
||||||
mSubFormatIndex = j;
|
mSubFormatIndex = j;
|
||||||
mBook->GetPage(mFilterIndex)->TransferDataFromWindow();
|
mBook->GetPage(mFilterIndex)->TransferDataFromWindow();
|
||||||
|
@ -854,7 +854,7 @@ ProgressResult ExportMultipleDialog::ExportMultipleByLabel(bool byName,
|
||||||
}
|
}
|
||||||
|
|
||||||
auto ok = ProgressResult::Success; // did it work?
|
auto ok = ProgressResult::Success; // did it work?
|
||||||
int count = 0; // count the number of sucessful runs
|
int count = 0; // count the number of successful runs
|
||||||
ExportKit activeSetting; // pointer to the settings in use for this export
|
ExportKit activeSetting; // pointer to the settings in use for this export
|
||||||
/* Go round again and do the exporting (so this run is slow but
|
/* Go round again and do the exporting (so this run is slow but
|
||||||
* non-interactive) */
|
* non-interactive) */
|
||||||
|
@ -994,7 +994,7 @@ ProgressResult ExportMultipleDialog::ExportMultipleByTrack(bool byName,
|
||||||
}
|
}
|
||||||
// end of user-interactive data gathering loop, start of export processing
|
// end of user-interactive data gathering loop, start of export processing
|
||||||
// loop
|
// loop
|
||||||
int count = 0; // count the number of sucessful runs
|
int count = 0; // count the number of successful runs
|
||||||
ExportKit activeSetting; // pointer to the settings in use for this export
|
ExportKit activeSetting; // pointer to the settings in use for this export
|
||||||
std::unique_ptr<ProgressDialog> pDialog;
|
std::unique_ptr<ProgressDialog> pDialog;
|
||||||
|
|
||||||
|
|
|
@ -264,7 +264,7 @@ ProgressResult ExportOGG::Export(AudacityProject *project,
|
||||||
return ProgressResult::Cancelled;
|
return ProgressResult::Cancelled;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Flushing these headers now guarentees that audio data will
|
// Flushing these headers now guarantees that audio data will
|
||||||
// start on a NEW page, which apparently makes streaming easier
|
// start on a NEW page, which apparently makes streaming easier
|
||||||
while (ogg_stream_flush(&stream, &page)) {
|
while (ogg_stream_flush(&stream, &page)) {
|
||||||
if ( outFile.Write(page.header, page.header_len).GetLastError() ||
|
if ( outFile.Write(page.header, page.header_len).GetLastError() ||
|
||||||
|
|
|
@ -27,7 +27,7 @@ It's defined in Import.h
|
||||||
*//***************************************************************//**
|
*//***************************************************************//**
|
||||||
|
|
||||||
\class Importer
|
\class Importer
|
||||||
\brief Class which actulaly imports the auido, using functions defined
|
\brief Class which actualy imports the auido, using functions defined
|
||||||
in ImportPCM.cpp, ImportMP3.cpp, ImportOGG.cpp, ImportRawData.cpp,
|
in ImportPCM.cpp, ImportMP3.cpp, ImportOGG.cpp, ImportRawData.cpp,
|
||||||
and ImportLOF.cpp.
|
and ImportLOF.cpp.
|
||||||
|
|
||||||
|
|
|
@ -147,7 +147,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Helper function - uses wxStringTokenizer to tokenize
|
* Helper function - uses wxStringTokenizer to tokenize
|
||||||
* @str string and appends string-tokens to a list @list.
|
* @str string and appends string-tokens to a list @list.
|
||||||
* @mod deifines tokenizer's behaviour.
|
* @mod defines tokenizer's behaviour.
|
||||||
*/
|
*/
|
||||||
void StringToList(wxString &str, wxString &delims, wxArrayString &list, wxStringTokenizerMode mod = wxTOKEN_RET_EMPTY_ALL);
|
void StringToList(wxString &str, wxString &delims, wxArrayString &list, wxStringTokenizerMode mod = wxTOKEN_RET_EMPTY_ALL);
|
||||||
|
|
||||||
|
|
|
@ -187,7 +187,7 @@ public:
|
||||||
const FilePath &Filename, AudacityProject*) override;
|
const FilePath &Filename, AudacityProject*) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
///! Does acual import, returned by FFmpegImportPlugin::Open
|
///! Does actual import, returned by FFmpegImportPlugin::Open
|
||||||
class FFmpegImportFileHandle final : public ImportFileHandle
|
class FFmpegImportFileHandle final : public ImportFileHandle
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -430,7 +430,7 @@ bool FFmpegImportFileHandle::InitCodecs()
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stream is decodeable and it is audio. Add it and its decription to the arrays
|
// Stream is decodeable and it is audio. Add it and its description to the arrays
|
||||||
int duration = 0;
|
int duration = 0;
|
||||||
if (sc->m_stream->duration > 0)
|
if (sc->m_stream->duration > 0)
|
||||||
duration = sc->m_stream->duration * sc->m_stream->time_base.num / sc->m_stream->time_base.den;
|
duration = sc->m_stream->duration * sc->m_stream->time_base.num / sc->m_stream->time_base.den;
|
||||||
|
@ -463,7 +463,7 @@ bool FFmpegImportFileHandle::InitCodecs()
|
||||||
}
|
}
|
||||||
//for video and unknown streams do nothing
|
//for video and unknown streams do nothing
|
||||||
}
|
}
|
||||||
//It doesn't really returns false, but GetStreamCount() will return 0 if file is composed entierly of unreadable streams
|
//It doesn't really returns false, but GetStreamCount() will return 0 if file is composed entirely of unreadable streams
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -560,7 +560,7 @@ ProgressResult FFmpegImportFileHandle::Import(TrackFactory *trackFactory,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// This is the heart of the importing process
|
// This is the heart of the importing process
|
||||||
// The result of Import() to be returend. It will be something other than zero if user canceled or some error appears.
|
// The result of Import() to be returned. It will be something other than zero if user canceled or some error appears.
|
||||||
auto res = ProgressResult::Success;
|
auto res = ProgressResult::Success;
|
||||||
|
|
||||||
#ifdef EXPERIMENTAL_OD_FFMPEG
|
#ifdef EXPERIMENTAL_OD_FFMPEG
|
||||||
|
|
|
@ -503,7 +503,7 @@ ProgressResult FLACImportFileHandle::Import(TrackFactory *trackFactory,
|
||||||
mDecoderTask->AddWaveTrack(channel);
|
mDecoderTask->AddWaveTrack(channel);
|
||||||
if(moreThanStereo)
|
if(moreThanStereo)
|
||||||
{
|
{
|
||||||
//if we have 3 more channels, they get imported on seperate tracks, so we add individual tasks for each.
|
//if we have 3 more channels, they get imported on separate tracks, so we add individual tasks for each.
|
||||||
ODManager::Instance()->AddNewTask(std::move(mDecoderTask));
|
ODManager::Instance()->AddNewTask(std::move(mDecoderTask));
|
||||||
mDecoderTask = std::make_unique<ODDecodeFlacTask>(); //TODO: see if we need to use clone to keep the metadata.
|
mDecoderTask = std::make_unique<ODDecodeFlacTask>(); //TODO: see if we need to use clone to keep the metadata.
|
||||||
}
|
}
|
||||||
|
|
|
@ -666,7 +666,7 @@ GStreamerImportFileHandle::OnPadAdded(GstPad *pad)
|
||||||
// Link them together
|
// Link them together
|
||||||
if (!gst_element_link(c->mConv, c->mSink))
|
if (!gst_element_link(c->mConv, c->mSink))
|
||||||
{
|
{
|
||||||
WARN(mPipeline.get(), ("OnPadAdded: failed to link autioconvert and appsink"));
|
WARN(mPipeline.get(), ("OnPadAdded: failed to link audioconvert and appsink"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1023,7 +1023,7 @@ GStreamerImportFileHandle::Import(TrackFactory *trackFactory,
|
||||||
// Save track factory pointer
|
// Save track factory pointer
|
||||||
mTrackFactory = trackFactory;
|
mTrackFactory = trackFactory;
|
||||||
|
|
||||||
// Create the progrress dialog
|
// Create the progress dialog
|
||||||
CreateProgress();
|
CreateProgress();
|
||||||
|
|
||||||
// Block streams that are to be bypassed
|
// Block streams that are to be bypassed
|
||||||
|
|
|
@ -144,7 +144,7 @@ std::unique_ptr<ImportFileHandle> PCMImportPlugin::Open(
|
||||||
// still has this bug.
|
// still has this bug.
|
||||||
// This happens in sf_open_fd, which is the very first point of
|
// This happens in sf_open_fd, which is the very first point of
|
||||||
// interaction with libsndfile, so the only workaround is to hardcode
|
// interaction with libsndfile, so the only workaround is to hardcode
|
||||||
// ImportPCM to not handle .mp3. Of couse, this will still fail for mp3s
|
// ImportPCM to not handle .mp3. Of course, this will still fail for mp3s
|
||||||
// that are mislabeled with a .wav or other extension.
|
// that are mislabeled with a .wav or other extension.
|
||||||
// So, in the future we may want to write a simple parser to detect mp3s here.
|
// So, in the future we may want to write a simple parser to detect mp3s here.
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -505,7 +505,7 @@ ProgressResult PCMImportFileHandle::Import(TrackFactory *trackFactory,
|
||||||
computeTask->AddWaveTrack(channel);
|
computeTask->AddWaveTrack(channel);
|
||||||
if(moreThanStereo)
|
if(moreThanStereo)
|
||||||
{
|
{
|
||||||
//if we have 3 more channels, they get imported on seperate tracks, so we add individual tasks for each.
|
//if we have 3 more channels, they get imported on separate tracks, so we add individual tasks for each.
|
||||||
ODManager::Instance()->AddNewTask(std::move(computeTask));
|
ODManager::Instance()->AddNewTask(std::move(computeTask));
|
||||||
computeTask = std::make_unique<ODComputeSummaryTask>();
|
computeTask = std::make_unique<ODComputeSummaryTask>();
|
||||||
}
|
}
|
||||||
|
|
|
@ -344,7 +344,7 @@ TranslatableString ClipBoundaryMessage(
|
||||||
First two %s are each replaced with the noun "start"
|
First two %s are each replaced with the noun "start"
|
||||||
or with "end", identifying and end of a clip,
|
or with "end", identifying and end of a clip,
|
||||||
first and second numbers give the position of those clips in
|
first and second numbers give the position of those clips in
|
||||||
a seqeunce of clips,
|
a sequence of clips,
|
||||||
last number counts all clips,
|
last number counts all clips,
|
||||||
and the last string is the name of the track containing the
|
and the last string is the name of the track containing the
|
||||||
clips.
|
clips.
|
||||||
|
|
|
@ -123,8 +123,8 @@ void OnOpen(const CommandContext &context )
|
||||||
ProjectManager::OpenFiles(&project);
|
ProjectManager::OpenFiles(&project);
|
||||||
}
|
}
|
||||||
|
|
||||||
// JKC: This is like OnClose, except it emptys the project in place,
|
// JKC: This is like OnClose, except it empties the project in place,
|
||||||
// rather than createing a new empty project (with new toolbars etc).
|
// rather than creating a new empty project (with new toolbars etc).
|
||||||
// It does not test for unsaved changes.
|
// It does not test for unsaved changes.
|
||||||
// It is not in the menus by default. Its main purpose is/was for
|
// It is not in the menus by default. Its main purpose is/was for
|
||||||
// developers checking functionality of ResetProjectToEmpty().
|
// developers checking functionality of ResetProjectToEmpty().
|
||||||
|
|
|
@ -407,7 +407,7 @@ class ASAProgress final : public SAProgress {
|
||||||
mTotalCells = mFrames[0] * mFrames[1];
|
mTotalCells = mFrames[0] * mFrames[1];
|
||||||
work2 = mTotalCells * MATRIX_WORK_UNIT;
|
work2 = mTotalCells * MATRIX_WORK_UNIT;
|
||||||
mTotalWork += work2;
|
mTotalWork += work2;
|
||||||
// arbitarily assume 60 iterations to fit smooth segments and
|
// arbitrarily assume 60 iterations to fit smooth segments and
|
||||||
// per frame per iteration is SMOOTHING_WORK_UNIT
|
// per frame per iteration is SMOOTHING_WORK_UNIT
|
||||||
if (smoothing) {
|
if (smoothing) {
|
||||||
work3 =
|
work3 =
|
||||||
|
|
|
@ -323,7 +323,7 @@ void ODManager::Init()
|
||||||
|
|
||||||
// wxLogDebug(wxT("Initializing ODManager...Creating manager thread"));
|
// wxLogDebug(wxT("Initializing ODManager...Creating manager thread"));
|
||||||
// This is a detached thread, so it deletes itself when it finishes
|
// This is a detached thread, so it deletes itself when it finishes
|
||||||
// ... except on Mac where we we don't use wxThread for reasons unexplained
|
// ... except on Mac where we don't use wxThread for reasons unexplained
|
||||||
ODManagerHelperThread* startThread = safenew ODManagerHelperThread;
|
ODManagerHelperThread* startThread = safenew ODManagerHelperThread;
|
||||||
|
|
||||||
// startThread->SetPriority(0);//default of 50.
|
// startThread->SetPriority(0);//default of 50.
|
||||||
|
@ -384,7 +384,7 @@ void ODManager::Start()
|
||||||
mTasksMutex.Lock();
|
mTasksMutex.Lock();
|
||||||
//detach a NEW thread.
|
//detach a NEW thread.
|
||||||
// This is a detached thread, so it deletes itself when it finishes
|
// This is a detached thread, so it deletes itself when it finishes
|
||||||
// ... except on Mac where we we don't use wxThread for reasons unexplained
|
// ... except on Mac where we don't use wxThread for reasons unexplained
|
||||||
auto thread = safenew ODTaskThread(mTasks[0]);//task);
|
auto thread = safenew ODTaskThread(mTasks[0]);//task);
|
||||||
//thread->SetPriority(10);//default is 50.
|
//thread->SetPriority(10);//default is 50.
|
||||||
thread->Create();
|
thread->Create();
|
||||||
|
@ -398,7 +398,7 @@ void ODManager::Start()
|
||||||
}
|
}
|
||||||
|
|
||||||
mCurrentThreadsMutex.Unlock();
|
mCurrentThreadsMutex.Unlock();
|
||||||
//use a conditon variable to block here instead of a sleep.
|
//use a condition variable to block here instead of a sleep.
|
||||||
|
|
||||||
// JKC: If there are no tasks ready to run, or we're paused then
|
// JKC: If there are no tasks ready to run, or we're paused then
|
||||||
// we wait for there to be tasks in the queue.
|
// we wait for there to be tasks in the queue.
|
||||||
|
@ -542,7 +542,7 @@ bool ODManager::MakeWaveTrackDependent(
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//then we add dependentTrack to the masterTrack's queue - this will allow future ODScheduling to affect them together.
|
//then we add dependentTrack to the masterTrack's queue - this will allow future ODScheduling to affect them together.
|
||||||
//this sets the NeedODUpdateFlag since we don't want the head task to finish without haven't dealt with the depednent
|
//this sets the NeedODUpdateFlag since we don't want the head task to finish without haven't dealt with the dependent
|
||||||
masterQueue->MergeWaveTrack(dependentTrack);
|
masterQueue->MergeWaveTrack(dependentTrack);
|
||||||
|
|
||||||
//finally remove the dependent track
|
//finally remove the dependent track
|
||||||
|
|
|
@ -61,7 +61,7 @@ bool ODWaveTrackTaskQueue::CanMergeWith(ODWaveTrackTaskQueue* otherQueue)
|
||||||
}
|
}
|
||||||
|
|
||||||
///add track to the masterTrack's queue - this will allow future ODScheduling to affect them together.
|
///add track to the masterTrack's queue - this will allow future ODScheduling to affect them together.
|
||||||
/// sets the NeedODUpdateFlag since we don't want the head task to finish without haven't dealt with the depednent
|
/// sets the NeedODUpdateFlag since we don't want the head task to finish without haven't dealt with the dependent
|
||||||
///
|
///
|
||||||
///@param track the track to bring into the tasks AND tracklist for this queue
|
///@param track the track to bring into the tasks AND tracklist for this queue
|
||||||
void ODWaveTrackTaskQueue::MergeWaveTrack(
|
void ODWaveTrackTaskQueue::MergeWaveTrack(
|
||||||
|
|
|
@ -60,7 +60,7 @@ class ODWaveTrackTaskQueue final
|
||||||
void MergeWaveTrack( const std::shared_ptr< WaveTrack > &track);
|
void MergeWaveTrack( const std::shared_ptr< WaveTrack > &track);
|
||||||
|
|
||||||
|
|
||||||
//returns true if the agrument is in the WaveTrack list.
|
//returns true if the argument is in the WaveTrack list.
|
||||||
bool ContainsWaveTrack(const WaveTrack* track);
|
bool ContainsWaveTrack(const WaveTrack* track);
|
||||||
|
|
||||||
///returns the number of wavetracks in this queue.
|
///returns the number of wavetracks in this queue.
|
||||||
|
|
|
@ -347,7 +347,7 @@ void DevicePrefs::OnDevice(wxCommandEvent & WXUNUSED(event))
|
||||||
cnt = 16;
|
cnt = 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Place an artifical limit on the number of channels to prevent an
|
// Place an artificial limit on the number of channels to prevent an
|
||||||
// outrageous number. I don't know if this is really necessary, but
|
// outrageous number. I don't know if this is really necessary, but
|
||||||
// it doesn't hurt.
|
// it doesn't hurt.
|
||||||
if (cnt > 256) {
|
if (cnt > 256) {
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
*******************************************************************//**
|
*******************************************************************//**
|
||||||
|
|
||||||
\class EffectsPrefs
|
\class EffectsPrefs
|
||||||
\brief A PrefsPanel for general GUI prefernces.
|
\brief A PrefsPanel for general GUI preferences.
|
||||||
|
|
||||||
*//*******************************************************************/
|
*//*******************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -411,7 +411,7 @@ bool KeyConfigPrefs::ContainsIllegalDups(
|
||||||
// This function tries to add the given shortcuts(keys) "toAdd"
|
// This function tries to add the given shortcuts(keys) "toAdd"
|
||||||
// to the already existing shortcuts(keys). Shortcuts are added only if
|
// to the already existing shortcuts(keys). Shortcuts are added only if
|
||||||
// 1. the shortcut for the operation isn't defined already
|
// 1. the shortcut for the operation isn't defined already
|
||||||
// 2. the added shortcut doesn't create illigal shortcut dublicate
|
// 2. the added shortcut doesn't create illegal shortcut duplicate
|
||||||
// The names of operations for which the second condition was violated
|
// The names of operations for which the second condition was violated
|
||||||
// are returned in a single wxString
|
// are returned in a single wxString
|
||||||
TranslatableString KeyConfigPrefs::MergeWithExistingKeys(
|
TranslatableString KeyConfigPrefs::MergeWithExistingKeys(
|
||||||
|
@ -850,7 +850,7 @@ void KeyConfigPrefs::OnViewBy(wxCommandEvent & e)
|
||||||
bool KeyConfigPrefs::Commit()
|
bool KeyConfigPrefs::Commit()
|
||||||
{
|
{
|
||||||
// On the Mac, preferences may be changed without any active
|
// On the Mac, preferences may be changed without any active
|
||||||
// projects. This means that the CommandManager isn't availabe
|
// projects. This means that the CommandManager isn't available
|
||||||
// either. So we can't attempt to save preferences, otherwise
|
// either. So we can't attempt to save preferences, otherwise
|
||||||
// NULL ptr dereferences will happen in ShuttleGui because the
|
// NULL ptr dereferences will happen in ShuttleGui because the
|
||||||
// radio buttons are never created. (See Populate() above.)
|
// radio buttons are never created. (See Populate() above.)
|
||||||
|
|
|
@ -141,7 +141,7 @@ void ThemePrefs::PopulateOrExchange(ShuttleGui & S)
|
||||||
|
|
||||||
// This next button is only provided in Debug mode.
|
// This next button is only provided in Debug mode.
|
||||||
// It is for developers who are compiling Audacity themselves
|
// It is for developers who are compiling Audacity themselves
|
||||||
// and who who wish to generate a NEW ThemeAsCeeCode.h and compile it in.
|
// and who wish to generate a NEW ThemeAsCeeCode.h and compile it in.
|
||||||
#ifdef __WXDEBUG__
|
#ifdef __WXDEBUG__
|
||||||
S.Id(idSaveThemeAsCode).AddButton(Verbatim("Output Sourcery"));
|
S.Id(idSaveThemeAsCode).AddButton(Verbatim("Output Sourcery"));
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -71,7 +71,7 @@ static int DeviceToolbarPrefsID()
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Standard contructor
|
//Standard constructor
|
||||||
DeviceToolBar::DeviceToolBar( AudacityProject &project )
|
DeviceToolBar::DeviceToolBar( AudacityProject &project )
|
||||||
: ToolBar( project, DeviceBarID, XO("Device"), wxT("Device"), true )
|
: ToolBar( project, DeviceBarID, XO("Device"), wxT("Device"), true )
|
||||||
{
|
{
|
||||||
|
@ -469,7 +469,7 @@ void DeviceToolBar::RepositionCombos()
|
||||||
int w1, h1;
|
int w1, h1;
|
||||||
pParent->GetSize( &w1, &h1 );
|
pParent->GetSize( &w1, &h1 );
|
||||||
// This Resizer is considerably bigger than the 4px docked version.
|
// This Resizer is considerably bigger than the 4px docked version.
|
||||||
// It's the diagonal striped resizer, not the veertical bars.
|
// It's the diagonal striped resizer, not the vertical bars.
|
||||||
int kStripyResizerSize = 15;
|
int kStripyResizerSize = 15;
|
||||||
// Grabber AND resizer included.
|
// Grabber AND resizer included.
|
||||||
w = w1- (kStripyResizerSize + grabberWidth );
|
w = w1- (kStripyResizerSize + grabberWidth );
|
||||||
|
@ -506,7 +506,7 @@ void DeviceToolBar::RepositionCombos()
|
||||||
|
|
||||||
ratioUnused = 0.995f - (kHostWidthRatio + kInputWidthRatio + kOutputWidthRatio + kChannelsWidthRatio);
|
ratioUnused = 0.995f - (kHostWidthRatio + kInputWidthRatio + kOutputWidthRatio + kChannelsWidthRatio);
|
||||||
int i = 0;
|
int i = 0;
|
||||||
// limit the amount of times we solve contraints to 5
|
// limit the amount of times we solve constraints to 5
|
||||||
// As we now ask for more than is available, we only do this iteration once.
|
// As we now ask for more than is available, we only do this iteration once.
|
||||||
while (constrained && ratioUnused > 0.01f && i < 5) {
|
while (constrained && ratioUnused > 0.01f && i < 5) {
|
||||||
i++;
|
i++;
|
||||||
|
|
|
@ -76,7 +76,7 @@ BEGIN_EVENT_TABLE( EditToolBar, ToolBar )
|
||||||
EditToolBar::OnButton )
|
EditToolBar::OnButton )
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
//Standard contructor
|
//Standard constructor
|
||||||
EditToolBar::EditToolBar( AudacityProject &project )
|
EditToolBar::EditToolBar( AudacityProject &project )
|
||||||
: ToolBar(project, EditBarID, XO("Edit"), wxT("Edit"))
|
: ToolBar(project, EditBarID, XO("Edit"), wxT("Edit"))
|
||||||
{
|
{
|
||||||
|
|
|
@ -47,7 +47,7 @@ BEGIN_EVENT_TABLE( MeterToolBar, ToolBar )
|
||||||
EVT_SIZE( MeterToolBar::OnSize )
|
EVT_SIZE( MeterToolBar::OnSize )
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
//Standard contructor
|
//Standard constructor
|
||||||
MeterToolBar::MeterToolBar(AudacityProject &project, int type)
|
MeterToolBar::MeterToolBar(AudacityProject &project, int type)
|
||||||
: ToolBar(project, type, XO("Combined Meter"), wxT("CombinedMeter"), true)
|
: ToolBar(project, type, XO("Combined Meter"), wxT("CombinedMeter"), true)
|
||||||
{
|
{
|
||||||
|
|
|
@ -54,7 +54,7 @@ BEGIN_EVENT_TABLE(MixerToolBar, ToolBar)
|
||||||
EVT_COMMAND(wxID_ANY, EVT_CAPTURE_KEY, MixerToolBar::OnCaptureKey)
|
EVT_COMMAND(wxID_ANY, EVT_CAPTURE_KEY, MixerToolBar::OnCaptureKey)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
//Standard contructor
|
//Standard constructor
|
||||||
MixerToolBar::MixerToolBar( AudacityProject &project )
|
MixerToolBar::MixerToolBar( AudacityProject &project )
|
||||||
: ToolBar(project, MixerBarID, XO("Mixer"), wxT("Mixer"), true)
|
: ToolBar(project, MixerBarID, XO("Mixer"), wxT("Mixer"), true)
|
||||||
{
|
{
|
||||||
|
|
|
@ -55,7 +55,7 @@ EVT_COMMAND_RANGE( STBFirstButton,
|
||||||
EVT_IDLE( ScrubbingToolBar::OnIdle )
|
EVT_IDLE( ScrubbingToolBar::OnIdle )
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
//Standard contructor
|
//Standard constructor
|
||||||
ScrubbingToolBar::ScrubbingToolBar( AudacityProject &project )
|
ScrubbingToolBar::ScrubbingToolBar( AudacityProject &project )
|
||||||
: ToolBar(project, ScrubbingBarID, XO("Scrub"), wxT("Scrub"))
|
: ToolBar(project, ScrubbingBarID, XO("Scrub"), wxT("Scrub"))
|
||||||
{
|
{
|
||||||
|
|
|
@ -246,7 +246,7 @@ void SelectionBar::Populate()
|
||||||
mainSizer->Add(mChoice, 0, wxALIGN_TOP | wxEXPAND | wxRIGHT, 6);
|
mainSizer->Add(mChoice, 0, wxALIGN_TOP | wxEXPAND | wxRIGHT, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Botton row, (mostly time controls)
|
// Button row, (mostly time controls)
|
||||||
mRateBox = safenew wxComboBox(this, RateID,
|
mRateBox = safenew wxComboBox(this, RateID,
|
||||||
wxT(""),
|
wxT(""),
|
||||||
wxDefaultPosition, wxSize(80, -1));
|
wxDefaultPosition, wxSize(80, -1));
|
||||||
|
|
|
@ -76,7 +76,7 @@ public:
|
||||||
virtual ~ToolBarResizer();
|
virtual ~ToolBarResizer();
|
||||||
|
|
||||||
// We don't need or want to accept focus.
|
// We don't need or want to accept focus.
|
||||||
// Note that AcceptsFocusFromKeyboard() is overriden rather than
|
// Note that AcceptsFocusFromKeyboard() is overridden rather than
|
||||||
// AcceptsFocus(), so that resize can be cancelled by ESC
|
// AcceptsFocus(), so that resize can be cancelled by ESC
|
||||||
bool AcceptsFocusFromKeyboard() const override {return false;}
|
bool AcceptsFocusFromKeyboard() const override {return false;}
|
||||||
|
|
||||||
|
@ -643,7 +643,7 @@ void ToolBar::Updated()
|
||||||
// Bug 2120. Changing the choice also changes the size of the toolbar so
|
// Bug 2120. Changing the choice also changes the size of the toolbar so
|
||||||
// we need to update the client size, even if undocked.
|
// we need to update the client size, even if undocked.
|
||||||
// If modifying/improving this, remember to test both changing the choice,
|
// If modifying/improving this, remember to test both changing the choice,
|
||||||
// and clciking on the choice but not actually changing it.
|
// and clicking on the choice but not actually changing it.
|
||||||
GetParent()->SetClientSize( GetSize() + wxSize( 2,2));
|
GetParent()->SetClientSize( GetSize() + wxSize( 2,2));
|
||||||
//wxCommandEvent e( EVT_TOOLBAR_UPDATED, GetId() );
|
//wxCommandEvent e( EVT_TOOLBAR_UPDATED, GetId() );
|
||||||
//GetParent()->GetEventHandler()->AddPendingEvent( e );
|
//GetParent()->GetEventHandler()->AddPendingEvent( e );
|
||||||
|
@ -808,7 +808,7 @@ void ToolBar::MakeButtonBackgroundsSmall()
|
||||||
/// @param eDown Background for when button is Down.
|
/// @param eDown Background for when button is Down.
|
||||||
/// @param eHilite Background for when button is Hilit.
|
/// @param eHilite Background for when button is Hilit.
|
||||||
/// @param eStandardUp Foreground when enabled, up.
|
/// @param eStandardUp Foreground when enabled, up.
|
||||||
/// @param eStandardDown Foregrounde when enabled, down.
|
/// @param eStandardDown Foreground when enabled, down.
|
||||||
/// @param eDisabled Foreground when disabled.
|
/// @param eDisabled Foreground when disabled.
|
||||||
/// @param id Windows Id.
|
/// @param id Windows Id.
|
||||||
/// @param placement Placement position
|
/// @param placement Placement position
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue