Commit Graph

3964 Commits

Author SHA1 Message Date
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