zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

dsconf.h (7787B) - Raw


      1 /*
      2  * Copyright (C) 2003 Robert Reif
      3  *
      4  * This library is free software; you can redistribute it and/or
      5  * modify it under the terms of the GNU Lesser General Public
      6  * License as published by the Free Software Foundation; either
      7  * version 2.1 of the License, or (at your option) any later version.
      8  *
      9  * This library is distributed in the hope that it will be useful,
     10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12  * Lesser General Public License for more details.
     13  *
     14  * You should have received a copy of the GNU Lesser General Public
     15  * License along with this library; if not, write to the Free Software
     16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
     17  */
     18 
     19 #ifndef __WINE_DSCONF_H
     20 #define __WINE_DSCONF_H
     21 
     22 #ifdef __cplusplus
     23 extern "C" {
     24 #endif /* defined(__cplusplus) */
     25 
     26 /*****************************************************************************
     27  * Predeclare the interfaces
     28  */
     29 DEFINE_GUID(CLSID_DirectSoundPrivate,           0x11ab3ec0,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca);
     30 
     31 DEFINE_GUID(DSPROPSETID_DirectSoundDevice,      0x84624f82,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca);
     32 
     33 typedef enum
     34 {
     35         DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A = 1,
     36         DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1       = 2,
     37         DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1         = 3,
     38         DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W = 4,
     39         DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A       = 5,
     40         DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W       = 6,
     41         DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A         = 7,
     42         DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W         = 8,
     43 } DSPROPERTY_DIRECTSOUNDDEVICE;
     44 
     45 #ifdef UNICODE
     46 #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING  DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W
     47 #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION        DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W
     48 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE          DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W
     49 #else
     50 #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING  DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
     51 #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION        DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A
     52 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE          DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A
     53 #endif
     54 
     55 typedef enum
     56 {
     57         DIRECTSOUNDDEVICE_TYPE_EMULATED,
     58         DIRECTSOUNDDEVICE_TYPE_VXD,
     59         DIRECTSOUNDDEVICE_TYPE_WDM
     60 } DIRECTSOUNDDEVICE_TYPE;
     61 
     62 typedef enum
     63 {
     64         DIRECTSOUNDDEVICE_DATAFLOW_RENDER,
     65         DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
     66 } DIRECTSOUNDDEVICE_DATAFLOW;
     67 
     68 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
     69 {
     70         LPSTR                           DeviceName;
     71         DIRECTSOUNDDEVICE_DATAFLOW      DataFlow;
     72         GUID                            DeviceId;
     73 } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA;
     74 
     75 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
     76 {
     77         LPWSTR                          DeviceName;
     78         DIRECTSOUNDDEVICE_DATAFLOW      DataFlow;
     79         GUID                            DeviceId;
     80 } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA;
     81 
     82 #ifdef UNICODE
     83 #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA     DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
     84 #define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA    PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
     85 #else
     86 #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA     DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
     87 #define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA    PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
     88 #endif
     89 
     90 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
     91 {
     92         GUID                            DeviceId;
     93         CHAR                            DescriptionA[0x100];
     94         WCHAR                           DescriptionW[0x100];
     95         CHAR                            ModuleA[MAX_PATH];
     96         WCHAR                           ModuleW[MAX_PATH];
     97         DIRECTSOUNDDEVICE_TYPE          Type;
     98         DIRECTSOUNDDEVICE_DATAFLOW      DataFlow;
     99         ULONG                           WaveDeviceId;
    100         ULONG                           Devnode;
    101 } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA;
    102 
    103 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
    104 {
    105         DIRECTSOUNDDEVICE_TYPE          Type;
    106         DIRECTSOUNDDEVICE_DATAFLOW      DataFlow;
    107         GUID                            DeviceId;
    108         LPSTR                           Description;
    109         LPSTR                           Module;
    110         LPSTR                           Interface;
    111         ULONG                           WaveDeviceId;
    112 } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA;
    113 
    114 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
    115 {
    116         DIRECTSOUNDDEVICE_TYPE          Type;
    117         DIRECTSOUNDDEVICE_DATAFLOW      DataFlow;
    118         GUID                            DeviceId;
    119         LPWSTR                          Description;
    120         LPWSTR                          Module;
    121         LPWSTR                          Interface;
    122         ULONG                           WaveDeviceId;
    123 } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA;
    124 
    125 #ifdef UNICODE
    126 #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA   DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
    127 #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA  PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
    128 #else
    129 #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA   DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
    130 #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA  PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
    131 #endif
    132 
    133 typedef WINBOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, LPVOID);
    134 typedef WINBOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, LPVOID);
    135 typedef WINBOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, LPVOID);
    136 
    137 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
    138 {
    139         LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 Callback;
    140         LPVOID                                  Context;
    141 } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA;
    142 
    143 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
    144 {
    145         LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA Callback;
    146         LPVOID                                  Context;
    147 } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA;
    148 
    149 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
    150 {
    151         LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW Callback;
    152         LPVOID                                  Context;
    153 } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA;
    154 
    155 #ifdef UNICODE
    156 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA     DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
    157 #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA    PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
    158 #else
    159 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA     DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
    160 #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA    PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
    161 #endif
    162 
    163 #ifdef __cplusplus
    164 } /* extern "C" */
    165 #endif /* defined(__cplusplus) */
    166 
    167 #endif /* __WINE_DSCONF_H */