mirror of
https://github.com/reactos/reactos.git
synced 2024-07-05 20:25:17 +00:00
- Start automatically sysaudio / wdmaud when audiosrv is started
svn path=/trunk/; revision=39775
This commit is contained in:
parent
61efbfa491
commit
586e8ccb95
|
@ -51,6 +51,8 @@ HandleDeviceEvent(
|
|||
DWORD dwEventType,
|
||||
LPVOID lpEventData);
|
||||
|
||||
BOOL
|
||||
StartSystemAudioServices();
|
||||
|
||||
/* Debugging */
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<file>pnp_list_manager.c</file>
|
||||
<file>pnp_list_lock.c</file>
|
||||
<file>pnp.c</file>
|
||||
<file>services.c</file>
|
||||
<file>debug.c</file>
|
||||
<file>audiosrv.rc</file>
|
||||
</module>
|
||||
|
|
|
@ -132,6 +132,9 @@ ServiceMain(DWORD argc, LPWSTR argv)
|
|||
return;
|
||||
*/
|
||||
}
|
||||
/* start system audio services */
|
||||
StartSystemAudioServices();
|
||||
|
||||
|
||||
InitializeFakeDevice();
|
||||
|
||||
|
|
79
reactos/base/services/audiosrv/services.c
Normal file
79
reactos/base/services/audiosrv/services.c
Normal file
|
@ -0,0 +1,79 @@
|
|||
/*
|
||||
* PROJECT: ReactOS
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: base/services/audiosrv/services.c
|
||||
* PURPOSE: Audio Service Plug and Play
|
||||
* COPYRIGHT: Copyright 2009 Johannes Anderwald
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
#include <winuser.h>
|
||||
#include <dbt.h>
|
||||
#include <setupapi.h>
|
||||
|
||||
#include <ks.h>
|
||||
#include <ksmedia.h>
|
||||
|
||||
#include <audiosrv/audiosrv.h>
|
||||
#include "audiosrv.h"
|
||||
|
||||
|
||||
BOOL
|
||||
StartSystemAudioServices()
|
||||
{
|
||||
SC_HANDLE hSCManager, hService;
|
||||
|
||||
logmsg("Starting system audio services\n");
|
||||
|
||||
hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT);
|
||||
if (!hSCManager)
|
||||
{
|
||||
logmsg("Failed to open service manager\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
hService = OpenService(hSCManager, L"sysaudio", SERVICE_ALL_ACCESS);
|
||||
if (hService)
|
||||
{
|
||||
if (!StartService(hService, 0, NULL))
|
||||
{
|
||||
logmsg("Failed to start sysaudio service\n");
|
||||
CloseServiceHandle(hService);
|
||||
CloseServiceHandle(hSCManager);
|
||||
return FALSE;
|
||||
}
|
||||
CloseServiceHandle(hService);
|
||||
logmsg("Sysaudio service started\n");
|
||||
// FIXME
|
||||
// wait untill service is started
|
||||
}
|
||||
|
||||
hService = OpenService(hSCManager, L"wdmaud", SERVICE_ALL_ACCESS);
|
||||
if (hService)
|
||||
{
|
||||
if (!StartService(hService, 0, NULL))
|
||||
{
|
||||
logmsg("Failed to start sysaudio service\n");
|
||||
CloseServiceHandle(hService);
|
||||
CloseServiceHandle(hSCManager);
|
||||
return FALSE;
|
||||
}
|
||||
CloseServiceHandle(hService);
|
||||
logmsg("Wdmaud service started\n");
|
||||
}
|
||||
|
||||
|
||||
CloseServiceHandle(hSCManager);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in a new issue