On Tue, Jan 28, 2020 at 9:30 AM Volker Rümelin <
address@hidden> wrote:
> Hi,
>
> Unfortunately it's not that simple to simply revert the patch since the old backend api no longer exists. Also I don't have a Mac so it's almost impossible for me to test the results. I looked at the specified commit and I think I found a problem, could you please apply the attached patch on the current git master and check whether it solves the problem? If yes I'll turn it into a proper patch.
>
> Regards,
> Zoltan
>
Hi Zoltán,
I also don't have a Mac so I tested your patch with a slightly modified sdlaudio version. I found two bugs in your patch. With the bugs fixed I have working SDL2 audio playback with float type samples. Now I wonder if the fixed patch also fixes coreaudio playback. Depending on how busy you are I can just write a review for your patch and let you handle the rest, or may I send a modified version of your patch to the mailing list for testing?
With best regards
Volker
Hi Volker,
I can test for coreaudio. Can you let us know exactly what you fixed in the patch?
While cross compiling for windows, I saw these errors (besides some casting issues):
line 56: buffer2 (should be *buffer2?)
line 455: ret (should be ret2?)
audio/dsoundaudio.c:56:20: error: variable or field 'buffer2' declared void
56 | void *buffer1, buffer2;
| ^~~~~~~
audio/dsoundaudio.c: In function 'dsound_get_buffer_out':
audio/dsoundaudio.c:428:18: error: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Werror=int-conversion]
428 | return ds->buffer2;
| ~~^~~~~~~~~
audio/dsoundaudio.c:451:17: error: assignment to 'int' from 'void *' makes integer from pointer without a cast [-Werror=int-conversion]
451 | ds->buffer2 = ret2;
| ^
audio/dsoundaudio.c:455:12: error: 'ret' undeclared (first use in this function); did you mean 'ret2'?
455 | return ret;
| ^~~
| ret2
audio/dsoundaudio.c:455:12: note: each undeclared identifier is reported only once for each function it appears in
audio/dsoundaudio.c: In function 'dsound_put_buffer_out':
audio/dsoundaudio.c:471:49: error: passing argument 3 of 'dsound_unlock_out' makes pointer from integer without a cast [-Werror=int-conversion]
471 | err = dsound_unlock_out(dsb, ds->buffer1, ds->buffer2, ds->size1, ds->size2);
| ~~^~~~~~~~~
| |
| int
In file included from audio/dsoundaudio.c:267:
audio/dsound_template.h:49:12: note: expected 'LPVOID' {aka 'void *'} but argument is of type 'int'
49 | LPVOID p2,
| ~~~~~~~^~
audio/dsoundaudio.c: In function 'dsound_get_buffer_out':
audio/dsoundaudio.c:456:1: error: control reaches end of non-void function [-Werror=return-type]
456 | }
| ^
cc1: all warnings being treated as errors
Best,
Howard