diff options
Diffstat (limited to 'pjmedia/src/pjmedia/dsound.c')
-rw-r--r-- | pjmedia/src/pjmedia/dsound.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/pjmedia/src/pjmedia/dsound.c b/pjmedia/src/pjmedia/dsound.c index 97a28726..56dd97af 100644 --- a/pjmedia/src/pjmedia/dsound.c +++ b/pjmedia/src/pjmedia/dsound.c @@ -596,8 +596,8 @@ on_error: /* DirectSound enum device callback */ -static BOOL CALLBACK DSEnumCallback( LPGUID lpGuid, LPCSTR lpcstrDescription, - LPCSTR lpcstrModule, LPVOID lpContext) +static BOOL CALLBACK DSEnumCallback( LPGUID lpGuid, LPCTSTR lpcstrDescription, + LPCTSTR lpcstrModule, LPVOID lpContext) { unsigned index, max = sizeof(dev_info[index].info.name); pj_bool_t is_capture_device = (lpContext != NULL); @@ -626,7 +626,12 @@ static BOOL CALLBACK DSEnumCallback( LPGUID lpGuid, LPCSTR lpcstrDescription, return FALSE; } +#ifdef UNICODE + WideCharToMultiByte(CP_ACP, 0, lpcstrDescription, wcslen(lpcstrDescription), dev_info[index].info.name, max, NULL, NULL); +#else strncpy(dev_info[index].info.name, lpcstrDescription, max); +#endif + dev_info[index].info.name[max-1] = '\0'; if (lpGuid == NULL) { dev_info[index].lpGuid = NULL; |