mirror of
				https://github.com/Ryujinx/SDL.git
				synced 2025-11-04 15:34:58 +00:00 
			
		
		
		
	XAudio2/DirectSound: Use the usual Windows string convert (thanks, Norfanin!).
This commit is contained in:
		
							parent
							
								
									f77c2372e0
								
							
						
					
					
						commit
						faf760d203
					
				| 
						 | 
				
			
			@ -91,14 +91,6 @@ DSOUND_Load(void)
 | 
			
		|||
    return loaded;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static __inline__ char *
 | 
			
		||||
utf16_to_utf8(const WCHAR *S)
 | 
			
		||||
{
 | 
			
		||||
    /* !!! FIXME: this should be UTF-16, not UCS-2! */
 | 
			
		||||
    return SDL_iconv_string("UTF-8", "UCS-2", (char *)(S),
 | 
			
		||||
                            (SDL_wcslen(S)+1)*sizeof(WCHAR));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
SetDSerror(const char *function, int code)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -158,7 +150,7 @@ FindAllDevs(LPGUID guid, LPCWSTR desc, LPCWSTR module, LPVOID data)
 | 
			
		|||
{
 | 
			
		||||
    SDL_AddAudioDevice addfn = (SDL_AddAudioDevice) data;
 | 
			
		||||
    if (guid != NULL) {  /* skip default device */
 | 
			
		||||
        char *str = utf16_to_utf8(desc);
 | 
			
		||||
        char *str = WIN_StringToUTF8(desc);
 | 
			
		||||
        if (str != NULL) {
 | 
			
		||||
            addfn(str);
 | 
			
		||||
            SDL_free(str);  /* addfn() makes a copy of this string. */
 | 
			
		||||
| 
						 | 
				
			
			@ -439,7 +431,7 @@ FindDevGUID(LPGUID guid, LPCWSTR desc, LPCWSTR module, LPVOID _data)
 | 
			
		|||
{
 | 
			
		||||
    if (guid != NULL) {  /* skip the default device. */
 | 
			
		||||
        FindDevGUIDData *data = (FindDevGUIDData *) _data;
 | 
			
		||||
        char *str = utf16_to_utf8(desc);
 | 
			
		||||
        char *str = WIN_StringToUTF8(desc);
 | 
			
		||||
        const int match = (SDL_strcmp(str, data->devname) == 0);
 | 
			
		||||
        SDL_free(str);
 | 
			
		||||
        if (match) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -60,14 +60,6 @@ struct SDL_PrivateAudioData
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static __inline__ char *
 | 
			
		||||
utf16_to_utf8(const WCHAR *S)
 | 
			
		||||
{
 | 
			
		||||
    /* !!! FIXME: this should be UTF-16, not UCS-2! */
 | 
			
		||||
    return SDL_iconv_string("UTF-8", "UCS-2", (char *)(S),
 | 
			
		||||
                            (SDL_wcslen(S)+1)*sizeof(WCHAR));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
XAUDIO2_DetectDevices(int iscapture, SDL_AddAudioDevice addfn)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -90,7 +82,7 @@ XAUDIO2_DetectDevices(int iscapture, SDL_AddAudioDevice addfn)
 | 
			
		|||
    for (i = 0; i < devcount; i++) {
 | 
			
		||||
        XAUDIO2_DEVICE_DETAILS details;
 | 
			
		||||
        if (IXAudio2_GetDeviceDetails(ixa2, i, &details) == S_OK) {
 | 
			
		||||
            char *str = utf16_to_utf8(details.DisplayName);
 | 
			
		||||
            char *str = WIN_StringToUTF8(details.DisplayName);
 | 
			
		||||
            if (str != NULL) {
 | 
			
		||||
                addfn(str);
 | 
			
		||||
                SDL_free(str);  /* addfn() made a copy of the string. */
 | 
			
		||||
| 
						 | 
				
			
			@ -265,7 +257,7 @@ XAUDIO2_OpenDevice(_THIS, const char *devname, int iscapture)
 | 
			
		|||
        for (i = 0; i < devcount; i++) {
 | 
			
		||||
            XAUDIO2_DEVICE_DETAILS details;
 | 
			
		||||
            if (IXAudio2_GetDeviceDetails(ixa2, i, &details) == S_OK) {
 | 
			
		||||
                char *str = utf16_to_utf8(details.DisplayName);
 | 
			
		||||
                char *str = WIN_StringToUTF8(details.DisplayName);
 | 
			
		||||
                if (str != NULL) {
 | 
			
		||||
                    const int match = (SDL_strcmp(str, devname) == 0);
 | 
			
		||||
                    SDL_free(str);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue