/*
- Copyright (C) 2002 Paul Davis
+ Copyright (C) 2002 Paul Davis
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
typedef int intptr_t;
#endif
-/* eventually, we'd like everything (including JACK) to
+/* eventually, we'd like everything (including JACK) to
move to this. for now, its a dedicated type.
*/
class Source;
class AudioSource;
+ class Route;
typedef jack_default_audio_sample_t Sample;
typedef float pan_t;
typedef uint64_t microseconds_t;
typedef uint32_t nframes_t;
- typedef unsigned char Byte;
-
enum IOChange {
NoChange = 0,
ConfigurationChanged = 0x1,
OverlapNone, // no overlap
OverlapInternal, // the overlap is 100% with the object
OverlapStart, // overlap covers start, but ends within
- OverlapEnd, // overlap begins within and covers end
+ OverlapEnd, // overlap begins within and covers end
OverlapExternal // overlap extends to (at least) begin+end
};
SoloAutomation = 0x8,
MuteAutomation = 0x10,
MidiCCAutomation = 0x20,
+ MidiPgmChangeAutomation = 0x21,
+ MidiPitchBenderAutomation = 0x22,
+ MidiChannelPressureAutomation = 0x23,
+ MidiSystemExclusiveAutomation = 0x24,
FadeInAutomation = 0x40,
FadeOutAutomation = 0x80,
EnvelopeAutomation = 0x100
Normal,
Destructive
};
-
+
enum NoteMode {
Sustained,
Percussive
};
+
+ enum ChannelMode {
+ AllChannels = 0, ///< Pass through all channel information unmodified
+ FilterChannels, ///< Ignore events on certain channels
+ ForceChannel ///< Force all events to a certain channel
+ };
+ enum ColorMode {
+ MeterColors = 0,
+ ChannelColors,
+ TrackColor
+ };
+
+ enum EventTimeUnit {
+ Frames,
+ Beats
+ };
+
struct BBT_Time {
uint32_t bars;
uint32_t beats;
}
/* we can't define arithmetic operators for BBT_Time, because
- the results depend on a TempoMap, but we can define
+ the results depend on a TempoMap, but we can define
a useful check on the less-than condition.
*/
bool operator< (const BBT_Time& other) const {
- return bars < other.bars ||
+ return bars < other.bars ||
(bars == other.bars && beats < other.beats) ||
(bars == other.bars && beats == other.beats && ticks < other.ticks);
}
bool operator== (const BBT_Time& other) const {
return bars == other.bars && beats == other.beats && ticks == other.ticks;
}
-
+
};
enum SmpteFormat {
smpte_23976,
SMPTE::Time smpte;
BBT_Time bbt;
- union {
- nframes_t frames;
+ union {
+ nframes_t frames;
double seconds;
};
nframes_t start;
nframes_t end;
uint32_t id;
-
+
AudioRange (nframes_t s, nframes_t e, uint32_t i) : start (s), end (e) , id (i) {}
-
- nframes_t length() { return end - start + 1; }
+
+ nframes_t length() { return end - start + 1; }
bool operator== (const AudioRange& other) const {
return start == other.start && end == other.end && id == other.id;
return ARDOUR::coverage (start, end, s, e);
}
};
-
+
struct MusicRange {
BBT_Time start;
BBT_Time end;
uint32_t id;
-
+
MusicRange (BBT_Time& s, BBT_Time& e, uint32_t i)
: start (s), end (e), id (i) {}
enum EditMode {
Slide,
- Splice
+ Splice,
+ Lock
};
- enum RegionPoint {
+ enum RegionPoint {
Start,
End,
SyncPoint
FullCrossfade,
ShortCrossfade
};
-
+
enum LayerModel {
LaterHigher,
MoveAddHigher,
FormatInt16
};
+ enum CDMarkerFormat {
+ CDMarkerNone,
+ CDMarkerCUE,
+ CDMarkerTOC
+ };
enum HeaderFormat {
BWF,
struct PeakData {
typedef Sample PeakDatum;
-
+
PeakDatum min;
PeakDatum max;
};
-
+
enum PluginType {
AudioUnit,
LADSPA,
+ LV2,
VST
};
+
+ enum RunContext {
+ ButlerContext = 0,
+ TransportContext,
+ ExportContext
+ };
enum SlaveSource {
None = 0,
MTC,
- JACK
+ JACK,
+ MIDIClock
};
enum ShuttleBehaviour {
SrcFastest
};
+ struct TimeFXRequest : public InterThreadInfo {
+ TimeFXRequest() : time_fraction(0), pitch_fraction(0),
+ quick_seek(false), antialias(false), opts(0) {}
+ float time_fraction;
+ float pitch_fraction;
+ /* SoundTouch */
+ bool quick_seek;
+ bool antialias;
+ /* RubberBand */
+ int opts; // really RubberBandStretcher::Options
+ };
+
+ typedef std::list<nframes64_t> AnalysisFeatureList;
+
+ typedef std::list<boost::shared_ptr<Route> > RouteList;
+
+ class Bundle;
+ typedef std::vector<boost::shared_ptr<Bundle> > BundleList;
+
} // namespace ARDOUR
std::istream& operator>>(std::istream& o, ARDOUR::SampleFormat& sf);