![]() |
Audacity 3.2.0
|
#include <memory>#include <new>#include <cstdlib>#include <cmath>#include <functional>#include <limits>#include <cstdint>#include <algorithm>Go to the source code of this file.
Classes | |
| class | ArrayOf< X > |
| This simplifies arrays of arrays, each array separately allocated with NEW[] But it might be better to use std::Array<ArrayOf<X>, N> for some small constant N Or use just one array when sub-arrays have a common size and are not large. More... | |
| class | ArraysOf< X > |
| struct | freer |
| struct | Destroyer< T > |
| A deleter class to supply the second template parameter of unique_ptr for classes like wxWindow that should be sent a message called Destroy rather than be deleted directly. More... | |
| struct | Finally< F > |
| "finally" as in The C++ Programming Language, 4th ed., p. 358 Useful for defining ad-hoc RAII actions. typical usage: auto cleanup = finally([&]{ ... code; ... }); More... | |
| struct | RestoreValue< T > |
| Structure used by ValueRestorer. More... | |
| class | ValueRestorer< T > |
| Set a variable temporarily in a scope. More... | |
| struct | CopyableValueRestorer< T > |
| struct | SharedNonInterfering< T > |
| Workaround for std::make_shared not working on macOs with over-alignment. More... | |
| struct | NonInterfering< T > |
| struct | AtomicUniquePointer< T > |
Macros | |
| #define | safenew new |
| #define | QUANTIZED_TIME(time, rate) (floor(((double)(time) * (rate)) + 0.5) / (rate)) |
| #define | DB_TO_LINEAR(x) (pow(10.0, (x) / 20.0)) |
| #define | LINEAR_TO_DB(x) (20.0 * log10(x)) |
| #define | MAX_AUDIO (1. - 1./(1<<15)) |
Typedefs | |
| template<typename T > | |
| using | MallocPtr = std::unique_ptr< T, freer > |
| template<typename Character = char> | |
| using | MallocString = std::unique_ptr< Character[], freer > |
| template<typename T > | |
| using | Destroy_ptr = std::unique_ptr< T, Destroyer< T > > |
| a convenience for using Destroyer More... | |
Functions | |
| template<typename F > | |
| Finally< F > | finally (F f) |
| Function template with type deduction lets you construct Finally without typing any angle brackets. More... | |
| template<typename F > | |
| Finally (F) -> Finally< F > | |
| template<typename T > | |
| ValueRestorer< T > | valueRestorer (T &var) |
| inline functions provide convenient parameter type deduction More... | |
| template<typename T > | |
| ValueRestorer< T > | valueRestorer (T &var, const T &newValue) |
| struct UTILITY_API | alignas (64) NonInterferingBase |
| Non-template helper for class template NonInterfering. More... | |
| bool | IsLittleEndian () noexcept |
| Check that machine is little-endian. More... | |
| template<typename IntType > | |
| constexpr IntType | SwapIntBytes (IntType value) noexcept |
| Swap bytes in an integer. More... | |
| #define QUANTIZED_TIME | ( | time, | |
| rate | |||
| ) | (floor(((double)(time) * (rate)) + 0.5) / (rate)) |
| using Destroy_ptr = std::unique_ptr<T, Destroyer<T> > |
| using MallocString = std::unique_ptr< Character[], freer > |
| struct UTILITY_API alignas | ( | 64 | ) |
Non-template helper for class template NonInterfering.
If a structure contains any members with large alignment, this base class may also allow it to work in macOS builds under current limitations of the C++17 standard implementation.
Definition at line 265 of file MemoryX.h.
| Finally< F > finally | ( | F | f | ) |
Function template with type deduction lets you construct Finally without typing any angle brackets.
Definition at line 184 of file MemoryX.h.
C++17 deduction guide allows even simpler syntax: Finally Do{[&]{ Stuff(); }};
Don't omit Do or some other variable name! Otherwise, the execution of the body is immediate, not delayed to the end of the enclosing scope.
|
inlinenoexcept |
Check that machine is little-endian.
Definition at line 368 of file MemoryX.h.
Referenced by audacity::cloud::audiocom::sync::RemoteProjectSnapshot::OnProjectBlobDownloaded(), audacity::cloud::audiocom::sync::ProjectCloudExtension::OnUpdateSaved(), and OpusExportProcessor::OggPacket::Write().
|
constexprnoexcept |
Swap bytes in an integer.
Definition at line 377 of file MemoryX.h.
References size.
Referenced by audacity::cloud::audiocom::sync::RemoteProjectSnapshot::OnProjectBlobDownloaded(), audacity::cloud::audiocom::sync::ProjectCloudExtension::OnUpdateSaved(), and OpusExportProcessor::OggPacket::Write().
| ValueRestorer< T > valueRestorer | ( | T & | var | ) |
inline functions provide convenient parameter type deduction
Definition at line 253 of file MemoryX.h.
Referenced by MacroCommands::ApplyMacro(), AudacityCommand::DoAudacityCommand(), EffectBase::DoEffect(), EffectPreview(), MenuCreator::FilterKeyEvent(), Importer::Import(), EffectNoiseReduction::Dialog::OnPreview(), NyquistBase::Process(), VSTInstance::RealtimeInitialize(), and AudacityCommand::ShowInterface().
| ValueRestorer< T > valueRestorer | ( | T & | var, |
| const T & | newValue | ||
| ) |