diff --git a/.gitignore b/.gitignore index 6afb29566..d5bd8c7c4 100644 --- a/.gitignore +++ b/.gitignore @@ -90,6 +90,9 @@ mac/po/ mac/src/ mac/tests/ +# Doxygen output +dox/ + # Compiled Object files *.slo *.lo diff --git a/include/audacity/ModuleInterface.h b/include/audacity/ModuleInterface.h index 7d6a319bd..e713cf492 100644 --- a/include/audacity/ModuleInterface.h +++ b/include/audacity/ModuleInterface.h @@ -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 diff --git a/src/AColor.h b/src/AColor.h index 2b622646e..2b47ea935 100644 --- a/src/AColor.h +++ b/src/AColor.h @@ -21,6 +21,7 @@ class wxDC; class wxRect; +/// Used to restore pen, brush and logical-op in a DC back to what they were. struct DCUnchanger { public: DCUnchanger() {} @@ -36,9 +37,8 @@ public: long logicalOperation {}; }; -// Like wxDCPenChanger, etc., but simple and general -// Make temporary drawing context changes that you back out of, RAII style - +/// Makes 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 { using Base = std::unique_ptr; diff --git a/src/AudacityException.cpp b/src/AudacityException.cpp index f8191aec4..84c14876f 100644 --- a/src/AudacityException.cpp +++ b/src/AudacityException.cpp @@ -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 "AudacityException.h" diff --git a/src/AudioIO.cpp b/src/AudioIO.cpp index a78bd1cab..c806d8d44 100644 --- a/src/AudioIO.cpp +++ b/src/AudioIO.cpp @@ -390,6 +390,18 @@ Time (in seconds, = total_sample_count / sample_rate) use wxWidgets wxThread), this class sits in a thread loop reading and 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" diff --git a/src/AutoRecovery.cpp b/src/AutoRecovery.cpp index 9bb836546..7ce62077d 100644 --- a/src/AutoRecovery.cpp +++ b/src/AutoRecovery.cpp @@ -12,6 +12,10 @@ \brief The AutoRecoveryDialog prompts the user whether to 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" diff --git a/src/Dependencies.cpp b/src/Dependencies.cpp index bb7d458c2..7ae29b646 100644 --- a/src/Dependencies.cpp +++ b/src/Dependencies.cpp @@ -19,7 +19,20 @@ presents a dialog to the user and lets them copy those block 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 "Dependencies.h" diff --git a/src/Mix.h b/src/Mix.h index a2fefd82c..96d2fe436 100644 --- a/src/Mix.h +++ b/src/Mix.h @@ -7,7 +7,15 @@ Dominic Mazzoni 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__ #define __AUDACITY_MIX__ diff --git a/src/RefreshCode.h b/src/RefreshCode.h index 0b2f201cd..aa443003d 100644 --- a/src/RefreshCode.h +++ b/src/RefreshCode.h @@ -11,6 +11,7 @@ Paul Licameli #ifndef __AUDACITY_REFRESH_CODE__ #define __AUDACITY_REFRESH_CODE__ +/// Namespace containing an enum 'what to do on a refresh?' namespace RefreshCode { diff --git a/src/Theme.cpp b/src/Theme.cpp index c6e01b6b5..7999db9c6 100644 --- a/src/Theme.cpp +++ b/src/Theme.cpp @@ -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, 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" diff --git a/src/Track.cpp b/src/Track.cpp index fad10ed10..04b785b1e 100644 --- a/src/Track.cpp +++ b/src/Track.cpp @@ -13,6 +13,12 @@ Classes derived form it include the WaveTrack, NoteTrack, LabelTrack 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 diff --git a/src/commands/Command.h b/src/commands/Command.h index cc9c331ce..8711aabe9 100644 --- a/src/commands/Command.h +++ b/src/commands/Command.h @@ -15,13 +15,23 @@ \brief Represents a context to which a command may be applied. \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 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. (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__ @@ -56,7 +66,7 @@ public: }; }; -// Interface +// Abstract base class for command interface. class Command /* not final */ { public: @@ -72,7 +82,7 @@ public: using CommandHolder = std::shared_ptr; -// Command which wraps another command +/// Command which wraps another command class DecoratedCommand /* not final */ : public Command { protected: diff --git a/src/effects/AutoDuck.cpp b/src/effects/AutoDuck.cpp index b13c2a3f5..c44252f14 100644 --- a/src/effects/AutoDuck.cpp +++ b/src/effects/AutoDuck.cpp @@ -11,6 +11,9 @@ \class EffectAutoDuck \brief Implements the Auto Ducking effect +\class AutoDuckRegion +\brief a struct that holds a start and end time. + *******************************************************************/ #include "../Audacity.h" diff --git a/src/effects/VST/VSTEffect.cpp b/src/effects/VST/VSTEffect.cpp index 9eebfa119..5064ebbd4 100644 --- a/src/effects/VST/VSTEffect.cpp +++ b/src/effects/VST/VSTEffect.cpp @@ -10,7 +10,12 @@ loaded in a platform-specific way and passed into the constructor, but from here this class handles the interfacing. -**********************************************************************/ +********************************************************************//** + +\class AEffect +\brief VST Effects class, conforming to VST layout. + +*//********************************************************************/ //#define VST_DEBUG //#define DEBUG_VST @@ -126,6 +131,12 @@ DECLARE_MODULE_ENTRY(AudacityModule) // ============================================================================ DECLARE_BUILTIN_MODULE(VSTBuiltin); + +/////////////////////////////////////////////////////////////////////////////// +/// +/// Auto created at program start up, this initialises VST. +/// +/////////////////////////////////////////////////////////////////////////////// class VSTSubEntry final : public wxModule { public: @@ -176,6 +187,12 @@ enum InfoKeys kKeyEnd }; + +/////////////////////////////////////////////////////////////////////////////// +/// +/// Information about one VST effect. +/// +/////////////////////////////////////////////////////////////////////////////// class VSTSubProcess final : public wxProcess, 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 { 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 { public: @@ -858,7 +876,6 @@ private: // VSTEffect // /////////////////////////////////////////////////////////////////////////////// - enum { ID_Duration = 20000, @@ -1513,32 +1530,32 @@ bool VSTEffect::RealtimeProcessEnd() return true; } -// -// Some history... -// -// 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 -// 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) -// 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 -// while. It still didn't get the performance back to the pre-hack stage, but it -// was a definite benefit. -// -// History over... -// -// 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 -// 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 -// can set the buffering based on their specific setup and needs. -// -// 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 -// provided by the effect, so it will not work with all effects since they don't -// all provide the information (kn0ck0ut is one). -// +/// +/// Some history... +/// +/// 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 +/// 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) +/// 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 +/// while. It still didn't get the performance back to the pre-hack stage, but it +/// was a definite benefit. +/// +/// History over... +/// +/// 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 +/// 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 +/// can set the buffering based on their specific setup and needs. +/// +/// 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 +/// provided by the effect, so it will not work with all effects since they don't +/// all provide the information (kn0ck0ut is one). +/// bool VSTEffect::ShowInterface(wxWindow *parent, bool forceModal) { if (mDialog) diff --git a/src/effects/VST/VSTEffect.h b/src/effects/VST/VSTEffect.h index 8bbdaac15..40f0d4303 100644 --- a/src/effects/VST/VSTEffect.h +++ b/src/effects/VST/VSTEffect.h @@ -67,6 +67,12 @@ using VSTEffectArray = std::vector < movable_ptr > ; DECLARE_LOCAL_EVENT_TYPE(EVT_SIZEWINDOW, -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, public EffectClientInterface, 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 { public: diff --git a/src/effects/audiounits/AUControl.h b/src/effects/audiounits/AUControl.h index 103f439ec..3b0763111 100644 --- a/src/effects/audiounits/AUControl.h +++ b/src/effects/audiounits/AUControl.h @@ -6,8 +6,15 @@ Leland Lucius -**********************************************************************/ +********************************************************************//** +\class AUControl +\brief a wxControl with Cocoa/Carbon support + +\class AUControlImpl +\brief a wxWidgetCocoaImpl + +*//********************************************************************/ #ifndef AUDACITY_AUCONTROL_H #define AUDACITY_AUCONTROL_H diff --git a/src/widgets/ErrorDialog.cpp b/src/widgets/ErrorDialog.cpp index ad11fe47a..4725af088 100644 --- a/src/widgets/ErrorDialog.cpp +++ b/src/widgets/ErrorDialog.cpp @@ -10,7 +10,12 @@ *******************************************************************//** \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. *//********************************************************************/ diff --git a/src/widgets/Ruler.cpp b/src/widgets/Ruler.cpp index ba87b0c91..216adc63a 100644 --- a/src/widgets/Ruler.cpp +++ b/src/widgets/Ruler.cpp @@ -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 \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. diff --git a/src/widgets/Ruler.h b/src/widgets/Ruler.h index 111e4e85a..76934757b 100644 --- a/src/widgets/Ruler.h +++ b/src/widgets/Ruler.h @@ -276,11 +276,7 @@ private: class QuickPlayIndicatorOverlay; class QuickPlayRulerOverlay; -// 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. +// This is an Audacity Specific ruler panel. class AUDACITY_DLL_API AdornedRulerPanel final : public OverlayPanel { public: