set + store signal chain latency for all processors; DiskWriter sets its capture_offs...
[ardour.git] / libs / ardour / ardour / data_type.h
index b4129e26296f4b61a2a721f3c4ad1ee765d71d8a..df241d58994acb0e8cba378d3911b9686ec9566f 100644 (file)
@@ -24,6 +24,8 @@
 #include <stdint.h>
 #include <glib.h>
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
 /** A type of Data Ardour is capable of processing.
@@ -32,7 +34,7 @@ namespace ARDOUR {
  * other type representations, simple comparison between then, etc.  This code
  * is deliberately 'ugly' so other code doesn't have to be.
  */
-class DataType
+class LIBARDOUR_API DataType
 {
 public:
        /** Numeric symbol for this DataType.
@@ -42,6 +44,9 @@ public:
         * types are added, so this number is NOT suitable for serialization,
         * network, or binary anything.
         *
+        * Some heuristics in Ardour's UI assume that the DataTypes are ordered
+        * from most to least likely to be the main intended type of a route.
+        *
         * WARNING: The number of non-NIL entries here must match num_types.
         */
        enum Symbol {
@@ -59,6 +64,8 @@ public:
        : _symbol(symbol)
        {}
 
+       static DataType front() { return DataType((Symbol) 0); }
+
        /** Construct from a string (Used for loading from XML and Ports)
         * The string can be as in an XML file (eg "audio" or "midi"), or a
         */
@@ -79,7 +86,7 @@ public:
                default:    return "unknown"; // reeeally shouldn't ever happen
                }
        }
-    
+
        const char* to_i18n_string () const;
 
        inline operator uint32_t() const { return (uint32_t)_symbol; }