Change the feedback alert to a flashing button; works
[ardour.git] / libs / ardour / ardour / types.h
index d831dfae2b247464b84780bb94801498f0a50c58..417a9ed54d5f197edfbaa1c031e2bd671b7988ef 100644 (file)
@@ -68,7 +68,7 @@ namespace ARDOUR {
        */
        typedef int64_t frameoffset_t;
 
-       /* Any count of audio frames. 
+       /* Any count of audio frames.
           Assumed to be positive but not enforced.
        */
        typedef int64_t framecnt_t;
@@ -105,22 +105,22 @@ namespace ARDOUR {
                OverlapEnd,       // overlap begins within and covers end
                OverlapExternal   // overlap extends to (at least) begin+end
        };
-        
-        ARDOUR::OverlapType coverage (framepos_t sa, framepos_t ea,
-                                      framepos_t sb, framepos_t eb);
 
-        /* policies for inserting/pasting material where overlaps
-           might be an issue.
-        */
+       ARDOUR::OverlapType coverage (framepos_t sa, framepos_t ea,
+                                     framepos_t sb, framepos_t eb);
 
-        enum InsertMergePolicy {
-                InsertMergeReject,  // no overlaps allowed
-                InsertMergeRelax,   // we just don't care about overlaps
-                InsertMergeReplace, // replace old with new
-                InsertMergeTruncateExisting, // shorten existing to avoid overlap
-                InsertMergeTruncateAddition, // shorten new to avoid overlap
-                InsertMergeExtend   // extend new (or old) to the range of old+new
-        };
+       /* policies for inserting/pasting material where overlaps
+          might be an issue.
+       */
+
+       enum InsertMergePolicy {
+               InsertMergeReject,  // no overlaps allowed
+               InsertMergeRelax,   // we just don't care about overlaps
+               InsertMergeReplace, // replace old with new
+               InsertMergeTruncateExisting, // shorten existing to avoid overlap
+               InsertMergeTruncateAddition, // shorten new to avoid overlap
+               InsertMergeExtend   // extend new (or old) to the range of old+new
+       };
 
        /** See evoral/Parameter.hpp
         */
@@ -171,14 +171,14 @@ namespace ARDOUR {
        enum AlignChoice {
                UseCaptureTime,
                UseExistingMaterial,
-                Automatic
+               Automatic
        };
 
        enum MeterPoint {
                MeterInput,
                MeterPreFader,
                MeterPostFader,
-                MeterOutput,
+               MeterOutput,
                MeterCustom
        };
 
@@ -237,10 +237,10 @@ namespace ARDOUR {
                };
 
                AnyTime() { type = Frames; frames = 0; }
-               
+
                bool operator== (AnyTime const & other) const {
                        if (type != other.type) { return false; }
-                       
+
                        switch (type) {
                          case Timecode:
                                return timecode == other.timecode;
@@ -251,8 +251,9 @@ namespace ARDOUR {
                          case Seconds:
                                return seconds == other.seconds;
                        }
+                       return false; // get rid of warning
                }
-               
+
                bool not_zero() const
                {
                        switch (type) {
@@ -266,6 +267,10 @@ namespace ARDOUR {
                          case Seconds:
                                return seconds != 0;
                        }
+
+                       /* NOTREACHED */
+                       assert (false);
+                       return false;
                }
        };
 
@@ -353,6 +358,19 @@ namespace ARDOUR {
                ExternalMonitoring
        };
 
+       enum MonitorChoice {
+               MonitorAuto = 0,
+               MonitorInput = 0x1,
+               MonitorDisk = 0x2,
+               MonitorCue = 0x4,
+       };
+
+       enum MonitorState {
+               MonitoringSilence = 0x1,
+               MonitoringInput = 0x2,
+               MonitoringDisk = 0x4,
+       };
+
        enum PFLPosition {
                /** PFL signals come from before pre-fader processors */
                PFLFromBeforeProcessors,
@@ -404,7 +422,7 @@ namespace ARDOUR {
 
        struct InterThreadInfo {
                InterThreadInfo () : done (false), cancel (false), progress (0), thread (0) {}
-                       
+
                volatile bool  done;
                volatile bool  cancel;
                volatile float progress;
@@ -444,7 +462,8 @@ namespace ARDOUR {
                AudioUnit,
                LADSPA,
                LV2,
-               VST
+               VST,
+               LXVST,
        };
 
        enum RunContext {
@@ -551,13 +570,13 @@ namespace ARDOUR {
                bool meter_visibly_changed;
        };
 
-        struct BusProfile {
-            AutoConnectOption input_ac;      /* override the RC config for input auto-connection */
-            AutoConnectOption output_ac;     /* override the RC config for output auto-connection */
-            uint32_t master_out_channels;    /* how many channels for the master bus */
-            uint32_t requested_physical_in;  /* now many of the available physical inputs to consider usable */
-            uint32_t requested_physical_out; /* now many of the available physical inputs to consider usable */
-        };
+       struct BusProfile {
+               AutoConnectOption input_ac;      /* override the RC config for input auto-connection */
+               AutoConnectOption output_ac;     /* override the RC config for output auto-connection */
+               uint32_t master_out_channels;    /* how many channels for the master bus */
+               uint32_t requested_physical_in;  /* now many of the available physical inputs to consider usable */
+               uint32_t requested_physical_out; /* now many of the available physical inputs to consider usable */
+       };
 
        enum FadeShape {
                FadeLinear,
@@ -619,13 +638,13 @@ std::ostream& operator<<(std::ostream& o, const ARDOUR::PositionLockStyle& sf);
 static inline ARDOUR::framepos_t
 session_frame_to_track_frame (ARDOUR::framepos_t session_frame, double speed)
 {
-       return (ARDOUR::framepos_t)( (double)session_frame * speed );
+       return (ARDOUR::framepos_t) ((long double) session_frame * (long double) speed);
 }
 
 static inline ARDOUR::framepos_t
 track_frame_to_session_frame (ARDOUR::framepos_t track_frame, double speed)
 {
-       return (ARDOUR::framepos_t)( (double)track_frame / speed );
+       return (ARDOUR::framepos_t) ((long double) track_frame / (long double) speed);
 }
 
 /* for now, break the rules and use "using" to make this "global" */