3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: include/reactos/libs/audiosrv/audiosrv.h
5 * PURPOSE: Audio Service Plug and Play list
6 * COPYRIGHT: Copyright 2007 Andrew Greenwood
14 /* The service name */
15 #define SERVICE_NAME L"AudioSrv"
17 /* A named mutex is used for synchronizing access to the device list.
18 If this mutex doesn't exist, it means the audio service isn't running. */
19 #define AUDIO_LIST_LOCK_NAME L"Global\\AudioDeviceListLock"
21 /* ...and this is where the device list will be available */
22 #define AUDIO_LIST_NAME L"Global\\AudioDeviceList"
24 /* Amount of shared memory to allocate */
25 #define AUDIO_LIST_MAX_SIZE 65536
30 WCHAR path
[]; /* The device object path (excluded from sizeof) */
35 DWORD size
; /* Size of the shared mem */
36 DWORD max_size
; /* Amount of mem available */
37 DWORD device_count
; /* Number of devices */
38 PnP_AudioDevice
*first_device
;
42 /* Calculate amount of memory consumed by a wide string - this includes the
45 #define WideStringSize(str) \
46 ( (lstrlenW(str) + 1) * sizeof(WCHAR) )
49 InitializeAudioDeviceListLock(VOID
);
52 KillAudioDeviceListLock(VOID
);
55 LockAudioDeviceList(VOID
);
58 UnlockAudioDeviceList(VOID
);