doxygen. Class list completed for letter 'A'.

This commit is contained in:
James Crook 2017-11-09 18:32:29 +00:00
parent a612af5c05
commit a49f14ad02
19 changed files with 186 additions and 56 deletions

3
.gitignore vendored
View File

@ -90,6 +90,9 @@ mac/po/
mac/src/ mac/src/
mac/tests/ mac/tests/
# Doxygen output
dox/
# Compiled Object files # Compiled Object files
*.slo *.slo
*.lo *.lo

View File

@ -56,9 +56,11 @@
// ============================================================================ // ============================================================================
// ============================================================================ // ============================================================================
// ///
// ModuleInterface class /// ModuleInterface is a generic dll or so interface for Audacity, that is
// /// used for plug ins. Classes derived from it can handle more specific plug
/// in types.
///
// ============================================================================ // ============================================================================
class ModuleInterface /* not final */ : public IdentInterface class ModuleInterface /* not final */ : public IdentInterface

View File

@ -21,6 +21,7 @@
class wxDC; class wxDC;
class wxRect; class wxRect;
/// Used to restore pen, brush and logical-op in a DC back to what they were.
struct DCUnchanger { struct DCUnchanger {
public: public:
DCUnchanger() {} DCUnchanger() {}
@ -36,9 +37,8 @@ public:
long logicalOperation {}; long logicalOperation {};
}; };
// Like wxDCPenChanger, etc., but simple and general /// Makes temporary drawing context changes that you back out of, RAII style
// Make temporary drawing context changes that you back out of, RAII style // It's like wxDCPenChanger, etc., but simple and general
class ADCChanger : public std::unique_ptr<wxDC, ::DCUnchanger> class ADCChanger : public std::unique_ptr<wxDC, ::DCUnchanger>
{ {
using Base = std::unique_ptr<wxDC, ::DCUnchanger>; using Base = std::unique_ptr<wxDC, ::DCUnchanger>;

View File

@ -1,3 +1,24 @@
/**********************************************************************
Audacity: A Digital Audio Editor
AudacityException
Paul Licameli
********************************************************************//**
\class AudacityException
\brief root of a hierarchy of classes that are thrown and caught
by Audacity.
\class MessageBoxException
\brief an AudacityException that pops up a single message box even if
there were multiple exceptions of the same kind before it actually
got to show.
*//********************************************************************/
#include "Audacity.h" #include "Audacity.h"
#include "AudacityException.h" #include "AudacityException.h"

View File

@ -390,6 +390,18 @@ Time (in seconds, = total_sample_count / sample_rate)
use wxWidgets wxThread), this class sits in a thread loop reading and use wxWidgets wxThread), this class sits in a thread loop reading and
writing audio. writing audio.
*//****************************************************************//**
\class AudioIOListener
\brief Monitors record play start/stop and new blockfiles. Has
callbacks for these events.
*//****************************************************************//**
\class AudioIOStartStreamOptions
\brief struct holding stream options, including a pointer to the
TimeTrack and AudioIOListener and whether the playback is looped.
*//*******************************************************************/ *//*******************************************************************/
#include "Audacity.h" #include "Audacity.h"

View File

@ -12,6 +12,10 @@
\brief The AutoRecoveryDialog prompts the user whether to \brief The AutoRecoveryDialog prompts the user whether to
recover previous Audacity projects that were closed incorrectly. recover previous Audacity projects that were closed incorrectly.
\class AutoSaveFile
\brief a class wrapping reading and writing of arbitrary data in
text or binary format to a file.
*//********************************************************************/ *//********************************************************************/
#include "AutoRecovery.h" #include "AutoRecovery.h"

View File

@ -19,7 +19,20 @@
presents a dialog to the user and lets them copy those block presents a dialog to the user and lets them copy those block
files into the project, making it self-contained. files into the project, making it self-contained.
**********************************************************************/ ********************************************************************//**
\class AliasedFile
\brief An audio file that is referenced (pointed into) directly from
an Audacity .aup file rather thna Audacity having its own copies of the
data.
*//*****************************************************************//**
\class DependencyDialog
\brief DependencyDialog shows dependencies of an AudacityProject on
AliasedFile s.
*//********************************************************************/
#include "Audacity.h" #include "Audacity.h"
#include "Dependencies.h" #include "Dependencies.h"

View File

@ -7,7 +7,15 @@
Dominic Mazzoni Dominic Mazzoni
Markus Meyer Markus Meyer
**********************************************************************/ ********************************************************************//**
\class ArrayOf
\brief Memory.h template class for making an array of float, bool, etc.
\class ArraysOf
\brief memory.h template class for making an array of arrays.
*//********************************************************************/
#ifndef __AUDACITY_MIX__ #ifndef __AUDACITY_MIX__
#define __AUDACITY_MIX__ #define __AUDACITY_MIX__

View File

@ -11,6 +11,7 @@ Paul Licameli
#ifndef __AUDACITY_REFRESH_CODE__ #ifndef __AUDACITY_REFRESH_CODE__
#define __AUDACITY_REFRESH_CODE__ #define __AUDACITY_REFRESH_CODE__
/// Namespace containing an enum 'what to do on a refresh?'
namespace RefreshCode namespace RefreshCode
{ {

View File

@ -51,6 +51,12 @@ This class is currently used by Theme to pack its images into the image
cache. Perhaps someday we will improve FlowPacker and make it more flexible, cache. Perhaps someday we will improve FlowPacker and make it more flexible,
and use it for toolbar and window layouts too. and use it for toolbar and window layouts too.
*//*****************************************************************//**
\class auStaticText
\brief is like wxStaticText, except it can be themed. wxStaticText
can't be.
*//*****************************************************************/ *//*****************************************************************/
#include "Audacity.h" #include "Audacity.h"

View File

@ -13,6 +13,12 @@
Classes derived form it include the WaveTrack, NoteTrack, LabelTrack Classes derived form it include the WaveTrack, NoteTrack, LabelTrack
and TimeTrack. and TimeTrack.
\class AudioTrack
\brief A Track that can load/save audio data to/from XML.
\class PlayableTrack
\brief An AudioTrack that can be played and stopped.
*//*******************************************************************/ *//*******************************************************************/
#include <algorithm> #include <algorithm>

View File

@ -15,13 +15,23 @@
\brief Represents a context to which a command may be applied. \brief Represents a context to which a command may be applied.
\class Command \class Command
\brief Base class which encapsulates a process. \brief Abstract base class for command interface. It implements
Command::SetParameter() and defers all other operations to derived classes.
That process may depend on certain parameters (determined by the command's That process may depend on certain parameters (determined by the command's
signature) and may produce output on various channels. Any process which is to signature) and may produce output on various channels. Any process which is to
be controlled by a script should be separated out into its own Command class. be controlled by a script should be separated out into its own Command class.
(And that class should be registered with the CommandDirectory). (And that class should be registered with the CommandDirectory).
\class ApplyAndSendResponse
\brief Decorator command that performs the given command and then
outputs a status message according to the result.
\class CommandImplementation,
\brief is derived from Command. It validates and
applies the command. CommandImplementation::Apply() is overloaded in
classes derived from it.
*//*******************************************************************/ *//*******************************************************************/
#ifndef __COMMAND__ #ifndef __COMMAND__
@ -56,7 +66,7 @@ public:
}; };
}; };
// Interface // Abstract base class for command interface.
class Command /* not final */ class Command /* not final */
{ {
public: public:
@ -72,7 +82,7 @@ public:
using CommandHolder = std::shared_ptr<Command>; using CommandHolder = std::shared_ptr<Command>;
// Command which wraps another command /// Command which wraps another command
class DecoratedCommand /* not final */ : public Command class DecoratedCommand /* not final */ : public Command
{ {
protected: protected:

View File

@ -11,6 +11,9 @@
\class EffectAutoDuck \class EffectAutoDuck
\brief Implements the Auto Ducking effect \brief Implements the Auto Ducking effect
\class AutoDuckRegion
\brief a struct that holds a start and end time.
*******************************************************************/ *******************************************************************/
#include "../Audacity.h" #include "../Audacity.h"

View File

@ -10,7 +10,12 @@
loaded in a platform-specific way and passed into the constructor, loaded in a platform-specific way and passed into the constructor,
but from here this class handles the interfacing. but from here this class handles the interfacing.
**********************************************************************/ ********************************************************************//**
\class AEffect
\brief VST Effects class, conforming to VST layout.
*//********************************************************************/
//#define VST_DEBUG //#define VST_DEBUG
//#define DEBUG_VST //#define DEBUG_VST
@ -126,6 +131,12 @@ DECLARE_MODULE_ENTRY(AudacityModule)
// ============================================================================ // ============================================================================
DECLARE_BUILTIN_MODULE(VSTBuiltin); DECLARE_BUILTIN_MODULE(VSTBuiltin);
///////////////////////////////////////////////////////////////////////////////
///
/// Auto created at program start up, this initialises VST.
///
///////////////////////////////////////////////////////////////////////////////
class VSTSubEntry final : public wxModule class VSTSubEntry final : public wxModule
{ {
public: public:
@ -176,6 +187,12 @@ enum InfoKeys
kKeyEnd kKeyEnd
}; };
///////////////////////////////////////////////////////////////////////////////
///
/// Information about one VST effect.
///
///////////////////////////////////////////////////////////////////////////////
class VSTSubProcess final : public wxProcess, class VSTSubProcess final : public wxProcess,
public EffectIdentInterface public EffectIdentInterface
{ {
@ -692,10 +709,10 @@ void VSTEffectsModule::Check(const wxChar *path)
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// VSTEffectOptionsDialog // Dialog for configuring latency, buffer size and graphics mode for a
// VST effect.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
class VSTEffectOptionsDialog final : public wxDialogWrapper class VSTEffectOptionsDialog final : public wxDialogWrapper
{ {
public: public:
@ -826,11 +843,12 @@ void VSTEffectOptionsDialog::OnOk(wxCommandEvent & WXUNUSED(evt))
} }
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// ///
// VSTEffectTimer /// Wrapper for wxTimer that calls a VST effect at regular intervals.
// ///
/// \todo should there be tests for no timer available?
///
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
class VSTEffectTimer final : public wxTimer class VSTEffectTimer final : public wxTimer
{ {
public: public:
@ -858,7 +876,6 @@ private:
// VSTEffect // VSTEffect
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
enum enum
{ {
ID_Duration = 20000, ID_Duration = 20000,
@ -1513,32 +1530,32 @@ bool VSTEffect::RealtimeProcessEnd()
return true; return true;
} }
// ///
// Some history... /// Some history...
// ///
// Before we ran into the Antress plugin problem with buffer size limitations, /// Before we ran into the Antress plugin problem with buffer size limitations,
// (see below) we just had a plain old effect loop...get the input samples, pass /// (see below) we just had a plain old effect loop...get the input samples, pass
// them to the effect, save the output samples. /// them to the effect, save the output samples.
// ///
// But, the hack I put in to limit the buffer size to only 8k (normally 512k or so) /// But, the hack I put in to limit the buffer size to only 8k (normally 512k or so)
// severely impacted performance. So, Michael C. added some intermediate buffering /// severely impacted performance. So, Michael C. added some intermediate buffering
// that sped things up quite a bit and this is how things have worked for quite a /// that sped things up quite a bit and this is how things have worked for quite a
// while. It still didn't get the performance back to the pre-hack stage, but it /// while. It still didn't get the performance back to the pre-hack stage, but it
// was a definite benefit. /// was a definite benefit.
// ///
// History over... /// History over...
// ///
// I've recently (May 2014) tried newer versions of the Antress effects and they /// I've recently (May 2014) tried newer versions of the Antress effects and they
// no longer seem to have a problem with buffer size. So, I've made a bit of a /// no longer seem to have a problem with buffer size. So, I've made a bit of a
// compromise...I've made the buffer size user configurable. Should have done this /// compromise...I've made the buffer size user configurable. Should have done this
// from the beginning. I've left the default 8k, just in case, but now the user /// from the beginning. I've left the default 8k, just in case, but now the user
// can set the buffering based on their specific setup and needs. /// can set the buffering based on their specific setup and needs.
// ///
// And at the same time I added buffer delay compensation, which allows Audacity /// And at the same time I added buffer delay compensation, which allows Audacity
// to account for latency introduced by some effects. This is based on information /// to account for latency introduced by some effects. This is based on information
// provided by the effect, so it will not work with all effects since they don't /// provided by the effect, so it will not work with all effects since they don't
// all provide the information (kn0ck0ut is one). /// all provide the information (kn0ck0ut is one).
// ///
bool VSTEffect::ShowInterface(wxWindow *parent, bool forceModal) bool VSTEffect::ShowInterface(wxWindow *parent, bool forceModal)
{ {
if (mDialog) if (mDialog)

View File

@ -67,6 +67,12 @@ using VSTEffectArray = std::vector < movable_ptr<VSTEffect> > ;
DECLARE_LOCAL_EVENT_TYPE(EVT_SIZEWINDOW, -1); DECLARE_LOCAL_EVENT_TYPE(EVT_SIZEWINDOW, -1);
DECLARE_LOCAL_EVENT_TYPE(EVT_UPDATEDISPLAY, -1); DECLARE_LOCAL_EVENT_TYPE(EVT_UPDATEDISPLAY, -1);
///////////////////////////////////////////////////////////////////////////////
///
/// VSTEffect is an Audacity EffectClientInterface that forwards actual
/// audio processing via a VSTEffectLink
///
///////////////////////////////////////////////////////////////////////////////
class VSTEffect final : public wxEvtHandler, class VSTEffect final : public wxEvtHandler,
public EffectClientInterface, public EffectClientInterface,
public EffectUIClientInterface, public EffectUIClientInterface,
@ -360,11 +366,11 @@ private:
}; };
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// ///
// VSTEffectsModule /// VSTEffectsModule is an Audacity ModuleInterface, in other words it
// /// represents one plug in.
///
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
class VSTEffectsModule final : public ModuleInterface class VSTEffectsModule final : public ModuleInterface
{ {
public: public:

View File

@ -6,8 +6,15 @@
Leland Lucius Leland Lucius
**********************************************************************/ ********************************************************************//**
\class AUControl
\brief a wxControl with Cocoa/Carbon support
\class AUControlImpl
\brief a wxWidgetCocoaImpl
*//********************************************************************/
#ifndef AUDACITY_AUCONTROL_H #ifndef AUDACITY_AUCONTROL_H
#define AUDACITY_AUCONTROL_H #define AUDACITY_AUCONTROL_H

View File

@ -10,7 +10,12 @@
*******************************************************************//** *******************************************************************//**
\class ErrorDialog \class ErrorDialog
Gives an Error message with an option for help. \brief Gives an Error message with an option for help.
*//*****************************************************************//**
\class AliasedFileMissingDialog
\brief Special case of ErrorDialog for reporting missing alias files.
*//********************************************************************/ *//********************************************************************/

View File

@ -44,6 +44,16 @@
*//***************************************************************//** *//***************************************************************//**
\class AdornedRulerPanel
\brief This is an Audacity Specific ruler panel which additionally
has border, selection markers, play marker.
Once TrackPanel uses wxSizers, we will derive it from some
wxWindow and the GetSize and SetSize functions
will then be wxWidgets functions instead.
*//***************************************************************//**
\class Ruler::Label \class Ruler::Label
\brief An array of these created by the Ruler is used to determine \brief An array of these created by the Ruler is used to determine
what and where text annotations to the numbers on the Ruler get drawn. what and where text annotations to the numbers on the Ruler get drawn.

View File

@ -276,11 +276,7 @@ private:
class QuickPlayIndicatorOverlay; class QuickPlayIndicatorOverlay;
class QuickPlayRulerOverlay; class QuickPlayRulerOverlay;
// This is an Audacity Specific ruler panel which additionally // This is an Audacity Specific ruler panel.
// has border, selection markers, play marker.
// Once TrackPanel uses wxSizers, we will derive it from some
// wxWindow and the GetSize and SetSize functions
// will then be wxWidgets functions instead.
class AUDACITY_DLL_API AdornedRulerPanel final : public OverlayPanel class AUDACITY_DLL_API AdornedRulerPanel final : public OverlayPanel
{ {
public: public: