Ardour  9.0-pre0-582-g084a23a80d
ardour/ardour/types.h File Reference
#include <bitset>
#include <cstdint>
#include <istream>
#include <map>
#include <memory>
#include <set>
#include <vector>
#include <sys/types.h>
#include <pthread.h>
#include <inttypes.h>
#include "temporal/bbt_time.h"
#include "temporal/range.h"
#include "temporal/superclock.h"
#include "temporal/time.h"
#include "temporal/timeline.h"
#include "temporal/types.h"
#include "pbd/id.h"
#include "pbd/microseconds.h"
#include "ardour/chan_count.h"
#include "ardour/plugin_types.h"
Include dependency graph for ardour/ardour/types.h:

Go to the source code of this file.

Classes

struct  ARDOUR::IOChange
 
class  ARDOUR::AnyTime
 
struct  ARDOUR::MusicSample
 
struct  ARDOUR::TimelineRange
 
class  ARDOUR::CueMarker
 
struct  ARDOUR::PeakData
 
struct  ARDOUR::CleanupReport
 
struct  ARDOUR::RouteProcessorChange
 
struct  ARDOUR::BusProfile
 
struct  ARDOUR::LatencyRange
 
struct  ARDOUR::CaptureInfo
 
struct  ARDOUR::FollowAction
 
struct  ARDOUR::CueEvent
 
struct  ARDOUR::ProcessedRanges
 

Namespaces

 ARDOUR
 

Typedefs

typedef float ARDOUR::Sample
 
typedef float ARDOUR::pan_t
 
typedef float ARDOUR::gain_t
 
typedef uint32_t ARDOUR::layer_t
 
typedef uint32_t ARDOUR::pframes_t
 
typedef Temporal::samplecnt_t ARDOUR::samplecnt_t
 
typedef Temporal::samplepos_t ARDOUR::samplepos_t
 
typedef Temporal::sampleoffset_t ARDOUR::sampleoffset_t
 
typedef Temporal::timepos_t ARDOUR::timepos_t
 
typedef Temporal::timecnt_t ARDOUR::timecnt_t
 
typedef std::list< std::pair< sampleoffset_t, sampleoffset_t > > ARDOUR::AudioIntervalResult
 
typedef std::map< std::shared_ptr< ARDOUR::Region >, AudioIntervalResult > ARDOUR::AudioIntervalMap
 
typedef std::list< std::shared_ptr< Region > > ARDOUR::RegionList
 
typedef std::set< std::shared_ptr< Playlist > > ARDOUR::PlaylistSet
 
typedef std::set< CueMarker > ARDOUR::CueMarkers
 
typedef std::vector< std::shared_ptr< Source > > ARDOUR::SourceList
 
typedef std::list< samplepos_t > ARDOUR::AnalysisFeatureList
 
typedef std::vector< samplepos_t > ARDOUR::XrunPositions
 
typedef std::list< std::shared_ptr< Route > > ARDOUR::RouteList
 
typedef std::list< std::shared_ptr< GraphNode > > ARDOUR::GraphNodeList
 
typedef std::list< std::shared_ptr< Stripable > > ARDOUR::StripableList
 
typedef std::list< std::weak_ptr< Route > > ARDOUR::WeakRouteList
 
typedef std::list< std::weak_ptr< Stripable > > ARDOUR::WeakStripableList
 
typedef std::list< std::shared_ptr< AutomationControl > > ARDOUR::AutomationControlList
 
typedef std::list< std::weak_ptr< AutomationControl > > ARDOUR::WeakAutomationControlList
 
typedef std::list< std::shared_ptr< SlavableAutomationControl > > ARDOUR::SlavableAutomationControlList
 
typedef std::set< AutomationType > ARDOUR::AutomationTypeSet
 
typedef std::list< std::shared_ptr< VCA > > ARDOUR::VCAList
 
typedef std::vector< std::shared_ptr< Bundle > > ARDOUR::BundleList
 
typedef std::vector< std::shared_ptr< IOPlug > > ARDOUR::IOPlugList
 
typedef std::vector< CaptureInfo * > ARDOUR::CaptureInfos
 
typedef std::vector< CueEvent > ARDOUR::CueEvents
 

Enumerations

enum  ARDOUR::InsertMergePolicy {
  ARDOUR::InsertMergeReject , ARDOUR::InsertMergeRelax , ARDOUR::InsertMergeReplace , ARDOUR::InsertMergeTruncateExisting ,
  ARDOUR::InsertMergeTruncateAddition , ARDOUR::InsertMergeExtend
}
 
enum  ARDOUR::AutomationType {
  ARDOUR::NullAutomation , ARDOUR::GainAutomation , ARDOUR::PanAzimuthAutomation , ARDOUR::PanElevationAutomation ,
  ARDOUR::PanWidthAutomation , ARDOUR::PanFrontBackAutomation , ARDOUR::PanLFEAutomation , ARDOUR::PluginAutomation ,
  ARDOUR::PluginPropertyAutomation , ARDOUR::SoloAutomation , ARDOUR::SoloIsolateAutomation , ARDOUR::SoloSafeAutomation ,
  ARDOUR::MuteAutomation , ARDOUR::MidiCCAutomation , ARDOUR::MidiPgmChangeAutomation , ARDOUR::MidiPitchBenderAutomation ,
  ARDOUR::MidiChannelPressureAutomation , ARDOUR::MidiNotePressureAutomation , ARDOUR::MidiSystemExclusiveAutomation , ARDOUR::FadeInAutomation ,
  ARDOUR::FadeOutAutomation , ARDOUR::EnvelopeAutomation , ARDOUR::RecEnableAutomation , ARDOUR::RecSafeAutomation ,
  ARDOUR::TrimAutomation , ARDOUR::PhaseAutomation , ARDOUR::MonitoringAutomation , ARDOUR::BusSendLevel ,
  ARDOUR::BusSendEnable , ARDOUR::SurroundSendLevel , ARDOUR::InsertReturnLevel , ARDOUR::MainOutVolume ,
  ARDOUR::MidiVelocityAutomation , ARDOUR::PanSurroundX , ARDOUR::PanSurroundY , ARDOUR::PanSurroundZ ,
  ARDOUR::PanSurroundSize , ARDOUR::PanSurroundSnap , ARDOUR::BinauralRenderMode , ARDOUR::PanSurroundElevationEnable ,
  ARDOUR::PanSurroundZones , ARDOUR::PanSurroundRamp , ARDOUR::SendLevelAutomation , ARDOUR::SendEnableAutomation ,
  ARDOUR::SendAzimuthAutomation
}
 
enum  ARDOUR::AutoState {
  ARDOUR::Off = 0x00 , ARDOUR::Write = 0x01 , ARDOUR::Touch = 0x02 , ARDOUR::Play = 0x04 ,
  ARDOUR::Latch = 0x08
}
 
enum  ARDOUR::AlignStyle { ARDOUR::CaptureTime , ARDOUR::ExistingMaterial }
 
enum  ARDOUR::AlignChoice { ARDOUR::UseCaptureTime , ARDOUR::UseExistingMaterial , ARDOUR::Automatic }
 
enum  ARDOUR::MeterPoint {
  ARDOUR::MeterInput , ARDOUR::MeterPreFader , ARDOUR::MeterPostFader , ARDOUR::MeterOutput ,
  ARDOUR::MeterCustom
}
 
enum  ARDOUR::DiskIOPoint { ARDOUR::DiskIOPreFader , ARDOUR::DiskIOPostFader , ARDOUR::DiskIOCustom }
 
enum  ARDOUR::MeterType {
  ARDOUR::MeterMaxSignal = 0x0001 , ARDOUR::MeterMaxPeak = 0x0002 , ARDOUR::MeterPeak = 0x0004 , ARDOUR::MeterKrms = 0x0008 ,
  ARDOUR::MeterK20 = 0x0010 , ARDOUR::MeterK14 = 0x0020 , ARDOUR::MeterIEC1DIN = 0x0040 , ARDOUR::MeterIEC1NOR = 0x0080 ,
  ARDOUR::MeterIEC2BBC = 0x0100 , ARDOUR::MeterIEC2EBU = 0x0200 , ARDOUR::MeterVU = 0x0400 , ARDOUR::MeterK12 = 0x0800 ,
  ARDOUR::MeterPeak0dB = 0x1000 , ARDOUR::MeterMCP = 0x2000
}
 
enum  ARDOUR::TrackMode { ARDOUR::Normal , ARDOUR::NonLayered , ARDOUR::Destructive }
 
enum  ARDOUR::RecordMode { ARDOUR::RecLayered , ARDOUR::RecNonLayered , ARDOUR::RecSoundOnSound }
 
enum  ARDOUR::SectionOperation { ARDOUR::CopyPasteSection , ARDOUR::CutPasteSection , ARDOUR::InsertSection , ARDOUR::DeleteSection }
 
enum  ARDOUR::NoteMode { ARDOUR::Sustained , ARDOUR::Percussive }
 
enum  ARDOUR::ChannelMode { ARDOUR::AllChannels = 0 , ARDOUR::FilterChannels , ARDOUR::ForceChannel }
 
enum  ARDOUR::ColorMode { ARDOUR::MeterColors = 0 , ARDOUR::ChannelColors , ARDOUR::TrackColor }
 
enum  ARDOUR::SnapPref { ARDOUR::SnapToAny_Visual = 0 , ARDOUR::SnapToGrid_Scaled = 1 , ARDOUR::SnapToGrid_Unscaled = 2 }
 
enum  ARDOUR::MeterFalloff {
  ARDOUR::MeterFalloffOff = 0 , ARDOUR::MeterFalloffSlowest = 1 , ARDOUR::MeterFalloffSlow = 2 , ARDOUR::MeterFalloffSlowish = 3 ,
  ARDOUR::MeterFalloffModerate = 4 , ARDOUR::MeterFalloffMedium = 5 , ARDOUR::MeterFalloffFast = 6 , ARDOUR::MeterFalloffFaster = 7 ,
  ARDOUR::MeterFalloffFastest = 8
}
 
enum  ARDOUR::MeterHold { ARDOUR::MeterHoldOff = 0 , ARDOUR::MeterHoldShort = 40 , ARDOUR::MeterHoldMedium = 100 , ARDOUR::MeterHoldLong = 200 }
 
enum  ARDOUR::EditMode { ARDOUR::Slide , ARDOUR::Ripple , ARDOUR::Lock }
 
enum  ARDOUR::SnapTarget { ARDOUR::SnapTargetGrid , ARDOUR::SnapTargetOther , ARDOUR::SnapTargetBoth }
 
enum  ARDOUR::RippleMode { ARDOUR::RippleSelected , ARDOUR::RippleAll , ARDOUR::RippleInterview }
 
enum  ARDOUR::RegionSelectionAfterSplit {
  ARDOUR::None = 0 , ARDOUR::NewlyCreatedLeft = 1 , ARDOUR::NewlyCreatedRight = 2 , ARDOUR::NewlyCreatedBoth = 3 ,
  ARDOUR::Existing = 4 , ARDOUR::ExistingNewlyCreatedLeft = 5 , ARDOUR::ExistingNewlyCreatedRight = 6 , ARDOUR::ExistingNewlyCreatedBoth = 7
}
 
enum  ARDOUR::RangeSelectionAfterSplit { ARDOUR::ClearSel = 0 , ARDOUR::PreserveSel = 1 , ARDOUR::ForceSel = 2 }
 
enum  ARDOUR::TimeSelectionAfterSectionPaste { ARDOUR::SectionSelectNoop = 0 , ARDOUR::SectionSelectClear = 1 , ARDOUR::SectionSelectRetain = 2 , ARDOUR::SectionSelectRetainAndMovePlayhead = 3 }
 
enum  ARDOUR::RegionPoint { ARDOUR::Start , ARDOUR::End , ARDOUR::SyncPoint }
 
enum  ARDOUR::Placement { ARDOUR::PreFader , ARDOUR::PostFader }
 
enum  ARDOUR::MonitorModel { ARDOUR::HardwareMonitoring , ARDOUR::SoftwareMonitoring , ARDOUR::ExternalMonitoring }
 
enum  ARDOUR::MonitorChoice { ARDOUR::MonitorAuto = 0 , ARDOUR::MonitorInput = 0x1 , ARDOUR::MonitorDisk = 0x2 , ARDOUR::MonitorCue = 0x3 }
 
enum  ARDOUR::FastWindOp { ARDOUR::FastWindOff = 0 , ARDOUR::FastWindVarispeed = 0x1 , ARDOUR::FastWindLocate = 0x2 }
 
enum  ARDOUR::MonitorState { ARDOUR::MonitoringSilence = 0x0 , ARDOUR::MonitoringInput = 0x2 , ARDOUR::MonitoringDisk = 0x4 , ARDOUR::MonitoringCue = 0x6 }
 
enum  ARDOUR::VUMeterStandard { ARDOUR::MeteringVUfrench , ARDOUR::MeteringVUamerican , ARDOUR::MeteringVUstandard , ARDOUR::MeteringVUeight }
 
enum  ARDOUR::MeterLineUp { ARDOUR::MeteringLineUp24 , ARDOUR::MeteringLineUp20 , ARDOUR::MeteringLineUp18 , ARDOUR::MeteringLineUp15 }
 
enum  ARDOUR::InputMeterLayout { ARDOUR::LayoutVertical , ARDOUR::LayoutHorizontal , ARDOUR::LayoutAutomatic }
 
enum  ARDOUR::PFLPosition { ARDOUR::PFLFromBeforeProcessors , ARDOUR::PFLFromAfterProcessors }
 
enum  ARDOUR::AFLPosition { ARDOUR::AFLFromBeforeProcessors , ARDOUR::AFLFromAfterProcessors }
 
enum  ARDOUR::ClockDeltaMode { ARDOUR::NoDelta , ARDOUR::DeltaEditPoint , ARDOUR::DeltaOriginMarker }
 
enum  ARDOUR::DenormalModel { ARDOUR::DenormalNone , ARDOUR::DenormalFTZ , ARDOUR::DenormalDAZ , ARDOUR::DenormalFTZDAZ }
 
enum  ARDOUR::LayerModel { ARDOUR::LaterHigher , ARDOUR::Manual }
 
enum  ARDOUR::ListenPosition { ARDOUR::AfterFaderListen , ARDOUR::PreFaderListen }
 
enum  ARDOUR::AutoConnectOption { ARDOUR::ManualConnect = 0x0 , ARDOUR::AutoConnectPhysical = 0x1 , ARDOUR::AutoConnectMaster = 0x2 }
 
enum  ARDOUR::TracksAutoNamingRule { ARDOUR::UseDefaultNames = 0x1 , ARDOUR::NameAfterDriver = 0x2 }
 
enum  ARDOUR::SampleFormat { ARDOUR::FormatFloat = 0 , ARDOUR::FormatInt24 , ARDOUR::FormatInt16 }
 
enum  ARDOUR::CDMarkerFormat { ARDOUR::CDMarkerNone , ARDOUR::CDMarkerCUE , ARDOUR::CDMarkerTOC , ARDOUR::MP4Chaps }
 
enum  ARDOUR::HeaderFormat {
  ARDOUR::BWF , ARDOUR::WAVE , ARDOUR::WAVE64 , ARDOUR::CAF ,
  ARDOUR::AIFF , ARDOUR::iXML , ARDOUR::RF64 , ARDOUR::RF64_WAV ,
  ARDOUR::MBWF , ARDOUR::FLAC
}
 
enum  ARDOUR::RunContext { ARDOUR::ButlerContext = 0 , ARDOUR::TransportContext , ARDOUR::ExportContext }
 
enum  ARDOUR::SyncSource {
  ARDOUR::JACK = 0 , ARDOUR::Engine = 0 , ARDOUR::MTC , ARDOUR::MIDIClock ,
  ARDOUR::LTC
}
 
enum  ARDOUR::TransportRequestSource {
  ARDOUR::TRS_Engine , ARDOUR::TRS_MTC , ARDOUR::TRS_MIDIClock , ARDOUR::TRS_LTC ,
  ARDOUR::TRS_MMC , ARDOUR::TRS_UI
}
 
enum  ARDOUR::TransportRequestType { ARDOUR::TR_StartStop = 0x1 , ARDOUR::TR_Speed = 0x2 , ARDOUR::TR_Locate = 0x4 }
 
enum  ARDOUR::ShuttleUnits { ARDOUR::Percentage , ARDOUR::Semitones }
 
enum  ARDOUR::SrcQuality {
  ARDOUR::SrcBest , ARDOUR::SrcGood , ARDOUR::SrcQuick , ARDOUR::SrcFast ,
  ARDOUR::SrcFastest
}
 
enum  ARDOUR::RegionEquivalence { ARDOUR::Exact , ARDOUR::Enclosed , ARDOUR::Overlap , ARDOUR::LayerTime }
 
enum  ARDOUR::WaveformScale { ARDOUR::Linear , ARDOUR::Logarithmic }
 
enum  ARDOUR::WaveformShape { ARDOUR::Traditional , ARDOUR::Rectified }
 
enum  ARDOUR::ScreenSaverMode { ARDOUR::InhibitNever , ARDOUR::InhibitWhileRecording , ARDOUR::InhibitAlways }
 
enum  ARDOUR::PluginGUIBehavior { ARDOUR::PluginGUIHide , ARDOUR::PluginGUIDestroyAny , ARDOUR::PluginGUIDestroyVST }
 
enum  ARDOUR::AppleNSGLViewMode { ARDOUR::NSGLHiRes , ARDOUR::NSGLLoRes , ARDOUR::NSGLDisable }
 
enum  ARDOUR::FadeShape {
  ARDOUR::FadeLinear , ARDOUR::FadeFast , ARDOUR::FadeSlow , ARDOUR::FadeConstantPower ,
  ARDOUR::FadeSymmetric
}
 
enum  ARDOUR::TransportState { ARDOUR::TransportStopped = 0 , ARDOUR::TransportRolling = 1 , ARDOUR::TransportLooping = 2 , ARDOUR::TransportStarting = 3 }
 
enum  ARDOUR::PortFlags {
  ARDOUR::IsInput = 0x1 , ARDOUR::IsOutput = 0x2 , ARDOUR::IsPhysical = 0x4 , ARDOUR::CanMonitor = 0x8 ,
  ARDOUR::IsTerminal = 0x10 , ARDOUR::Hidden = 0x20 , ARDOUR::Shadow = 0x40 , ARDOUR::TransportMasterPort = 0x80 ,
  ARDOUR::TransportGenerator = 0x100 , ARDOUR::TransportSyncPort = 0x180
}
 
enum  ARDOUR::MidiPortFlags { ARDOUR::MidiPortMusic = 0x1 , ARDOUR::MidiPortControl = 0x2 , ARDOUR::MidiPortSelection = 0x4 , ARDOUR::MidiPortVirtual = 0x8 }
 
enum  ARDOUR::BufferingPreset { ARDOUR::Small , ARDOUR::Medium , ARDOUR::Large , ARDOUR::Custom }
 
enum  ARDOUR::AutoReturnTarget { ARDOUR::LastLocate = 0x1 , ARDOUR::RangeSelectionStart = 0x2 , ARDOUR::Loop = 0x4 , ARDOUR::RegionSelectionStart = 0x8 }
 
enum  ARDOUR::PlaylistDisposition { ARDOUR::CopyPlaylist , ARDOUR::NewPlaylist , ARDOUR::SharePlaylist }
 
enum  ARDOUR::MidiTrackNameSource { ARDOUR::SMFTrackNumber , ARDOUR::SMFTrackName , ARDOUR::SMFFileAndTrackName , ARDOUR::SMFInstrumentName }
 
enum  ARDOUR::MidiTempoMapDisposition { ARDOUR::SMFTempoIgnore , ARDOUR::SMFTempoUse }
 
enum  ARDOUR::LoopFadeChoice { ARDOUR::NoLoopFade , ARDOUR::EndLoopFade , ARDOUR::BothLoopFade , ARDOUR::XFadeLoop }
 
enum  ARDOUR::OverwriteReason { ARDOUR::PlaylistChanged = 0x1 , ARDOUR::PlaylistModified = 0x2 , ARDOUR::LoopDisabled = 0x4 , ARDOUR::LoopChanged = 0x8 }
 
enum  ARDOUR::LocateTransportDisposition { ARDOUR::MustRoll , ARDOUR::MustStop , ARDOUR::RollIfAppropriate }
 
enum  ARDOUR::CueBehavior { ARDOUR::FollowCues = 0x1 , ARDOUR::ImplicitlyIgnoreCues = 0x2 }
 
enum  ARDOUR::SelectionOperation {
  ARDOUR::SelectionSet , ARDOUR::SelectionAdd , ARDOUR::SelectionToggle , ARDOUR::SelectionRemove ,
  ARDOUR::SelectionExtend
}
 
enum  ARDOUR::RecordState { ARDOUR::Disabled = 0 , ARDOUR::Enabled = 1 , ARDOUR::Recording = 2 }
 

Functions

std::string ARDOUR::auto_state_to_string (AutoState)
 
AutoState ARDOUR::string_to_auto_state (std::string)
 
int ARDOUR::format_data_width (ARDOUR::SampleFormat)
 

Variables

static const layer_t ARDOUR::max_layer = UINT32_MAX