Audacity  3.0.1
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 123]
 NClientDataUtility ClientData::Site to register hooks into a host class that attach client data.
 NClipActionsNamespace for functions for Clip menu
 NExtraActionsNamespace for helper functions for Extra menu
 NLabelEditActionsNamespace for functions for Edit Label submenu
 NNavigationActionsNamespace for functions for project navigation menu (part of Extra menu)
 NstdSTL namespace
 NToolActionsNamespace for functions for View Toolbar menu
 NToolbarActionsNamespace for functions for View Toolbar menu
 NTrackInfoFunctions for drawing the track control panel, which is shown to the side of a track It has the menus, pan and gain controls displayed in it. So "Info" is somewhat a misnomer. Should possibly be "TrackControls"
 NTrackTyperMetaprogramming enabling track_cast even when the subclasses are incomplete types
 C_LADSPA_Descriptor_LADSPA_Descriptor is a structure that provides the API to a LADSPA (Linux Audio Plugin Architecture) Effect.
 C_LADSPA_PortRangeHint_LADSPA_PortRangeHint is a structure that gives parameter validation information for a LADSPA (Linux Audio Plugin Architecture) plug in effect.
 CAboutDialogThe AboutDialog shows the program version and developer credits
 CAboutDialogCreditItemAboutDialogCreditItem is a structure used by the AboutDialog to hold information about one contributor to Audacity
 CAButtonA wxButton with mouse-over behaviour
 CAColorAColor Manages color brushes and pens
 CActiveProjectsManages a list of active projects
 CADCChangerMakes temporary drawing context changes that you back out of, RAII style
 CAdornedRulerPanelThis is an Audacity Specific ruler panel which additionally has border, selection markers, play marker
 CAEffectVST Effects class, conforming to VST layout
 CAliasedFileAn audio file that is referenced (pointed into) directly from an Audacity .aup file rather than Audacity having its own copies of the data
 CAllProjectsObject of class AllProjects acts like a standard library container, but refers to a global array of open projects. So you can iterate easily over shared pointers to them with range-for : for (auto pProject : AllProjects{}) { ... } The pointers are never null
 CAndValidatorParameter must pass both of the supplied validators
 CAppCommandEventAn event 'envelope' for sending Command objects through the wxwidgets event loop
 CApplicableForEntry for the Applicability table
 CApplyAndSendResponseApplyAndSendResponse is a DecoratoredCommand that performs the given command and then outputs a status message according to the result. It manages a CommandContext which is passed into its mCommand, so that result messages are routed back to the right place
 CApplyMacroDialogShows progress in executing commands in MacroCommands
 CArrayOfThis 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
 CArraysOfMemory.h template class for making an array of arrays
 CASliderASlider is a custom slider, allowing for a slicker look and feel
 CAStaticBitmapA widget for bitmaps which ignores the erase event for flicker-free use
 CAttachableScrollBarAn AttachableScrollBar is a scroll bar that can be attached to multiple items and so control their scrolling. Uses floats internally, not ints, allowing for (external) control of zooming
 CAttachedVirtualFunctionClass template generates single-dispatch, open method registry tables
 CAUControlWxControl with Cocoa/Carbon support
 CAudacityAppAudacityApp is the 'main' class for Audacity
 CAudacityCommandBase class for command in Audacity
 CAudacityCommandDialogDefault dialog used for commands. Is populated using ShuttleGui
 CAudacityExceptionBase class for exceptions specially processed by the application
 CAudacityFileConfigOur own specialisation of FileConfig
 CAudacityLoggerAudacityLogger is a thread-safe logger class
 CAudacityMessageDialogWrap wxMessageDialog so that caption IS translatable
 CAudacityPrintoutDerived from wxPrintout, this class helps with printing
 CAudacityProjectThe top-level handle to an Audacity project. It serves as a source of events that other objects can bind to, and a container of associated sub-objects that it treats opaquely. It stores a filename and a status message and a few other things. There is very little in this class, most of the intelligence residing in the cooperating attached objects
 CAudacityTextEntryDialogWrap wxTextEntryDialog so that caption IS translatable
 CAudioIOAudioIO uses the PortAudio library to play and record sound
 CAudioIOBaseA singleton object supporting queries of the state of any active audio streams, and audio device capabilities
 CAudioIoCallbackAudioIoCallback is a class that implements the callback required by PortAudio. The callback needs to be responsive, has no GUI, and copies data into and out of the sound card buffers. It also sends data to the meters
 CAudioIOListenerMonitors record play start/stop and new sample blocks. Has callbacks for these events
 CAudioIOStartStreamOptionsStruct holding stream options, including a pointer to the time warp info and AudioIOListener and whether the playback is looped
 CAudioThreadDefined different on Mac and other platforms (on Mac it does not use wxWidgets wxThread), this class sits in a thread loop reading and writing audio
 CAudioTrackTrack subclass holding data representing sound (as notes, or samples, or ...)
 CAudioUnitEffectAn Effect class that handles a wide range of effects. ??Mac only??
 CauHeaderThe auHeader is a structure used by SimpleBlockFile for .au file format. There probably is an 'official' header file we should include to get its definition, rather than rolling our own
 CAUPImportFileHandleAn ImportFileHandle for AUP files (pre-AUP3)
 CAUPImportPluginAn ImportPlugin for AUP files (pre-AUP3)
 CauStaticTextLike wxStaticText, except it can be themed. wxStaticText can't be
 CAutoDuckRegionStruct that holds a start and end time
 CAutoRollbackRenamerAutoRollbackRenamer handles the renaming of files which is needed when producing a NEW version of a file which may fail. On failure the old version is put back in place
 CAV_DeleterAV_Deleter is part of FFmpeg support. It's used with the RAII idiom
 CAV_Deleter< T, void, Fn >
 CBackedPanelBackedPanel is for a panel that consists of a bitmap with something drawn over it. It supports efficient repainting when the overlays change and recreation of the bitmap when the panel size is changed
 CBackgroundCellClass representing the background of a Track. It provides the hit test function that tells us what was hit
 CBatchEvalCommandGiven a string representing a command, pass it to the MacroCommands system
 CBatchEvalCommandTypeThe <something>CommandType classes are classes which are going away. They all provided a BuildSignature (what parameters they accept) and Name, but that is now replaced by the AudacityCommand interface.
 CBatchPrefsA probably unused PrefsPanel that in debug builds could offer a setting used in debugging batch (aka macros) processing
 CBE_CONFIGBE_CONFIG is a structure defined in the Blade DLL Interface for LAME (MP3 Conversion DLL)
 CBE_VERSIONBE_VERSION is a structure defined in the Blade DLL Interface for LAME (MP3 Conversion DLL)
 CBenchmarkDialogBenchmarkDialog is used for measuring performance and accuracy of sample block storage
 CBiquadRepresents a biquad digital filter
 CBoolArrayValidatorParameter must be char array of booleans, e.g. "011010001"
 CBoolValidatorParameter must be a boolean
 CBriefCommandMessageTargetBriefCommandMessageTarget is a CommandOutputTarget that provides status in a briefer listing
 CBriefCommandOutputTargetsBriefCommandOutputTargets is a CommandOutputTargets that replaces the status message target with the BriefCommandMessageTarget version
 CBrowserDialogAdds some event handling to an HtmlWindow
 CBuiltinCommandsModuleInternal module to auto register all built in commands. It is closely modelled on BuiltinEffectsModule
 CBuiltinEffectsModuleInternal module to auto register all built in effects.
 CBuiltinFormatStringStruct to hold a formatting control string and its user facing name Used in an array to hold the built-in time formats that are always available to the user
 CButtonHandleA UIHandle for a TrackPanel button, such as the Mute and Solo buttons
 CCellularPanelFormerly part of TrackPanel, this abstract base class has no special knowledge of Track objects and is intended for reuse with other windows
 CChoiceEditorModified version of wxGridChoiceEditor using wxChoice instead of wxComboBox
 CCoarseTrackShifterUsed in default of other reimplementations to shift any track as a whole, invoking Track::Offset()
 CCombinedMessageTargetSends messages to two message targets at once
 CCommandBuilderA type of factory for Commands of various sorts
 CCommandContextCommandContext provides additional information to an 'Apply()' command. It provides the project, and provides output channels for Error, Progress and Status. Status is used for general messaging from a command back to its invoker
 CCommandDirectoryAllows registration and lookup (by name) of command types
 CCommandFunctorCommandFunctor is a very small class that works with CommandManager. It holds the callback for one command
 CCommandHandlerContains methods for applying commands that are passed to it
 CCommandImplementationDerived from OldStyleCommand. It validates and applies the command. CommandImplementation::Apply() is overloaded in classes derived from it
 CCommandListList of CommandListEntry
 CCommandListEntryCommandListEntry is a structure used by CommandManager
 CCommandManagerCommandManager implements a system for organizing all user-callable commands
 CCommandMessageTargetInterface for objects that can receive (string) messages from a command
 CCommandMessageTargetDecoratorCommandMessageTargetDecorator is a CommandOutputTarget that forwards its work on to another one. Typically we derive from it to modify some functionality and forward the rest
 CCommandOutputTargetsCommandOutputTargets a mix of three output classes to output progress indication, status messages and errors
 CCommandParametersCommandParameters, derived from wxFileConfig, is essentially doing the same things as the Shuttle classes. It does text <-> binary conversions of parameters. It does not seem to be using actual file read/writing.
 CCommandProgressTargetInterface for objects that can receive command progress information
 CCommandSignatureClass that maps parameter names to default values and validators
 CCompareAudioCommandReturns information about the amount of audio that is about a certain threshold of difference in two selected tracks
 CCompatibilityEntryDescribes format-codec compatibility
 CComponentInterfaceComponentInterface provides name / vendor / version functions to identify plugins. It is what makes a class a plug-in. Additionally it provides an optional parameter definitions function, for those components such as commands, effects and (soon) preference pagess that define parameters
 CComponentInterfaceSymbolComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional, different string as msgid for lookup in a translation catalog
 CCompressorPanelPanel used within the EffectCompressor for EffectCompressor
 CConfigClientInterfaceConfigClientInterface is an unholy get/set configuration class, which differentiates between private and shared config. It should probably be replaced with a Shuttle
 CConstTrackIntervalA start and an end time, and non-mutative access to optional extra information
 CControlToolBarA ToolBar that has the main Transport buttons
 CCrossFaderNot used by Audacity (yet) apparently work in progress that has been abandoned
 CDCUnchangerUsed to restore pen, brush and logical-op in a DC back to what they were
 CDecoratedCommandDecoratedCommand is a decorator for command. It forwards functions to the mCommand it holds
 CDefaultDelayedHandlerActionA default template parameter for GuardedCall
 CDemoCommandAn AudacityCommand that does nothing but provide parameters. It is for development purposes
 CDemoDialogDemoDialog used with DemoCommand
 CDependencyDialogDependencyDialog shows dependencies of an AudacityProject on AliasedFile s
 CDestroyerA 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
 CDeviceManagerA singleton that manages the audio devices known to Audacity
 CDevicePrefsA PrefsPanel used to select recording and playback devices and other settings
 CDeviceToolBarA toobar to allow easier changing of input and output devices
 CDiagsProcessing of the macros for recording bad events or performance monitoring
 CDigitInfoDigitInfo is a class used in NumericTextCtrl
 CDirectoriesPrefsA PrefsPanel used to select directories
 CDitherThis class implements various functions for dithering and is derived from the dither code in the Ardour project, written by Steve Harris
 CDoubleValidatorParameter must be a floating-point number
 CDragCommandCommand that sets clip information
 CEBUR128Implements EBU-R128 loudness measurement
 CEchoDialogEchoDialog used with EffectEcho
 CEditToolBarA ToolBar that has the edit buttons on it
 CEffectBase class for many of the effects in Audacity
 CEffectAmplifyAn Effect that makes a sound louder or softer
 CEffectAutoDuckImplements the Auto Ducking effect
 CEffectBassTrebleA high shelf and low shelf filter
 CEffectChangeSpeedAn Effect that affects both pitch & speed
 CEffectChangeTempoAn EffectSoundTouch provides speeding up or slowing down tempo without changing pitch
 CEffectClickRemovalAn Effect for removing clicks
 CEffectClientInterfaceEffectClientInterface provides the ident interface to Effect, and is what makes Effect into a plug-in command. It has functions for realtime that are not part of AudacityCommand
 CEffectCompressorAn Effect derived from EffectTwoPassSimpleMono
 CEffectDefinitionInterfaceEffectDefinitionInterface is a ComponentInterface that additionally tracks flag-functions for interactivity, play-preview and whether the effect can run without a GUI
 CEffectDistortionA WaveShaper distortion effect
 CEffectDtmfAn effect that generates DTMF tones
 CEffectEchoAn Effect that causes an echo, variable delay and volume
 CEffectEqualizationAn Effect that modifies volume in different frequency bands
 CEffectFadeAn Effect that reduces the volume to zero over achosen interval
 CEffectFindClippingLocates clipping and inserts labels when found
 CEffectHostInterfaceEffectHostInterface is a decorator of a EffectUIClientInterface. It adds virtual (abstract) functions to get presets and actually apply the effect. It uses ConfigClientInterface to add Getters/setters for private and shared configs
 CEffectInvertAn Effect that inverts the selected audio
 CEffectLevellerAn Effect that aims to selectively make softer sounds louder
 CEffectLoudnessAn Effect to bring the loudness level up to a chosen level
 CEffectManagerEffectManager is the class that handles effects and effect categories
 CEffectManagerInterfaceUNUSED. EffectManagerInterface provides a single function to find files matching a pattern in a list
 CEffectNoiseAn effect to add white noise
 CEffectNoiseReductionA two-pass effect to reduce background noise
 CEffectNoiseRemovalA two-pass effect to remove background noise
 CEffectNormalizeAn Effect to bring the peak level up to a chosen level
 CEffectPaulstretchAn Extreme Time Stretch and Time Smear effect
 CEffectPhaserAn Effect that changes frequencies in a time varying manner
 CEffectRepairUse the interpolation code to fill in damaged audio. Damage can include pops, clicks, or clipping. As long as the damaged section is short and surrounded by lots of good audio, it is usually quite successful
 CEffectRepeatAn Effect that repeats audio several times over
 CEffectReverbA reverberation effect
 CEffectReverseAn Effect that reverses the selected audio
 CEffectScienFilterAn Effect that applies 'classical' IIR filters
 CEffectScienFilterPanelEffectScienFilterPanel is used with EffectScienFilter and controls a graph for EffectScienFilter
 CEffectSilenceAn effect to add silence
 CEffectSimpleMonoAn abstract Effect class that simplifies the implementation of a basic monaural effect. Inherit from it if your effect just modifies a single track in place and doesn't care how many samples it gets at a time
 CEffectsPrefsA PrefsPanel for general GUI preferences
 CEffectStereoToMonoAn Effect to convert stereo to mono
 CEffectTimeScaleAn EffectTimeScale does high quality sliding time scaling/pitch shifting
 CEffectToneGenAn Effect that can generate a sine, square or sawtooth wave. An extended mode of EffectToneGen supports 'chirps' where the frequency changes smoothly during the tone
 CEffectTruncSilenceTruncate Silence automatically reduces the length of passages where the volume is below a set threshold level
 CEffectTwoPassSimpleMonoAn Effect base class that implements a two pass process by using EffectSimpleMono
 CEffectUIClientInterfaceEffectUIClientInterface is an abstract base class to populate a UI and validate UI values. It can import and export presets
 CEffectUIHostInterfaceEffectUIHostInterface has nothing in it. It is provided so that an Effect can call SetHostUI passing in a pointer to an EffectUIHostInterface. It contains no functionality and is provided, apparently, for type checking. Since only EffectUIHost uses it, EffectUIHost could be used instead
 CEffectWahwahAn Effect that adds a 'spectral glide'
 CEnumsEnums is a helper class for Shuttle. It defines enumerations which are used in effects dialogs, in the effects themselves and in preferences
 CEnumSettingAdapts EnumSettingBase to a particular enumeration type
 CEnvelopePiecewise linear or piecewise exponential function from double to double
 CEnvPointEnvPoint, derived from XMLTagHandler, provides Envelope with a draggable point type
 CEQCurveEQCurve is used with EffectEqualization
 CEQPointEQPoint is used with EQCurve and hence EffectEqualization
 CEqualizationPanelEqualizationPanel is used with EqualizationDialog and controls a graph for EffectEqualization. We should look at amalgamating the various graphing code, such as provided by FrequencyPlotDialog and FilterPanel
 CErrorDialogGives an Error message with an option for help
 CExpandingToolBarA smart ToolBar class that has a "MainPanel" which is always displayed, and an "ExtraPanel" that can be hidden to save space
 CExpandingToolBarEvtHandlerA custom event handler for ExpandingToolBar
 CExportMain class to control the export function
 CExportCommandCommand for exporting audio
 CExportFFmpegControlling class for FFmpeg exporting. Creates the options dialog of the appropriate type, adds tags and invokes the export function
 CExportFFmpegAACOptionsOptions dialog for FFmpeg exporting of AAC format
 CExportFFmpegAC3OptionsAC3 export options dialog
 CExportFFmpegAMRNBOptionsOptions dialog for FFmpeg exporting of AMRNB format
 CExportFFmpegOptionsCustom FFmpeg export dialog
 CExportFFmpegOPUSOptionsOptions dialog for FFmpeg exporting of OPUS format
 CExportFFmpegWMAOptionsOptions dialog for FFmpeg exporting of WMA format
 CExportMixerDialogDialog for advanced mixing
 CExportMixerPanelPanel that displays mixing for advanced mixing option
 CExportMultipleDialogPresents a dialog box allowing the user to export multiple files either by exporting each track as a separate file, or by exporting each label as a separate file
 CExportTypeContainer for information about supported export types
 CExposedFormatDescribes export type
 CExtImportPrefsA PrefsPanel used to select extended import filter options
 CExtTargetFactoryExtended Target Factory with more options
 CFFmpegImportFileHandle! Does actual import, returned by FFmpegImportPlugin::Open
 CFFmpegImportPluginAn ImportPlugin for FFmpeg data
 CFFmpegLibsClass used to dynamically load FFmpeg libraries
 CFileDialogDialog used to present platform specific "Save As" dialog with custom controls
 CFileExceptionThrown for failure of file or database operations in deeply nested places
 CFileHistorySimilar to wxFileHistory, but customized to our needs
 CFileNamesProvides Static functions to yield filenames
 CFinal_action"finally" as in The C++ Programming Language, 4th ed., p. 358 Useful for defining ad-hoc RAII actions. typical usage: auto cleanup = finally([&]{ ... code; ... });
 CFindClippingDialogFindClippingDialog used with EffectFindClipping
 CFindFFmpegDialogAllows user to locate libav* libraries
 CFLACImportFileHandleAn ImportFileHandle for FLAC data
 CFLACImportPluginAn ImportPlugin for FLAC data
 CFlowPackerPacks rectangular boxes into a rectangle, using simple first fit
 CFormatAbstract base class used in importing a file
 CFormatClassifierFormatClassifier classifies the sample format and endianness of raw audio files
 CFreqPlotWorks with FrequencyPlotDialog to dsplay a spectrum plot of the waveform. This class actually does the graph display
 CFrequencyPlotDialogDisplays a spectrum plot of the waveform. Has options for selecting parameters of the plot
 CGeometricInputRateTimeWarperTimeScale - rate varies geometrically with input
 CGeometricOutputRateTimeWarperTimeScale - rate varies geometrically with output
 CGetInfoCommandCommand which outputs a list of available menu commands on the status channel
 CGetPreferenceCommandCommand for getting the value of a preference
 CGetTrackInfoCommandObsolete. GetInfo now does it
 CGrabberThe widget to the left of a ToolBar that allows it to be dragged around to NEW positions
 CGrabberEventGrabber Class
 CGridSupplies an accessible grid based on wxGrid
 CGStreamerImportFileHandle! Does actual import, returned by GStreamerImportPlugin::Open
 CGStreamerImportPluginAn ImportPlugin for GStreamer data
 CGUIPrefsA PrefsPanel for general GUI preferences
 CHelpCommandCommand to get help about other commands
 CHelpSystemClass which contains static methods and data needed for implementing help buttons
 CHistoryDialogWorks with UndoManager to allow user to see descriptions of and undo previous commands. Also allows you to selectively clear the undo memory so as to free up space
 CHtmlWindowHtmlWindow Class
 CIdentityTimeWarperNo change to time at all
 CImageRollAn ImageRoll is an image that can be expanded to an arbitrary size; it is made up of both fixed pieces and repeating pieces
 CImageRollPanelA wxPanel which displays an ImageRoll
 CImportCommandCommand for importing audio
 CImporterClass which actually imports the auido, using functions defined in ImportPCM.cpp, ImportMP3.cpp, ImportOGG.cpp, ImportRawData.cpp, ImportLOF.cpp, and ImportAUP.cpp
 CImportExportPrefsA PrefsPanel used to select import and export options
 CImportFileHandleAn ImportFileHandle for data
 CImportPluginBase class for FlacImportPlugin, LOFImportPlugin, MP3ImportPlugin, OggImportPlugin and PCMImportPlugin. Gives API for sound file import
 CImportRawDialogImportRawDialog prompts you with options such as endianness and sample size to help you importing data of an unknown format
 CInconsistencyExceptionException that should be impossible in production, thrown only from provably unreachable places
 CInteractiveOutputTargetsInteractiveOutputTargets is an output target that pops up a dialog, if necessary
 CInternatInternationalisation support
 CIntValidatorParameter must be integral
 CInvisiblePanelAn InvisiblePanel is a panel which does not repaint its own background
 CInvisibleTemporaryProjectMakes a temporary project that doesn't display on the screen
 CIteratorRangeA convenience for use with range-for
 CKeyConfigPrefsA PrefsPanel for keybindings
 CKeyViewProvides multiple views of keyboard shortcuts
 CLabelDialogDialog for editing labels
 CLabelStructA LabelStruct holds information for ONE label in a LabelTrack
 CLabelTrackA LabelTrack is a Track that holds labels (LabelStruct)
 CLadspaEffectAn Effect that calls up a LADSPA plug in, i.e. many possible effects from this one class
 CLadspaEffectDialogDialog used with Effect
 Clame_global_flagsStruct with zillion of control parameters that control lame export (MP3 Conversion DLL)
 CLangChoiceDialogA dialog used (at start up) to present the user with a choice of languages for Audacity
 CLegacyAliasBlockFileAn AliasBlockFile that references uncompressed data in an existing file
 CLegacyBlockFileAudacity 1.1.0 block file format:
 CLibraryPrefsA PrefsPanel used to select manage external libraries like the MP3 and FFmpeg encoding libraries
 CLinearInputInverseRateTimeWarperTimeScale - inverse rate varies linearly with input
 CLinearInputRateTimeWarperTimeScale - rate varies linearly with input
 CLinearOutputRateTimeWarperTimeScale - rate varies linearly with output
 CLinearTimeWarperLinear scaling, initialised by giving two points on the line
 CLinkingHtmlWindowAn HtmlWindow that handles linked clicked - usually the link will go to our own local copy of the manual, but it could launch a new browser window
 CLispifiedCommandOutputTargetsLispifiedCommandOutputTargets is a CommandOutputTargets that replaces the status message target with the LispyCommandMessageTarget version
 CLispyCommandMessageTargetLispyCommandMessageTarget is a CommandOutputTarget that provides status in a lispy style
 CLocationUsed only by WaveTrack, a special way to hold location that can accommodate merged regions
 CLOFImportFileHandleAn ImportFileHandle for LOF data
 CLOFImportPluginAn ImportPlugin for LOF data
 CLongMessageDialogLongMessageDialog is a dialog with a Text Window in it to capture the more lengthy output from some commands
 CLWSliderLightweight version of ASlider. In other words it does not have a window permanently associated with it
 CLyricsPanelLyricsPanel is a panel that paints the bouncing ball and the lyrics text
 CMacroCommandDialogProvides a list of configurable commands for use with MacroCommands
 CMacroCommandsMaintains the list of commands for batch/macro processing. See also MacrosWindow and ApplyMacroDialog
 Cmad_bitptrStruct in the MPEG library, used for MP3 compression by MP3Exporter
 Cmad_decoderStruct in the MPEG library, used for MP3 compression by MP3Exporter
 Cmad_frameStruct in the MPEG library, used for MP3 compression by MP3Exporter
 Cmad_headerStruct in the MPEG library, used for MP3 compression by MP3Exporter
 Cmad_pcmStruct in the MPEG library, used for MP3 compression by MP3Exporter
 Cmad_streamStruct in the MPEG library, used for MP3 compression by MP3Exporter
 Cmad_synthStruct in the MPEG library, used for MP3 compression by MP3Exporter
 Cmad_timer_tStruct in the MPEG library, used for MP3 compression by MP3Exporter
 CMatrixHolds a matrix of doubles and supports arithmetic, subsetting, and matrix inversion. Used by InterpolateAudio
 CMenuBarListList of MenuBarListEntry
 CMenuBarListEntryMenuBarListEntry is a structure used by CommandManager
 CMenuCreatorMenuCreator is responsible for creating the main menu bar
 CMenuManagerMenuManager handles updates to menu state
 CMessageBoxExceptionAbstract AudacityException subclass displays a message, specified by further subclass
 CMessageBoxTargetDisplays messages from a command in an AudacityMessageBox
 CMessageCommandCommand to get a message response. Used for testing, and used internally to create messages for forwarding
 CMessageCommandTypeThe <something>CommandType classes are classes which are going away. They all provided a BuildSignature (what parameters they accept) and Name, but that is now replaced by the AudacityCommand interface.
 CMessageDialogTargetMessageDialogTarget is a CommandOutputTarget that sends its status to the LongMessageDialog
 CMeterBarA struct used by MeterPanel to hold the position of one bar
 CMeterPanelMeterPanel is a panel that paints the meter used for monitoring or playback
 CMeterToolBarA ToolBar that holds the VU Meter
 CMeterUpdateMsgMessage used to update the MeterPanel
 CMeterUpdateQueueQueue of MeterUpdateMsg used to feed the MeterPanel
 CMidiIOPrefsA PrefsPanel used to select recording and playback devices and other settings
 CMIDIParserUnused class that might someday be used again to read MIDI files into a NoteTrack
 CMixerFunctions for doing the mixdown of the tracks
 CMixerSpecClass used with Mixer
 CMixerToolBarA ToolBar that provides the record and playback volume settings
 CModulePrefsA PrefsPanel to enable/disable certain modules. 'Modules' are dynamically linked libraries that modify Audacity. They are plug-ins with names like mnod-script-pipe that add NEW features
 CMousePrefsA PrefsPanel that presents an interface for user to view the default bindings of mouse buttons to commands
 CMP2ExporterClass used to export MP2 files
 CMP3ExporterClass used to export MP3 files
 CMP3ImportFileHandleAn ImportFileHandle for MP3 data
 CMP3ImportPluginAn ImportPlugin for MP3 data
 CMultiDialogA multi purpose dialog, mainly used to show lists of orphaned or damaged block files. It is a good alternative to having a dialog pop up for each problem encountered, since there can be many orphans
 CMultiFormatReaderMultiFormatReader reads raw audio files in different formats and machine endianness representations
 CNoiseRemovalDialogDialog used with EffectNoiseRemoval
 CNoteTrackA Track that is used for Midi notes. (Somewhat old code)
 CNoteTrackDisplayDataData used to display a note track
 CNullMessageTargetUsed to ignore a command's message updates
 CNullProgressTargetUsed to ignore a command's progress updates
 CNumericConverterNumericConverter provides the advanced formatting control used in the selection bar of Audacity
 CNumericEditorWxGridCellEditor for the NumericTextCtrl
 CNumericFieldNumericField is a class used in NumericTextCtrl
 CNumericRendererWxGridCellRenderer for the NumericTextCtrl
 CNumericTextCtrlAxNumericTextCtrlAx gives the NumericTextCtrl Accessibility
 CNyqControlA control on a NyquistDialog
 CNyquistEffectAn Effect that calls up a Nyquist (XLISP) plug-in, i.e. many possible effects from this one class
 CNyquistOutputDialogDialog used with NyquistEffect
 CODComputeSummaryTaskA class representing a modular task to be used with the On-Demand structures
 CODDecodeBlockFileAn AliasBlockFile that references uncompressed data in an existing file
 CODDecodeFlacTaskA class representing a modular task to be used with the On-Demand structures
 CODDecodeTaskA class representing a modular task to be used with the On-Demand structures
 CODFileDecoderClass to decode a particular file (one per file). Saves info such as filename and length (after the header is read.)
 CODFlacDecoderClass to decode a particular file (one per file). Saves info such as filename and length (after the header is read.)
 CODManagerA singleton that manages currently running Tasks on an arbitrary number of threads
 CODPCMAliasBlockFileAn AliasBlockFile that references uncompressed data in an existing file
 CODTaskA class representing a modular task to be used with the On-Demand structures
 CODTaskThreadA thread that executes a part of the task specified by an ODTask
 CODWaveTrackTaskQueueA class representing a modular task to be used with the On-Demand structures
 COGGImportPluginAn ImportPlugin for OGG data
 COldStyleCommandAbstract base class for command interface. This is the version 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, which is being removed. These Commands were managed by CommandDirectory
 COldStyleCommandPointerOldStyleCommandPointer is a unique_ptr to an OldStyleCommand
 COldStyleCommandTypeBase class for containing data common to all commands of a given type. Also acts as a factory
 COpenProjectCommandCommand for opening an Audacity project
 COptionalLike a smart pointer, allows for object to not exist (nullptr)
 COptionValidatorParameter must be one of the defined options
 CPasteTimeWarperUnit slope but with either a jump (pasting more) or a flat interval (pasting less)
 CPaulStretchClass that helps EffectPaulStretch. It does the FFTs and inner loop of the effect
 CPCMAliasBlockFileAn AliasBlockFile that references uncompressed data in an existing file
 CPCMImportFileHandleAn ImportFileHandle for PCM data
 CPCMImportPluginAn ImportPlugin for PCM data
 CPlatformCompatibilityFilename Compatibility utilities
 CPlayableTrackAudioTrack subclass that can also be audibly replayed by the program
 CPlaybackPrefsA PrefsPanel used to select playback options
 CPluginManagerPluginManager maintains a list of all plug ins. That covers modules, effects, generators, analysis-effects, commands. It also has functions for shared and private configs - which need to move out
 CPrefsDialogDialog that shows the current PrefsPanel in a tabbed divider
 CPrefsPanelBase class for a panel in the PrefsDialog. Classes derived from this class include BatchPrefs, DirectoriesPrefs, GUIPrefs, KeyConfigPrefs, MousePrefs, QualityPrefs, SpectrumPrefs and ThemePrefs
 CProfilerA simple profiler to measure the average time lengths that a particular task/function takes. Currently not thread-safe and not thread-smart, but it will probably work fine if you use it on a high level
 CProgressDialogProgressDialog Class
 CProgressToMessageTargetProgressToMessageTarget formats the percentage complete text as a message and sends it to that message target
 CProjectFileIOObject associated with a project that manages reading and writing of Audacity project file formats, and autosave
 CProjectManagerObject associated with a project for high-level management of the project's lifetime, including creation, destruction, opening from file, importing, pushing undo states, and reverting to saved states
 CProjectSerializerClass used to (de)serialize the project catalog
 CProjectSettingsHolds various per-project settings values, including the sample rate, and sends events to the project when certain values change
 CProjectWindowA top-level window associated with a project, and handling scrollbars and zooming
 CProjectWindowBaseA top-level window associated with a project
 CQualityPrefsA PrefsPanel used for setting audio quality
 CRangeValidatorParameter must lie between the two given numbers
 CRecordingPrefsA PrefsPanel used to select recording options
 CRegionStructure to hold region of a wavetrack and a comparison function for sortability
 CRegionTimeWarperNo change before the specified region; during the region, warp according to the given warper; after the region, constant shift so as to match at the end of the warped region
 CRegistrarBase class for registration callback. Audacity will call providers RegisterNameOfThing() functions with an &Registrar as the argument. RegisterNameOfThing() is then responsible for calling the appropriate callback functions
 CRepeatDialogDialog used with EffectRepeat
 CResampleInterface to libsoxr
 CResponseStores a command response string (and other response data if it becomes necessary)
 CResponseQueueAllow messages to be sent from the main thread to the script thread
 CResponseTargetConstructs a response (to be sent back to a script)
 CRestoreValueStructure used by ValueRestorer
 CRingBufferHolds streamed audio samples
 CRulerUsed to display a Ruler
 CRulerPanelRulerPanel class allows you to work with a Ruler like any other wxWindow
 CSampleBlockAbstract class allows access to contents of a block of sound samples, serialization as XML, and reference count management that can suppress reclamation of its storage
 CSampleBlockFactoryAbstract base class with methods to produce SampleBlock objects
 CSaveCopyCommandCommand for saving a copy of currently project
 CSaveLogCommandCommand for saving the log contents
 CSaveProjectCommandCommand for saving an Audacity project
 CScoreAlignDialogScoreAlignDialog is \TODO
 CScreenshotBigDialogScreenshotBigDialog provides an alternative Gui for ScreenshotCommand. It adds a timer that allows a delay before taking a screenshot, provides lots of one-click buttons, options to resize the screen. It forwards the actual work of doing the commands to the ScreenshotCommand
 CScreenshotCommandImplements a command for capturing various areas of the screen or project window. It's one big if-elseif switch statement with lots of small calculations of rectangles
 CScriptCommandRelayScriptCommandRelay is just a way to move some of the scripting-specific code out of ModuleManager
 CSelectCommandCommand for changing time, frequency and track selection. This class is a little baroque, as it uses the SelectTimeCommand, SelectFrequenciesCommand and SelectTracksCommand, when it could just explicitly code all three
 CSelectedRegionDefines a selected portion of a project
 CSelectFrequenciesCommandCommand for changing the frequency selection
 CSelectionBar(not quite a Toolbar) at foot of screen for setting and viewing the selection range
 CSelectionBarListenerA parent class of SelectionBar, used to forward events to do with changes in the SelectionBar
 CSelectTimeCommandCommand for changing the time selection
 CSelectTracksCommandCommand for changing the selection of tracks
 CSeqBlockData structure containing pointer to a sample block and a start time. Element of a BlockArray
 CSequenceA WaveTrack contains WaveClip(s). A WaveClip contains a Sequence. A Sequence is primarily an interface to an array of SeqBlock instances, corresponding to the audio sample blocks in the database. Contrast with RingBuffer
 CSetClipCommandCommand that sets clip information
 CSetEnvelopeCommandCommand that sets envelope information
 CSetLabelCommandCommand that sets label information
 CSetPreferenceCommandCommand for setting a preference to a given value
 CSetProjectCommandCommand that sets project information
 CSetTrackAudioCommandA SetTrackBase that sets pan, gain, mute and solo
 CSetTrackBaseBase class for the various SetTrackCommand classes.
Sbclasses provide the settings that are relevant to them
 CSetTrackCommandA SetTrackBase that combines SetTrackStatusCommand, SetTrackAudioCommand and SetTrackVisualsCommand
 CSetTrackStatusCommandA SetTrackBase that sets name, selected and focus
 CSetTrackVisualsCommandA SetTrackBase that sets appearance of a track
 CShiftTimeWarperBehaves like another, given TimeWarper, except shifted by a fixed amount
 CShuttleMoves data from one place to another, converting it as required
 CShuttleCliDerived from Shuttle, this class exchanges string parameters with a binary representation
 CShuttleDefaultsShuttle that sets parameters to their default values
 CShuttleGetAutomationShuttle that gets parameter values into a string
 CShuttleGetDefinitionShuttle that retrieves a JSON format definition of a command's parameters
 CShuttleGuiDerived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI
 CShuttleGuiBaseBase class for shuttling data to and from a GUI
 CShuttleParamsShuttle that deals with parameters. This is a base class with lots of virtual functions that do nothing by default. Unrelated to class Shuttle
 CShuttlePrefsA kind of Shuttle to exchange data with preferences e.g. the registry
 CShuttleSetAutomationShuttle that sets parameters to a value (from a string)
 CSilentBlockFileA BlockFile containing nothing but silence. Saves disk space
 CSimpleBlockFileA BlockFile that reads and writes uncompressed data using libsndfile
 CSimpleGuardA default template parameter for GuardedCall<R>
 CSimpleGuard< bool >Specialization of SimpleGuard, also defining a default value
 CSimpleGuard< void >Specialization of SimpleGuard, also defining a default value
 CSimpleMessageBoxExceptionA MessageBoxException that shows a given, unvarying string
 CSliderDialogPop up dialog used with an LWSlider
 CSoundActivatedRecordDialogConfigures sound activated recording
 CSourceOutputStreamHelper class based on wxOutputStream used to get a png file in text format
 CSpecPowerCalculationSpecPowerCalculation is a simple spectral power level meter
 CSpectralSelectionBar(not quite a Toolbar) at foot of screen for setting and viewing the frequency selection range
 CSpectralSelectionBarListenerA class used to forward events to do with changes in the SpectralSelectionBar
 CSpectrogramSettingsSpectrogram settings, either for one track or as defaults
 CSpectrumAnalystUsed for finding the peaks, for snapping to peaks
 CSpectrumPrefsA PrefsPanel for spectrum settings
 CSplashDialogThe SplashDialog shows help information for Audacity when Audacity starts up
 CSqliteSampleBlockImplementation of SampleBlock using Sqlite database
 CSqliteSampleBlockFactoryImplementation of SampleBlockFactory using Sqlite database
 CStatusBarTargetDisplays messages from a command in a wxStatusBar
 CSubMenuListList of SubMenuListEntry
 CSubMenuListEntrySubMenuListEntry is a structure used by CommandManager
 CSyllableUsed in LyricsPanel, a Syllable gives positional information to be used with the bouncing ball effect
 CTagsID3 Tags (for MP3)
 CTagsEditorDialogDerived from ExpandingToolBar, this dialog allows editing of Tags
 CTargetFactoryTargetFactory makes Command output targets. By default, we ignore progress updates but display all other messages directly
 CTaskProfileSimple class to keep track of one task that may be called multiple times
 CThemeBased on ThemeBase, Theme manages image and icon resources
 CThemeBaseTheme management - Image loading and saving
 CThemePrefsA PrefsPanel that configures dynamic loading of Theme icons and colours
 CTimeDialogDialog used to request a time value
 CTimerRecordDialogDialog for Timer Record, i.e., timed or long recording
 CTimeTrackA kind of Track used to 'warp time'
 CTimeWarperTransforms one point in time to another point. For example, a time stretching effect might use one to keep track of what happens to labels and split points in the input
 CTipWindowA wxPopupWindow used to give the numerical value of an LWSlider or ASlider
 CToolBarWorks with ToolManager and ToolDock to provide a dockable window in which buttons can be placed
 CToolBarAreaAn alternative to ToolBarFrame which can contain an ExpandingToolBar. ToolBarArea is used for a 'docked' ToolBar, ToolBarFrame for a floating one
 CToolBarArrangementSmall class that holds some layout information for an ExpandingToolBar
 CToolBarDialogA dialog based container for ExpandingToolBars providing modal based operations
 CToolBarFrameA miniframe based container for ExpandingToolBars providing modeless presentation
 CToolBarGrabberDraws the grabber for an ExpandingToolBar
 CToolBarResizerWxWindow that provides the resizer for a toolbar on the right hand side. Responsible for drawing the resizer appearance, resizing mouse events and constraining the resizing
 CToolDockA dynamic panel where a ToolBar can be docked
 CToolFrameClass ToolFrame
 CToolManagerClass ToolManager
 CToolsToolBarA kind of ToolBar with Tools on it
 CTrackAbstract base class for an object holding data associated with points on a time axis
 CTrackArtistThis class handles the actual rendering of WaveTracks (both waveforms and spectra), NoteTracks, LabelTracks and TimeTracks
 CTrackIdAn in-session identifier of track objects across undo states. It does not persist between sessions
 CTrackIntervalA start and an end time, and mutative access to optional extra information
 CTrackIntervalDataOptional extra information about an interval, appropriate to a subtype of Track
 CTrackIterIterator over only members of a TrackList of the specified subtype, optionally filtered by a predicate; past-end value dereferenceable, to nullptr
 CTrackIterRangeRange between two TrackIters, usable in range-for statements, and with Visit member functions
 CTrackListA flat linked list of tracks supporting Add, Remove, Clear, and Contains, serialization of the list of tracks, event notifications
 CTrackListEventNotification of changes in individual tracks of TrackList, or of TrackList's composition
 CTrackPanelCoordinates updates and operations on the main part of the screen which contains multiple tracks
 CTrackPanelAxHelper to TrackPanel to give accessibility
 CTrackPanelDrawableDrawing interface common to cells, groups of cells, and temporary handles in CellularPanel
 CTrackPanelNodeThe TrackPanel is built up of nodes, subtrees of the CellularPanel's area Common base class for TrackPanelCell (leaf) and TrackPanelGroup (nonleaf)
 CTracksBehaviorsPrefsA PrefsPanel for Tracks Behaviors settings
 CTrackShifterAbstract base class for policies to manipulate a track type with the Time Shift tool
 CTracksPrefsA PrefsPanel for track display and behavior properties
 CTransactionScopeRAII for a database transaction, possibly nested
 CTranscriptionToolBarA kind of ToolBar used to help with analysing voice recordings
 CUFileHolderFFmpeg structure to hold a file pointer and provide a return value when closing the file
 CUIHandleShort-lived drawing and event-handling object associated with a TrackPanelCell
 CUndoManagerMaintain a non-persistent list of states of the project, to support undo and redo commands
 CUndoStackElemHolds one item with description and time range for the UndoManager
 CUnusableImportPluginUsed in place of a real plug in for plug ins that have not been compiled or are not available in this version of Audacity. Has enough information to identify the file extensions that would be used, but little else
 CUserExceptionCan be thrown when user cancels operations, as with a progress dialog. Delayed handler does nothing
 CValidatorA Validator is an object which checks whether a wxVariant satisfies a certain criterion. This is a base validator which allows anything
 CValueRestorerSet a variable temporarily in a scope
 CVectorHolds a matrix of doubles and supports arithmetic operations, including Vector-Matrix operations. Used by InterpolateAudio
 CVoiceKeyThis implements a voice key, detecting either the next "ON" or "OFF" point
 CWarningDialogGives a warning message, that can be dismissed, with crucially the ability to not see similar warnings again for this session
 CWarningsPrefsA PrefsPanel to enable/disable certain warning messages
 CWaveCacheCache used with WaveClip to cache wave information (for drawing)
 CWaveClipThis allows multiple clips to be a part of one WaveTrack
 CWaveformPrefsA PrefsPanel for spectrum settings
 CWaveformSettingsWaveform settings, either for one track or as defaults
 CWaveTrackA Track that contains audio waveform data
 CWaveTrackFactoryUsed to create or clone a WaveTrack, with appropriate context from the project that will own the track
 CWindowAccessibleAn alternative to using wxWindowAccessible, which in wxWidgets 3.1.1 contained GetParent() which was incorrect
 CWrappedTypeUsed in type conversions, this wrapper for ints, strings, doubles and enums provides conversions between all the types. Functions that work on wrapped types can quickly be reused to work on any of these types. This cuts out a lot of repetitive code
 CwxTreebookA wxTreebook is a class like wxNotebook, but not yet supported by wxWidgets 2.6.3
 CwxTreebookItemDataOne item in a wxTreebook. (I think)
 CXMLFileReaderReads a file and passes the results through an XMLTagHandler
 CXMLFileWriterWrapper to output XML data to files
 CXMLStringWriterWrapper to output XML data to strings
 CXMLTagHandlerThis class is an interface which should be implemented by classes which wish to be able to load and save themselves using XML files
 CXMLValueCheckerXMLValueChecker implements static bool methods for checking input values from XML files
 CXMLWriterBase class for XMLFileWriter and XMLStringWriter that provides the general functionality for creating XML in UTF8 encoding