summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorStephen Sinclair <radarsat1@gmail.com>2018-01-02 16:47:07 -0300
committerStephen Sinclair <radarsat1@gmail.com>2018-01-02 16:47:07 -0300
commita748c368854372803e281fd123036d348bbe0fd1 (patch)
tree3de4604fd8bc793df788f68ae1902376d4b9c250 /include
parentce13dfbf30fd1ab4e7f7eff8886a80f144c75e5d (diff)
Update ASIO headers to version 2.3.
Diffstat (limited to 'include')
-rw-r--r--include/asio.h24
-rw-r--r--include/asiosys.h2
-rw-r--r--include/ginclude.h2
3 files changed, 22 insertions, 6 deletions
diff --git a/include/asio.h b/include/asio.h
index 8ec811f..c74199f 100644
--- a/include/asio.h
+++ b/include/asio.h
@@ -3,12 +3,14 @@
/*
Steinberg Audio Stream I/O API
- (c) 1997 - 2005, Steinberg Media Technologies GmbH
+ (c) 1997 - 2013, Steinberg Media Technologies GmbH
- ASIO Interface Specification v 2.1
+ ASIO Interface Specification v 2.3
2005 - Added support for DSD sample data (in cooperation with Sony)
-
+ 2012 - Added support for drop out detection
+
+
basic concept is an i/o synchronous double-buffer scheme:
@@ -916,13 +918,19 @@ enum
kAsioCanInputMeter,
kAsioCanOutputGain,
kAsioCanOutputMeter,
-
+ kAsioOptionalOne,
+
// DSD support
// The following extensions are required to allow switching
// and control of the DSD subsystem.
kAsioSetIoFormat = 0x23111961, /* ASIOIoFormat * in params. */
kAsioGetIoFormat = 0x23111983, /* ASIOIoFormat * in params. */
kAsioCanDoIoFormat = 0x23112004, /* ASIOIoFormat * in params. */
+
+ // Extension for drop out detection
+ kAsioCanReportOverload = 0x24042012, /* return ASE_SUCCESS if driver can detect and report overloads */
+
+ kAsioGetInternalBufferSamples = 0x25042012 /* ASIOInternalBufferInfo * in params. Deliver size of driver internal buffering, return ASE_SUCCESS if supported */
};
typedef struct ASIOInputMonitor
@@ -1003,6 +1011,14 @@ typedef struct ASIOIoFormat_s
char future[512-sizeof(ASIOIoFormatType)];
} ASIOIoFormat;
+// Extension for drop detection
+// Note: Refers to buffering that goes beyond the double buffer e.g. used by USB driver designs
+typedef struct ASIOInternalBufferInfo
+{
+ long inputSamples; // size of driver's internal input buffering which is included in getLatencies
+ long outputSamples; // size of driver's internal output buffering which is included in getLatencies
+} ASIOInternalBufferInfo;
+
ASIOError ASIOOutputReady(void);
/* Purpose:
diff --git a/include/asiosys.h b/include/asiosys.h
index 37f7a48..003cf1a 100644
--- a/include/asiosys.h
+++ b/include/asiosys.h
@@ -1,7 +1,7 @@
#ifndef __asiosys__
#define __asiosys__
- #ifdef WIN32
+ #if defined(_WIN32) || defined(_WIN64)
#undef MAC
#define PPC 0
#define WINDOWS 1
diff --git a/include/ginclude.h b/include/ginclude.h
index b627dc2..d6dda0d 100644
--- a/include/ginclude.h
+++ b/include/ginclude.h
@@ -8,7 +8,7 @@
//
#define ASIO_BIG_ENDIAN 1
#define ASIO_CPU_MIPS 1
-#elif defined WIN32
+#elif defined(_WIN32) || defined(_WIN64)
#undef BEOS
#undef MAC
#undef SGI