\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
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
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