https://git.reactos.org/?p=reactos.git;a=commitdiff;h=9672dc50479f42c6da51b…
commit 9672dc50479f42c6da51b426618f05a9394a9ef2
Author: Joachim Henze <joachim.henze(a)reactos.org>
AuthorDate: Sat Feb 18 18:28:30 2023 +0100
Commit: GitHub <noreply(a)github.com>
CommitDate: Sat Feb 18 18:28:30 2023 +0100
[AUDIOSRV] Overhaul logging interfaces CORE-16912 (#5067)
---
base/services/audiosrv/CMakeLists.txt | 3 +-
base/services/audiosrv/audiosrv.h | 13 +++-----
base/services/audiosrv/debug.c | 33 --------------------
base/services/audiosrv/main.c | 50 ++++++++++++++++---------------
base/services/audiosrv/pnp.c | 18 +++++------
base/services/audiosrv/pnp_list_lock.c | 9 +++---
base/services/audiosrv/pnp_list_manager.c | 47 +++++++++++++----------------
base/services/audiosrv/services.c | 28 +++++++++--------
8 files changed, 79 insertions(+), 122 deletions(-)
diff --git a/base/services/audiosrv/CMakeLists.txt
b/base/services/audiosrv/CMakeLists.txt
index 979161a36c2..094f948ce93 100644
--- a/base/services/audiosrv/CMakeLists.txt
+++ b/base/services/audiosrv/CMakeLists.txt
@@ -5,11 +5,10 @@ list(APPEND SOURCE
pnp_list_lock.c
pnp.c
services.c
- debug.c
audiosrv.h)
add_executable(audiosrv ${SOURCE} audiosrv.rc)
set_module_type(audiosrv win32cui UNICODE)
-add_importlibs(audiosrv advapi32 user32 setupapi msvcrt kernel32)
+add_importlibs(audiosrv advapi32 user32 setupapi msvcrt kernel32 ntdll)
add_pch(audiosrv audiosrv.h SOURCE)
add_cd_file(TARGET audiosrv DESTINATION reactos/system32 FOR all)
diff --git a/base/services/audiosrv/audiosrv.h b/base/services/audiosrv/audiosrv.h
index 567465717e8..e143f11b230 100644
--- a/base/services/audiosrv/audiosrv.h
+++ b/base/services/audiosrv/audiosrv.h
@@ -1,9 +1,8 @@
/*
- * PROJECT: ReactOS
- * LICENSE: GPL - See COPYING in the top level directory
- * FILE: base/services/audiosrv/audiosrv.h
- * PURPOSE: Audio Service (private header)
- * COPYRIGHT: Copyright 2007 Andrew Greenwood
+ * PROJECT: ReactOS
+ * LICENSE: GPL - See COPYING in the top level directory
+ * PURPOSE: Audio Service (private header)
+ * COPYRIGHT: Copyright 2007 Andrew Greenwood
*/
#ifndef _AUDIOSRV_PCH_
@@ -62,10 +61,6 @@ HandleDeviceEvent(
BOOL
StartSystemAudioServices(VOID);
-/* Debugging */
-
-void logmsg(char* string, ...);
-
#endif
#endif /* _AUDIOSRV_PCH_ */
diff --git a/base/services/audiosrv/debug.c b/base/services/audiosrv/debug.c
deleted file mode 100644
index c19aada3538..00000000000
--- a/base/services/audiosrv/debug.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Service debugging (simply logs to a file) */
-
-#include "audiosrv.h"
-
-#include <stdio.h>
-
-// FIXME: Disabled to work around CORE-16814 (and CORE-16912).
-// #define ENABLE_LOGMSG_FILE
-
-void logmsg(char* string, ...)
-{
- va_list args;
-
-#ifdef ENABLE_LOGMSG_FILE
- FILE* debug_file = fopen("c:\\audiosrv-debug.txt", "a");
-
- if (debug_file)
- {
- va_start(args, string);
- vfprintf(debug_file, string, args);
- va_end(args);
- fclose(debug_file);
- }
- else
-#endif
- {
- char buf[256];
- va_start(args, string);
- vsprintf(buf, string, args);
- OutputDebugStringA(buf);
- va_end(args);
- }
-}
diff --git a/base/services/audiosrv/main.c b/base/services/audiosrv/main.c
index efbff7dc81e..5a5157f0e3d 100644
--- a/base/services/audiosrv/main.c
+++ b/base/services/audiosrv/main.c
@@ -1,13 +1,15 @@
/*
- * PROJECT: ReactOS
- * LICENSE: GPL - See COPYING in the top level directory
- * FILE: base/services/audiosrv/main.c
- * PURPOSE: Audio Service
- * COPYRIGHT: Copyright 2007 Andrew Greenwood
+ * PROJECT: ReactOS
+ * LICENSE: GPL - See COPYING in the top level directory
+ * PURPOSE: Audio Service
+ * COPYRIGHT: Copyright 2007 Andrew Greenwood
*/
#include "audiosrv.h"
+#define NDEBUG
+#include <debug.h>
+
SERVICE_STATUS_HANDLE service_status_handle;
SERVICE_STATUS service_status;
@@ -34,19 +36,19 @@ ServiceControlHandler(
{
case SERVICE_CONTROL_INTERROGATE :
{
- logmsg("* Interrogation\n");
+ DPRINT("* Interrogation\n");
return NO_ERROR;
}
case SERVICE_CONTROL_STOP :
case SERVICE_CONTROL_SHUTDOWN :
{
- logmsg("* Service Stop/Shutdown request received\n");
+ DPRINT("* Service Stop/Shutdown request received\n");
- logmsg("Unregistering device notifications\n");
+ DPRINT("Unregistering device notifications\n");
UnregisterDeviceNotifications();
- logmsg("Destroying audio device list\n");
+ DPRINT("Destroying audio device list\n");
DestroyAudioDeviceList();
service_status.dwCurrentState = SERVICE_STOP_PENDING;
@@ -57,14 +59,14 @@ ServiceControlHandler(
SetServiceStatus(service_status_handle, &service_status);
- logmsg("* Service stopped\n");
+ DPRINT("* Service stopped\n");
return NO_ERROR;
}
case SERVICE_CONTROL_DEVICEEVENT :
{
- logmsg("* Device Event\n");
+ DPRINT("* Device Event\n");
return HandleDeviceEvent(dwEventType, lpEventData);
}
@@ -78,16 +80,16 @@ ServiceControlHandler(
VOID CALLBACK
ServiceMain(DWORD argc, LPWSTR argv)
{
- logmsg("* Service starting\n");
- logmsg("Registering service control handler...\n");
+ DPRINT("* Service starting\n");
+ DPRINT("Registering service control handler\n");
service_status_handle = RegisterServiceCtrlHandlerExW(SERVICE_NAME,
ServiceControlHandler,
NULL);
- logmsg("Service status handle %d\n", service_status_handle);
+ DPRINT("Service status handle %d\n", service_status_handle);
if (!service_status_handle)
{
- logmsg("Failed to register service control handler\n");
+ DPRINT("Failed to register service control handler\n");
/* FIXME - we should fail */
}
@@ -103,23 +105,23 @@ ServiceMain(DWORD argc, LPWSTR argv)
service_status.dwCurrentState = SERVICE_START_PENDING;
SetServiceStatus(service_status_handle, &service_status);
- logmsg("Creating audio device list\n");
+ DPRINT("Creating audio device list\n");
/* This creates the audio device list and mutex */
if (!CreateAudioDeviceList(AUDIO_LIST_MAX_SIZE))
{
- logmsg("Failed to create audio device list\n");
+ DPRINT("Failed to create audio device list\n");
service_status.dwCurrentState = SERVICE_STOPPED;
service_status.dwWin32ExitCode = -1;
SetServiceStatus(service_status_handle, &service_status);
return;
}
- logmsg("Registering for device notifications\n");
+ DPRINT("Registering for device notifications\n");
/* We want to know when devices are added/removed */
if (!RegisterForDeviceNotifications())
{
/* FIXME: This is not fatal at present as ROS does not support this */
- logmsg("Failed to register for device notifications\n");
+ DPRINT("Failed to register for device notifications\n");
/*
DestroyAudioDeviceList();
@@ -134,11 +136,11 @@ ServiceMain(DWORD argc, LPWSTR argv)
InitializeFakeDevice();
- logmsg("Processing existing devices\n");
+ DPRINT("Processing existing devices\n");
/* Now find any devices that already exist on the system */
if (!ProcessExistingDevices())
{
- logmsg("Could not process existing devices\n");
+ DPRINT("Could not process existing devices\n");
UnregisterDeviceNotifications();
DestroyAudioDeviceList();
@@ -148,7 +150,7 @@ ServiceMain(DWORD argc, LPWSTR argv)
return;
}
- logmsg("* Service started\n");
+ DPRINT("* Service started\n");
/* Tell SCM we are now running, and we may be stopped */
service_status.dwCurrentState = SERVICE_RUNNING;
service_status.dwControlsAccepted = SERVICE_ACCEPT_STOP;
@@ -163,9 +165,9 @@ int wmain(VOID)
{ NULL, NULL }
};
- logmsg("Audio Service main()\n");
+ DPRINT("Audio Service main()\n");
if (!StartServiceCtrlDispatcherW(service_table))
- logmsg("StartServiceCtrlDispatcher failed\n");
+ DPRINT("StartServiceCtrlDispatcher failed\n");
return 0;
}
diff --git a/base/services/audiosrv/pnp.c b/base/services/audiosrv/pnp.c
index 7db8a550569..26a2fae9449 100644
--- a/base/services/audiosrv/pnp.c
+++ b/base/services/audiosrv/pnp.c
@@ -1,9 +1,8 @@
/*
- * PROJECT: ReactOS
- * LICENSE: GPL - See COPYING in the top level directory
- * FILE: base/services/audiosrv/pnp.c
- * PURPOSE: Audio Service Plug and Play
- * COPYRIGHT: Copyright 2007 Andrew Greenwood
+ * PROJECT: ReactOS
+ * LICENSE: GPL - See COPYING in the top level directory
+ * PURPOSE: Audio Service Plug and Play
+ * COPYRIGHT: Copyright 2007 Andrew Greenwood
*/
#include "audiosrv.h"
@@ -15,6 +14,9 @@
#include <ks.h>
#include <ksmedia.h>
+#define NDEBUG
+#include <debug.h>
+
static HDEVNOTIFY device_notification_handle = NULL;
/*
@@ -42,8 +44,6 @@ ProcessExistingDevices(VOID)
NULL,
NULL);
-/* printf("%s:\n", ClassString); */
-
interface_data.cbSize = sizeof(interface_data);
interface_data.Reserved = 0;
@@ -60,7 +60,7 @@ ProcessExistingDevices(VOID)
if ( ! detail_data )
{
- logmsg("ProcessExistingDevices() failed to allocate detail_data\n");
+ DPRINT("failed to allocate detail_data\n");
return TRUE;
}
@@ -143,7 +143,7 @@ RegisterForDeviceNotifications(VOID)
DEVICE_NOTIFY_ALL_INTERFACE_CLASSES*/);
if (!device_notification_handle)
{
- logmsg("RegisterDeviceNotification() failed with error %d\n",
GetLastError());
+ DPRINT("failed with error %d\n", GetLastError());
}
return ( device_notification_handle != NULL );
diff --git a/base/services/audiosrv/pnp_list_lock.c
b/base/services/audiosrv/pnp_list_lock.c
index ea6224a6ed3..209c4bc9f5d 100644
--- a/base/services/audiosrv/pnp_list_lock.c
+++ b/base/services/audiosrv/pnp_list_lock.c
@@ -1,9 +1,8 @@
/*
- * PROJECT: ReactOS
- * LICENSE: GPL - See COPYING in the top level directory
- * FILE: base/services/audiosrv/pnp_list_lock.c
- * PURPOSE: Audio Service Plug and Play list locking mechanism
- * COPYRIGHT: Copyright 2007 Andrew Greenwood
+ * PROJECT: ReactOS
+ * LICENSE: GPL - See COPYING in the top level directory
+ * PURPOSE: Audio Service Plug and Play list locking mechanism
+ * COPYRIGHT: Copyright 2007 Andrew Greenwood
*/
#include "audiosrv.h"
diff --git a/base/services/audiosrv/pnp_list_manager.c
b/base/services/audiosrv/pnp_list_manager.c
index 0854d69eb4a..b477a2b1923 100644
--- a/base/services/audiosrv/pnp_list_manager.c
+++ b/base/services/audiosrv/pnp_list_manager.c
@@ -1,13 +1,15 @@
/*
- * PROJECT: ReactOS
- * LICENSE: GPL - See COPYING in the top level directory
- * FILE: base/services/audiosrv/pnp_list_manager.c
- * PURPOSE: Audio Service List Manager
- * COPYRIGHT: Copyright 2007 Andrew Greenwood
+ * PROJECT: ReactOS
+ * LICENSE: GPL - See COPYING in the top level directory
+ * PURPOSE: Audio Service List Manager
+ * COPYRIGHT: Copyright 2007 Andrew Greenwood
*/
#include "audiosrv.h"
+#define NDEBUG
+#include <debug.h>
+
/*
Device descriptor
*/
@@ -20,12 +22,10 @@ CreateDeviceDescriptor(WCHAR* path, BOOL is_enabled)
int path_length = WideStringSize(path);
int size = sizeof(PnP_AudioDevice) + path_length;
-/* printf("path_length %d, total %d\n", path_length, size);*/
-
device = malloc(size);
if (! device)
{
- logmsg("Failed to create a device descriptor (malloc fail)\n");
+ DPRINT("Failed to malloc device descriptor\n");
return NULL;
}
@@ -64,15 +64,10 @@ AppendAudioDeviceToList(PnP_AudioDevice* device)
LockAudioDeviceList();
-/*
- printf("list size is %d\n", audio_device_list->size);
- printf("device info size is %d bytes\n", device_info_size);
-*/
-
/* We DON'T want to overshoot the end of the buffer! */
if (audio_device_list->size + device_info_size >
audio_device_list->max_size)
{
- /*printf("max_size would be exceeded! Failing...\n");*/
+ /*DPRINT("failed, max_size would be exceeded\n");*/
UnlockAudioDeviceList();
@@ -90,7 +85,7 @@ AppendAudioDeviceToList(PnP_AudioDevice* device)
UnlockAudioDeviceList();
- logmsg("Device added to list\n");
+ DPRINT("Device added to list\n");
return TRUE;
}
@@ -98,11 +93,9 @@ AppendAudioDeviceToList(PnP_AudioDevice* device)
BOOL
CreateAudioDeviceList(DWORD max_size)
{
-/* printf("Initializing memory device list lock\n");*/
-
if (!InitializeAudioDeviceListLock())
{
- /*printf("Failed!\n");*/
+ /*DPRINT("Failed\n");*/
return FALSE;
}
@@ -111,7 +104,7 @@ CreateAudioDeviceList(DWORD max_size)
turning up before we're ready... */
LockAudioDeviceList();
- logmsg("Creating file mapping\n");
+ DPRINT("Creating file mapping\n");
/* Expose our device list to the world */
device_list_file = CreateFileMappingW(INVALID_HANDLE_VALUE,
NULL,
@@ -121,7 +114,7 @@ CreateAudioDeviceList(DWORD max_size)
AUDIO_LIST_NAME);
if (!device_list_file)
{
- logmsg("Creation of audio device list failed (err %d)\n",
GetLastError());
+ DPRINT("Creation of audio device list failed (err %d)\n",
GetLastError());
UnlockAudioDeviceList();
KillAudioDeviceListLock();
@@ -129,7 +122,7 @@ CreateAudioDeviceList(DWORD max_size)
return FALSE;
}
- logmsg("Mapping view of file\n");
+ DPRINT("Mapping view of file\n");
/* Of course, we'll need to access the list ourselves */
audio_device_list = MapViewOfFile(device_list_file,
FILE_MAP_WRITE,
@@ -138,7 +131,7 @@ CreateAudioDeviceList(DWORD max_size)
max_size);
if (!audio_device_list)
{
- logmsg("MapViewOfFile FAILED (err %d)\n", GetLastError());
+ DPRINT("MapViewOfFile FAILED (err %d)\n", GetLastError());
CloseHandle(device_list_file);
device_list_file = NULL;
@@ -159,7 +152,7 @@ CreateAudioDeviceList(DWORD max_size)
UnlockAudioDeviceList();
- logmsg("Device list created\n");
+ DPRINT("Device list created\n");
return TRUE;
}
@@ -167,20 +160,20 @@ CreateAudioDeviceList(DWORD max_size)
VOID
DestroyAudioDeviceList(VOID)
{
- logmsg("Destroying device list\n");
+ DPRINT("Destroying device list\n");
LockAudioDeviceList();
- /*printf("Unmapping view\n");*/
+ /*DPRINT("Unmapping view\n");*/
UnmapViewOfFile(audio_device_list);
audio_device_list = NULL;
- /*printf("Closing memory mapped file\n");*/
+ /*DPRINT("Closing memory mapped file\n");*/
CloseHandle(device_list_file);
device_list_file = NULL;
UnlockAudioDeviceList();
- /*printf("Killing devlist lock\n");*/
+ /*DPRINT("Killing devlist lock\n");*/
KillAudioDeviceListLock();
}
diff --git a/base/services/audiosrv/services.c b/base/services/audiosrv/services.c
index 68c14835e06..c6af09cd551 100644
--- a/base/services/audiosrv/services.c
+++ b/base/services/audiosrv/services.c
@@ -1,13 +1,15 @@
/*
- * 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
+ * PROJECT: ReactOS
+ * LICENSE: GPL - See COPYING in the top level directory
+ * PURPOSE: Audio Service Plug and Play
+ * COPYRIGHT: Copyright 2009 Johannes Anderwald
*/
#include "audiosrv.h"
+#define NDEBUG
+#include <debug.h>
+
BOOL
WaitForService(
SC_HANDLE hService,
@@ -21,7 +23,7 @@ WaitForService(
{
if (!QueryServiceStatusEx(hService, SC_STATUS_PROCESS_INFO, (LPBYTE)&Info,
sizeof(SERVICE_STATUS_PROCESS), &dwSize))
{
- logmsg("QueryServiceStatusEx failed %x\n", GetLastError());
+ DPRINT("QueryServiceStatusEx failed %x\n", GetLastError());
break;
}
@@ -32,7 +34,7 @@ WaitForService(
} while (Index++ < RetryCount);
- logmsg("Timeout while waiting for service to become ready %p\n",
hService);
+ DPRINT("Timeout while waiting for service to become ready %p\n",
hService);
return FALSE;
}
@@ -49,13 +51,13 @@ StartAudioService(
hService = OpenService(hSCManager, ServiceName, SERVICE_ALL_ACCESS);
if (!hService)
{
- logmsg("Failed to open service %S %x\n", ServiceName, GetLastError());
+ DPRINT("Failed to open service %S %x\n", ServiceName, GetLastError());
return FALSE;
}
if (!StartService(hService, 0, NULL))
{
- logmsg("Failed to start service %S %x\n", ServiceName,
GetLastError());
+ DPRINT("Failed to start service %S %x\n", ServiceName,
GetLastError());
CloseServiceHandle(hService);
return FALSE;
}
@@ -71,18 +73,18 @@ StartSystemAudioServices(VOID)
{
SC_HANDLE hSCManager;
- logmsg("Starting system audio services\n");
+ DPRINT("Starting system audio services\n");
hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT);
if (!hSCManager)
{
- logmsg("Failed to open service manager %x\n", GetLastError());
+ DPRINT("Failed to open service manager %x\n", GetLastError());
return FALSE;
}
- logmsg("Starting sysaudio service\n");
+ DPRINT("Starting sysaudio service\n");
StartAudioService(hSCManager, L"sysaudio", 20);
- logmsg("Starting wdmaud service\n");
+ DPRINT("Starting wdmaud service\n");
StartAudioService(hSCManager, L"wdmaud", 20);
CloseServiceHandle(hSCManager);