* Sync up to trunk HEAD (r62286).
[reactos.git] / base / services / audiosrv / audiosrv.h
1 /*
2 * PROJECT: ReactOS
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: base/services/audiosrv/audiosrv.h
5 * PURPOSE: Audio Service (private header)
6 * COPYRIGHT: Copyright 2007 Andrew Greenwood
7 */
8
9 #ifndef _AUDIOSRV_PCH_
10 #define _AUDIOSRV_PCH_
11
12 #include <stdarg.h>
13
14 #include <windef.h>
15 #include <winbase.h>
16 #include <malloc.h>
17 #include <dbt.h>
18 #include <audiosrv/audiosrv.h>
19
20 #ifndef AUDIOSRV_PRIVATE_H
21 #define AUDIOSRV_PRIVATE_H
22
23 extern SERVICE_STATUS_HANDLE service_status_handle;
24
25
26 /* List management (pnp_list_manager.c) */
27
28 VOID*
29 CreateDeviceDescriptor(WCHAR* path, BOOL is_enabled);
30
31 #define DestroyDeviceDescriptor(descriptor) free(descriptor)
32
33 BOOL
34 AppendAudioDeviceToList(PnP_AudioDevice* device);
35
36 BOOL
37 CreateAudioDeviceList(DWORD max_size);
38
39 VOID
40 DestroyAudioDeviceList(VOID);
41
42
43 /* Plug and Play (pnp.c) */
44
45 BOOL
46 ProcessExistingDevices(VOID);
47
48 DWORD
49 ProcessDeviceArrival(DEV_BROADCAST_DEVICEINTERFACE* device);
50
51 BOOL
52 RegisterForDeviceNotifications(VOID);
53
54 VOID
55 UnregisterDeviceNotifications(VOID);
56
57 DWORD
58 HandleDeviceEvent(
59 DWORD dwEventType,
60 LPVOID lpEventData);
61
62 BOOL
63 StartSystemAudioServices(VOID);
64
65 /* Debugging */
66
67 void logmsg(char* string, ...);
68
69 #endif
70
71 #endif /* _AUDIOSRV_PCH_ */