Chris Robinson
45b65366bb
Improve some checks for compiler analysis
2018-12-02 15:29:26 -08:00
Chris Robinson
4e17ad3ec0
Avoid a few more explicit loops
2018-12-02 13:35:07 -08:00
Chris Robinson
607fb3e632
Use a lambda to apply the NFC mixes
2018-12-01 23:25:34 -08:00
Chris Robinson
e1af866a3d
Rework source sample counting for mixing a bit
2018-12-01 13:47:56 -08:00
Chris Robinson
255c07def9
Try to pacify MSVC's missing a suitable default constructor
2018-12-01 11:28:11 -08:00
Chris Robinson
7b1548af3c
Handle source state changed events uniquely in the event loop
...
To avoid the need of constructing the string in the mixer thread, which is
commonly formatted anyway.
2018-11-30 21:39:59 -08:00
Chris Robinson
1e6e84374b
Use std::array for the voice's PrevSamples
2018-11-30 21:23:43 -08:00
Chris Robinson
c7569c31ad
Improve construction and destruction of ALvoices
2018-11-30 19:04:38 -08:00
Chris Robinson
4b7ac4a6ed
Don't bother making ALvoiceProps dynamically sized
2018-11-30 16:56:23 -08:00
Chris Robinson
8ca8da30bd
Store the source ID with the voice instead of the source pointer
2018-11-29 22:49:01 -08:00
Chris Robinson
57bb467072
Pass the desired resampler to CreateSampleConverter
2018-11-28 23:19:25 -08:00
Chris Robinson
e017d9e40f
Clean up the converter a bit
2018-11-28 22:42:46 -08:00
Chris Robinson
5df89c504e
Remove an improper Connected check
2018-11-28 19:29:20 -08:00
Chris Robinson
38f4a0cf2c
Avoid the update size going to 0 with a relatively large device period
2018-11-28 18:45:35 -08:00
Chris Robinson
c3c0a5022a
Don't bother with (really) old pulseaudio headers
2018-11-28 15:09:19 -08:00
Chris Robinson
14d746e7c2
Don't sever a paused source from its voice on disconnect
2018-11-28 14:38:26 -08:00
Chris Robinson
598851fed7
Attempt to reconnect lost devices with alcResetDeviceSOFT
...
Be aware there's currently possible race conditions with PulseAudio's callbacks
(the state callbacks need to be cleared while not playing).
Also paused sources will assert/crash if attempted to play again without being
explicitly stopped or rewound first.
Both of these will eventually be fixed (though a paused source's offset will be
lost regardless).
2018-11-28 12:24:12 -08:00
Chris Robinson
16aa3ab196
Reduce some indentation
2018-11-28 11:55:43 -08:00
Chris Robinson
ed2e456dfb
Avoid some explicit loops
2018-11-28 11:30:44 -08:00
Chris Robinson
8d95b6a0f2
Avoid an unnecessary lambda
2018-11-28 08:42:30 -08:00
Chris Robinson
ec2927cd32
Small cleanup for ~ALCcontext_struct
2018-11-27 21:19:30 -08:00
Chris Robinson
ff8c694957
Clean up the JACK backend
2018-11-27 20:29:54 -08:00
Chris Robinson
0116e763ea
Add a unique_ptr alias for the ringbuffer
2018-11-27 19:49:45 -08:00
Chris Robinson
89abbe8d94
Replace last uses of alsem_t with al::semaphore
2018-11-27 14:05:56 -08:00
Chris Robinson
f26083e9ed
Make and use a semaphore class
2018-11-27 13:41:30 -08:00
Chris Robinson
07670ed36a
Swap context references in the move assignment
2018-11-27 10:08:25 -08:00
Chris Robinson
d06f76957c
Remove althrd_yield
2018-11-26 23:06:49 -08:00
Chris Robinson
2d45ec8dc3
Use a standard mutex for the remaining locks
2018-11-26 22:06:53 -08:00
Chris Robinson
68eef6abb4
Use a standard mutex for the source and effect slot locks
2018-11-26 21:50:48 -08:00
Chris Robinson
2e73c2ca92
Use a standard mutex for the proplock
2018-11-26 21:39:31 -08:00
Chris Robinson
d8b9230ee4
Use a standard mutex for the backend lock
2018-11-26 21:39:31 -08:00
Chris Robinson
b108d0acfd
Remove the last remaining uses of althrd_t
2018-11-26 21:39:31 -08:00
Chris Robinson
bf9db1fe3d
Remove althrd_t from Windows
2018-11-26 20:34:16 -08:00
Chris Robinson
ecab90802a
Replace some uses of althrd_t with std::thread
2018-11-26 20:06:22 -08:00
Chris Robinson
df3dcc879f
Get rid of the last ATOMIC macro uses
2018-11-26 18:19:58 -08:00
Chris Robinson
461ef4196e
Avoid using ATOMIC_LOAD on ALCdevice::Connected
2018-11-26 18:07:52 -08:00
Chris Robinson
1a9edd4e35
Use a unique_ptr for the QSA backend data
2018-11-26 17:53:56 -08:00
Chris Robinson
04c2802a82
Rename some struct members
2018-11-26 17:31:04 -08:00
Chris Robinson
053599b243
Avoid using the ATOMIC() macro
2018-11-26 14:48:26 -08:00
Chris Robinson
a6923790fa
Avoid using ATOMIC_INIT
2018-11-26 14:31:54 -08:00
Chris Robinson
5b2b96b245
Don't explicitly clear vector objects in the destructor
2018-11-25 17:51:39 -08:00
Chris Robinson
127ec026e7
Automatically clean up filters and effects with their sublists
2018-11-25 16:16:40 -08:00
Chris Robinson
8ae07ad1ae
Automatically clean up buffers with ther sublist
2018-11-25 15:30:32 -08:00
Chris Robinson
05845b53e8
Clean up MixSource
2018-11-25 13:20:26 -08:00
Chris Robinson
ad2639248a
Avoid another DECL_TEMPLATE macro
2018-11-25 10:52:17 -08:00
Chris Robinson
ec97360352
Avoid a separate function to clean up effect slots
2018-11-25 09:23:01 -08:00
Chris Robinson
bf4518fe5c
Atuomatically clean up sources with its sublist's destruction
2018-11-25 08:42:43 -08:00
Chris Robinson
7c0605f09e
Properly initialize the sublists' freemask
2018-11-25 07:40:15 -08:00
Chris Robinson
71660df5e5
Move bs2b.h to a more appropriate place
2018-11-24 19:54:30 -08:00
Chris Robinson
377325e794
Use C++ methods a bit more
2018-11-24 19:16:21 -08:00