--- /dev/null
+#ifndef __asiolist__\r
+#define __asiolist__\r
+\r
+#define DRVERR -5000\r
+#define DRVERR_INVALID_PARAM DRVERR-1\r
+#define DRVERR_DEVICE_ALREADY_OPEN DRVERR-2\r
+#define DRVERR_DEVICE_NOT_FOUND DRVERR-3\r
+\r
+#define MAXPATHLEN 512\r
+#define MAXDRVNAMELEN 128\r
+\r
+struct asiodrvstruct\r
+{\r
+ int drvID;\r
+ CLSID clsid;\r
+ char dllpath[MAXPATHLEN];\r
+ char drvname[MAXDRVNAMELEN];\r
+ LPVOID asiodrv;\r
+ struct asiodrvstruct *next;\r
+};\r
+\r
+typedef struct asiodrvstruct ASIODRVSTRUCT;\r
+typedef ASIODRVSTRUCT *LPASIODRVSTRUCT;\r
+\r
+class AsioDriverList {\r
+public:\r
+ AsioDriverList();\r
+ ~AsioDriverList();\r
+ \r
+ LONG asioOpenDriver (int,VOID **);\r
+ LONG asioCloseDriver (int);\r
+\r
+ // nice to have\r
+ LONG asioGetNumDev (VOID);\r
+ LONG asioGetDriverName (int,char *,int); \r
+ LONG asioGetDriverPath (int,char *,int);\r
+ LONG asioGetDriverCLSID (int,CLSID *);\r
+\r
+ // or use directly access\r
+ LPASIODRVSTRUCT lpdrvlist;\r
+ int numdrv;\r
+};\r
+\r
+typedef class AsioDriverList *LPASIODRIVERLIST;\r
+\r
+#endif\r