Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Convert alListener.c to C++ | Chris Robinson | 2018-11-16 | 1 | -502/+0 |
| | |||||
* | Avoid using ATOMIC_FLAG | Chris Robinson | 2018-11-13 | 1 | -2/+2 |
| | | | | | Although it cant potentially be better than a regular atomic, it presents compatibility issues when non-C11 atomics are mixed with C++ | ||||
* | Use a plain mutex for the property lock | Chris Robinson | 2018-03-03 | 1 | -24/+24 |
| | |||||
* | Add the printf-format attribute to alSetError | Chris Robinson | 2018-01-25 | 1 | -19/+19 |
| | |||||
* | Construct error messages using parameterized values | Chris Robinson | 2018-01-25 | 1 | -7/+6 |
| | |||||
* | Provide messages for the remaining AL errors | Chris Robinson | 2018-01-24 | 1 | -58/+49 |
| | |||||
* | Re-update effect slots when context properties change | Chris Robinson | 2017-09-27 | 1 | -3/+3 |
| | | | | | Also keep all free property update structs together in the context instead of per-object. | ||||
* | Don't update context and listener props unnecessarily | Chris Robinson | 2017-09-27 | 1 | -26/+34 |
| | |||||
* | Update the context state properties separately | Chris Robinson | 2017-09-27 | 1 | -12/+6 |
| | | | | | | | | | | | | | The context state properties are less likely to change compared to the listener state, and future changes may prefer more infrequent updates to the context state. Note that this puts the MetersPerUnit in as a context state, even though it's handled through the listener functions. Considering the infrequency that it's updated at (generally set just once for the context's lifetime), it makes more sense to put it there than with the more frequently updated listener properties. The aforementioned future changes would also prefer MetersPerUnit to not be updated unnecessarily. | ||||
* | 0 meters per unit is invalid | Chris Robinson | 2017-08-21 | 1 | -1/+1 |
| | |||||
* | Use separate atomic macros for pointers | Chris Robinson | 2017-04-14 | 1 | -4/+3 |
| | |||||
* | Remove unnecessary atomic members | Chris Robinson | 2017-03-08 | 1 | -24/+24 |
| | |||||
* | Avoid duplicating code using a macro | Chris Robinson | 2016-12-21 | 1 | -5/+1 |
| | |||||
* | Use separate macros for atomics that don't take a memory order | Chris Robinson | 2016-12-20 | 1 | -2/+2 |
| | |||||
* | Stop using almemory_order_consume | Chris Robinson | 2016-11-17 | 1 | -1/+1 |
| | |||||
* | Don't pass the context's distance model as the source's | Chris Robinson | 2016-08-23 | 1 | -0/+3 |
| | |||||
* | Avoid resupplying unneeded source updates | Chris Robinson | 2016-08-23 | 1 | -18/+0 |
| | | | | | The source's voice holds a copy of the last properties it received, so listener updates can make sources recalculate internal properties from that stored copy. | ||||
* | Avoid redundantly storing distance model settings | Chris Robinson | 2016-05-17 | 1 | -4/+0 |
| | |||||
* | Provide asynchronous property updates for sources | Chris Robinson | 2016-05-14 | 1 | -6/+30 |
| | | | | | | | | | | | | | | | | | | | | | | | | | This necessitates a change in how source updates are handled. Rather than just being able to update sources when a dependent object state is changed (e.g. a listener gain change), now all source updates must be proactively provided. Consequently, apps that do not utilize any deferring (AL_SOFT_defer_updates or alcSuspendContext/alcProcessContext) may utilize more CPU since it'll be filling out more update containers for the mixer thread to use. The upside is that there's less blocking between the app's calling thread and the mixer thread, particularly for vectors and other multi-value properties (filters and sends). Deferring behavior when used is also improved, since updates that shouldn't be applied yet are simply not provided. And when they are provided, the mixer doesn't have to ignore them, meaning the actual deferring of a context doesn't have to synchrnously force an update -- the process call will send any pending updates, which the mixer will apply even if another deferral occurs before the mixer runs, because it'll still be there waiting on the next mixer invocation. There is one slight bug introduced by this commit. When a listener change is made, or changes to multiple sources while updates are being deferred, it is possible for the mixer to run while the sources are prepping their updates, causing some of the source updates to be seen before the other. This will be fixed in short order. | ||||
* | Store the remaining context properties with the listener properties | Chris Robinson | 2016-05-13 | 1 | -0/+4 |
| | |||||
* | Use a lockless method for updating listener and context properties | Chris Robinson | 2016-05-11 | 1 | -42/+106 |
| | | | | | | | | | | | This uses a separate container to provide the relevant properties to the internal update method, using atomic pointer swaps. A free-list is used to avoid having too many individual containers. This allows the mixer to update the internal listener properties without requiring the lock to protect against async updates. It also allows concurrent read access to the user-facing property values, even the multi-value ones (e.g. the vectors). | ||||
* | Use aluVector in some more places | Chris Robinson | 2014-12-16 | 1 | -18/+14 |
| | |||||
* | Update COPYING to the latest ↵ | François Cami | 2014-08-18 | 1 | -2/+2 |
| | | | | https://www.gnu.org/licenses/old-licenses/lgpl-2.0.txt to fix the FSF' address Fix the FSF' address in the source | ||||
* | Explicitly pass the address of atomics and parameters that can be modified | Chris Robinson | 2014-07-26 | 1 | -5/+5 |
| | |||||
* | Add macros for generic atomic functionality | Chris Robinson | 2014-07-22 | 1 | -5/+5 |
| | |||||
* | Remove al_try from alListener.c | Chris Robinson | 2013-10-07 | 1 | -291/+267 |
| | |||||
* | Use an UNUSED macro instead of void-tagging unused parameters | Chris Robinson | 2013-10-07 | 1 | -3/+1 |
| | |||||
* | Build the listener matrix separately | Chris Robinson | 2012-10-09 | 1 | -30/+1 |
| | |||||
* | Store a pointer to the listener in the context | Chris Robinson | 2012-10-09 | 1 | -56/+56 |
| | |||||
* | Switch alListener.c to the new error handling scheme, and get rid of more ↵ | Chris Robinson | 2012-04-23 | 1 | -210/+198 |
| | | | | hungarian notation | ||||
* | Calculate the listener matrix when a new orientation is specified | Chris Robinson | 2011-10-30 | 1 | -1/+31 |
| | | | | | This is so the matrix isn't derived each time a source is updated, and it will make supporting user-defined matrices easier. | ||||
* | Silence some MSVC precision warnings | Chris Robinson | 2011-09-22 | 1 | -1/+1 |
| | |||||
* | Hold the context lock only as needed when handling the listener | Chris Robinson | 2011-08-31 | 1 | -118/+136 |
| | |||||
* | Make sure some listener property values are finite | Chris Robinson | 2011-07-20 | 1 | -18/+35 |
| | |||||
* | Avoid some alListenerfv calls while under the context lock | Chris Robinson | 2011-07-11 | 1 | -9/+12 |
| | |||||
* | Use a flag to signifiy that all sources need updating | Chris Robinson | 2011-07-11 | 1 | -42/+5 |
| | |||||
* | Rename Suspend/ProcessContext since they are locking a mutex | Chris Robinson | 2011-06-30 | 1 | -24/+24 |
| | |||||
* | Avoid calling some AL functions from under the context lock | Chris Robinson | 2011-06-16 | 1 | -41/+39 |
| | | | | | | | There are still some more occurances to clear out (deletion in gen error, effects, some filters), which shall be coming up. There is a possibility for a deadlock between the listlock and the global/context lock, if another attempt to get the listlock is made while under the context lock. | ||||
* | Use a map to store sources and buffers | Chris Robinson | 2010-05-01 | 1 | -9/+9 |
| | | | | And do a lookup using a binary search instead of linear | ||||
* | Don't use deprecated macros | Chris Robinson | 2010-03-19 | 1 | -12/+12 |
| | |||||
* | Pass the context to alSetError | Chris Robinson | 2010-03-16 | 1 | -22/+22 |
| | |||||
* | Rename some struct members for consistency | Chris Robinson | 2010-03-16 | 1 | -3/+3 |
| | |||||
* | Update source parameters only when they need changing | Chris Robinson | 2009-11-25 | 1 | -18/+49 |
| | |||||
* | More modifications and fixes for context checks | Chris Robinson | 2009-08-16 | 1 | -128/+68 |
| | |||||
* | Use a function to retrieve the current context in an already-locked state | Chris Robinson | 2009-08-16 | 1 | -36/+12 |
| | | | | | This should help prevent race-conditions with a context being destroyed between breing retrieved and locked | ||||
* | Add missing config.h includes | Chris Robinson | 2008-01-16 | 1 | -0/+2 |
| | |||||
* | Add AL_METERS_PER_UNIT listener property | Chris Robinson | 2007-12-17 | 1 | -0/+22 |
| | |||||
* | Initial import | Chris Robinson | 2007-11-13 | 1 | -0/+513 |