iPlug2 - C++ Audio Plug-in Framework
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12345]
 CAAX_CIPlugParameters
 CAPIBitmapA base class interface for a bitmap abstraction around the different drawing back end bitmap representations
 CIPlugAPPHost::AppStateUsed to manage changes to app i/o
 CAudioEffect
 CEditControllerEx1
 CEDITOR_DELEGATE_CLASS
 CIGraphicsWin::HFontHolder
 CIBitmapUser-facing bitmap abstraction that you use to manage bitmap data, independant of draw class/platform
 CIBitmapBaseA base interface to be combined with IControl for bitmap-based controls "IBControls", managing an IBitmap
 CIBlendUsed to manage composite/blend operations, independent of draw class/platform
 CIBusInfoUsed to manage information about a bus such as whether it's an input or output, channel count
 CIByteChunkReaderHelper class to maintain a read position whilst extracting data from an IByteChunk
 CIByteGetterA helper class for IByteChunk and IByteStream that avoids code duplication
 CIChannelData< TIN, TOUT >Used to manage scratch buffers for each channel of I/O, which may involve converting from single to double precision
 CIColorUsed to manage color data, independent of draw class/platform
 CIColorStopUsed to represent a point/stop in a gradient
 CIControlThe lowest level base class of an IGraphics control
 CIEditorDelegateThis pure virtual interface delegates communication in both directions between a UI editor and something else (which is usually a plug-in) It is also the class that owns parameter objects (for historical reasons) - although it's not necessary to allocate them
 CIFillOptionsUsed to manage fill behaviour for path based drawing back ends
 CIFlexBoxIFlexBox is a basic C++ helper for Yoga https://yogalayout.com
 CIGestureInfoUsed to describe a particular gesture
 CIGraphicsThe lowest level base class of an IGraphics context
 CIGRAPHICS_DRAW_CLASS
 CIInfoListener
 CIKeyPressUsed for key press info, such as ASCII representation, virtual key (mapped to win32 codes) and modifiers
 CILayerAn abstraction that is used to store a temporary raster image/framebuffer
 CIMatrixUsed to store transformation matrices
 CIMidiMapping
 CIMidiMsgEncapsulates a MIDI message and provides helper functions
 CIMidiQueueA class to help with queuing timestamped MIDI messages
 CIMouseInfoUsed to group mouse coordinates with mouse modifier information
 CIMouseModUsed to manage mouse modifiers i.e
 CIMultiTouchControlBaseA base class for controls that can do do multitouch
 CIGraphicsWin::InstalledFont
 CIOConfigAn IOConfig is used to store bus info for each input/output configuration defined in the channel io string
 CIParamIPlug's parameter class
 CIPatternUsed to store pattern information for gradients
 CIPlugAPPHostA class that hosts an IPlug as a standalone app and provides Audio/Midi I/O
 CIPlugAUFactory< Plug, MIDIIn >AudioUnit v2 Factory Class Template
 CIPlugProcessorThe base class for IPlug Audio Processing
 CIPlugQueue< T >A lock-free SPSC queue used to transfer data between threads based on MLQueue.h by Randy Jones based on https://kjellkod.wordpress.com/2012/11/28/c-debt-paid-in-full-wait-free-lock-free-queue/
 CIPlugQueue< IMidiMsg >
 CIPlugQueue< ISenderData< MAXNC, float > >
 CIPlugQueue< ISenderData< MAXNC, std::array< float, MAXBUF > > >
 CIPlugQueue< ISenderData< MAXNC, T > >
 CIPlugQueue< ParamTuple >
 CIPlugQueue< SysExData >
 CIPlugVST3ControllerBaseShared VST3 controller code
 CIPlugVST3StateShared VST3 State management code
 CIPopupMenuA class for setting the contents of a pop up menu
 CIPresetA struct used for specifying baked-in factory presets
 CIRECTUsed to manage a rectangular area, independent of draw class/platform
 CIRECTListUsed to manage a list of rectangular areas and optimize them for drawing to the screen
 CISender< MAXNC, QUEUE_SIZE, T >ISender is a utility class which can be used to defer data from the realtime audio processing and send it to the GUI for visualization
 CISender< MAXNC, QUEUE_SIZE, float >
 CISender< MAXNC, QUEUE_SIZE, std::array< float, MAXBUF > >
 CISenderData< MAXNC, T >ISenderData is used to represent a typed data packet, that may contain values for multiple channels
 CISenderData< MAXNC, std::array< float, MAXBUF > >
 CIShadowUsed to specify properties of a drop-shadow to a layer
 CIStrokeOptionsUsed to manage stroke behaviour for path based drawing back ends
 CISVGUser-facing SVG abstraction that you use to manage SVG data ISVG doesn't actually own the image data
 CISysExA struct for dealing with SysEx messages
 CIPopupMenu::ItemA class to specify an item of a pop up menu
 CITextIText is used to manage font and text/text entry style for a piece of text on the UI, independent of draw class/platform
 CITimeInfoEncapsulates information about the host transport state
 CIVColorSpecContains a set of 9 colors used to theme IVControls
 CIVec2Encapsulate an xy point in one struct
 CIVectorBaseA base interface to be combined with IControl for vectorial controls "IVControls", in order for them to share a common style If you need more flexibility, you're on your own!
 CIVStyleA struct encapsulating a set of properties used to configure IVControls
 CIWebView
 CIVLEDMeterControl< MAXNC >::LEDRangeLED Range comprises info for a range of LED segments
 CParameter
 CParamTupleIn certain cases we need to queue parameter changes for transferral between threads
 CPlatformFont
 CIVPlotControl::PlotGroups a plot function and color
 CProcessor
 CReaperActionHelper struct for registering Reaper Actions
 CIParam::ShapeBase struct for parameter shaping
 CSingleComponentEffect
 CStringListParameter
 CSysExDataThis structure is used when queueing Sysex messages
 CTimerBase class for timer
 CIMultiTouchControlBase::TrackedTouch