Fix case of include filename.
[rtaudio.git] / include / asio.h
index 8ec811f8fe08f5a1ecd0f62bf30e4a8792867bd0..c74199f02bc2619ae48cc00945248d3376297eb0 100644 (file)
@@ -3,12 +3,14 @@
 \r
 /*\r
        Steinberg Audio Stream I/O API\r
-       (c) 1997 - 2005, Steinberg Media Technologies GmbH\r
+       (c) 1997 - 2013, Steinberg Media Technologies GmbH\r
 \r
-       ASIO Interface Specification v 2.1\r
+       ASIO Interface Specification v 2.3\r
 \r
        2005 - Added support for DSD sample data (in cooperation with Sony)\r
-\r
+       2012 - Added support for drop out detection\r
+               \r
+       \r
 \r
        basic concept is an i/o synchronous double-buffer scheme:\r
        \r
@@ -916,13 +918,19 @@ enum
        kAsioCanInputMeter,\r
        kAsioCanOutputGain,\r
        kAsioCanOutputMeter,\r
-\r
+       kAsioOptionalOne,\r
+       \r
        //      DSD support\r
        //      The following extensions are required to allow switching\r
        //      and control of the DSD subsystem.\r
        kAsioSetIoFormat                        = 0x23111961,           /* ASIOIoFormat * in params.                    */\r
        kAsioGetIoFormat                        = 0x23111983,           /* ASIOIoFormat * in params.                    */\r
        kAsioCanDoIoFormat                      = 0x23112004,           /* ASIOIoFormat * in params.                    */\r
+       \r
+       // Extension for drop out detection\r
+       kAsioCanReportOverload                  = 0x24042012,   /* return ASE_SUCCESS if driver can detect and report overloads */\r
+       \r
+       kAsioGetInternalBufferSamples   = 0x25042012    /* ASIOInternalBufferInfo * in params. Deliver size of driver internal buffering, return ASE_SUCCESS if supported */\r
 };\r
 \r
 typedef struct ASIOInputMonitor\r
@@ -1003,6 +1011,14 @@ typedef struct ASIOIoFormat_s
        char                            future[512-sizeof(ASIOIoFormatType)];\r
 } ASIOIoFormat;\r
 \r
+// Extension for drop detection\r
+// Note: Refers to buffering that goes beyond the double buffer e.g. used by USB driver designs\r
+typedef struct ASIOInternalBufferInfo\r
+{\r
+       long inputSamples;                      // size of driver's internal input buffering which is included in getLatencies\r
+       long outputSamples;                     // size of driver's internal output buffering which is included in getLatencies\r
+} ASIOInternalBufferInfo;\r
+\r
 \r
 ASIOError ASIOOutputReady(void);\r
 /* Purpose:\r