Chris Robinson
9642bf637d
Explicit init the source queue and current_buffer pointers
2014-05-10 06:32:39 -07:00
Chris Robinson
a455704148
Use a RWLock to help protect the source's buffer queue
...
In some instances this allows to to remove the device/mixer lock, or reduce how
long it's held.
2014-05-10 05:07:13 -07:00
Chris Robinson
eebde08e65
Don't explicitly store the BuffersInQueue
2014-05-10 03:33:41 -07:00
Chris Robinson
c4383b65e2
Store the current buffer queue item, rather than played buffer count
2014-05-10 03:21:40 -07:00
Chris Robinson
eea46f268d
Avoid checking the previous buffer multiple times
2014-05-10 02:01:38 -07:00
Chris Robinson
bf97f58edb
Append the number of bits, not bytes, to types
...
Also use ALuint64SOFT from alext.h for uint64
2014-05-08 00:28:34 -07:00
Chris Robinson
8b7c71e20e
Always use unsigned int for RefCount
2014-05-07 23:49:06 -07:00
Chris Robinson
bd88e1743a
Build a common static lib for reusable code
2014-05-07 19:51:42 -07:00
Chris Robinson
a2bddb7b40
Move RWLock and UIntMap implementations to common
...
This should make the code in common completely self-reliant.
2014-05-07 19:16:49 -07:00
Chris Robinson
3e274c3a57
Make sure FILETIME and ULARGE_INTEGER sizes match
2014-05-07 16:12:34 -07:00
Chris Robinson
1c01e94237
Move the static_assert definition to its own header
2014-05-07 02:28:25 -07:00
Chris Robinson
d8d609b940
Use standard types for the RWLock
2014-05-07 01:03:06 -07:00
Chris Robinson
38b98de78e
Check for C99 _Bool support
2014-05-06 23:10:50 -07:00
Chris Robinson
1aff37114a
Move atomic method definitions to a separate common source
2014-05-06 19:07:40 -07:00
Chris Robinson
fa12855d19
Move threads.c to a separate source dir
...
This will eventually serve to build a static lib of common wrapper methods,
such as threads, mutexes, atomics, etc.
2014-05-06 18:57:42 -07:00
Chris Robinson
0ea979a262
Move some headers to include/
...
Note, these are not installed. Only headers in include/AL/ are installed.
2014-05-06 18:29:53 -07:00
Chris Robinson
1a76a3238c
Use gettimeofday if clock_gettime isn't available
2014-05-06 17:46:17 -07:00
Chris Robinson
cbb94405db
Test _Alignas with 16 instead of 4
2014-05-05 14:21:09 -07:00
Chris Robinson
2edd047178
C11's alignas is also sufficient for SSE aligning
2014-05-05 13:53:07 -07:00
Chris Robinson
2bc16e9947
Add a cast to silence an MSVC warning
2014-05-04 11:50:58 -07:00
Chris Robinson
a48d235ef4
Trace skipped info sub-chunks
2014-05-04 01:19:09 -07:00
Chris Robinson
bca7c682f1
Use ALuint for the amount to skip
2014-05-04 01:00:21 -07:00
Chris Robinson
2a7f3c015e
Don't use the next power of two when duplicating config values
...
Speed isn't terribly important here, and reallocs should be extremely rare.
2014-05-04 00:37:25 -07:00
Chris Robinson
db90985f6a
Remove unnecessary ifdefs
...
mixer_sse.c and mixer_neon.c are only compiled when the relavent headers are
found anyway.
2014-05-04 00:19:55 -07:00
Chris Robinson
a2bb4c3f13
Always use the current gains when mixing
...
The current gain gets explicitly set to the target when the stepping is
finished to ensure the target is still used. This way, however, will allow for
asynchronously 'canceling' a fade by setting the counter to 0.
2014-05-04 00:13:19 -07:00
Chris Robinson
d066c7b124
Better pack HRTF mixing properties
2014-05-03 18:59:26 -07:00
Chris Robinson
b2e533fbfc
Clamp the current and target gain lower bound to epsilon
...
Should give a bit more wiggle room for the gain stepping to get lower than the
silence threshold.
2014-05-03 17:51:06 -07:00
Chris Robinson
34e96aef60
Make sure all gain steps are applied with the SSE and Neon mixers
2014-05-03 17:24:46 -07:00
Chris Robinson
2660ecfd4a
Revert e9aee578a7
...
The vector iterator needs to be the start of the Data array even if the vector
itself is NULL, or else insertion can have a negative insert position.
2014-05-02 11:48:55 -07:00
Chris Robinson
3bdb3f9db7
Iniitialize some mmdevapi backend fields in the constructor
2014-05-02 10:47:31 -07:00
Chris Robinson
d90f684f16
Use a backup in case pthread_mutex_timedlock isn't available
2014-05-01 14:15:31 -07:00
Chris Robinson
804b08e0ca
Use ALboolean for al_string_empty's return type
2014-04-30 12:53:52 -07:00
Chris Robinson
f150676873
Add a helper VECTOR_FOR_EACH macro
2014-04-30 12:30:02 -07:00
Chris Robinson
f9d70aa9ef
Use _mm_set_ps() to set an __m128 instead of {}
2014-04-26 06:31:31 -07:00
Chris Robinson
149df6d4db
Convert the mmdevapi backend to the new backend API
2014-04-25 09:26:53 -07:00
Chris Robinson
28e9f0db8c
Use a vector for mmdevapi device lists
2014-04-24 04:02:05 -07:00
Chris Robinson
83970369e0
More device list cleanup cleanup
2014-04-24 02:33:54 -07:00
Chris Robinson
7dd4a2348f
Use a helper function to clear PulseAudio device lists
2014-04-24 01:38:24 -07:00
Chris Robinson
a4cf378af8
Use a helper method to clear winmm device lists
2014-04-24 01:25:26 -07:00
Chris Robinson
9af8e10c20
Avoid using superfluous LP* types
2014-04-23 10:08:33 -07:00
Chris Robinson
0b527621a5
Use a RefCount for counting committed winmm buffers
2014-04-23 05:08:17 -07:00
Chris Robinson
8fd224f841
Avoid forward-declaring backend vtables
2014-04-23 03:52:05 -07:00
Chris Robinson
420599f8e3
Avoid using assert() in createBackend
2014-04-23 02:18:07 -07:00
Chris Robinson
7fed6383c0
Include FindALSA.cmake
...
Older versions of CMake don't seem to have it.
2014-04-23 02:12:34 -07:00
Chris Robinson
ada4868d86
Properly handle HAVE_DYNLOAD in the dsound backend
2014-04-22 08:55:17 -07:00
Chris Robinson
a4fbe158d4
Avoid some superfluous types
2014-04-22 08:44:06 -07:00
Chris Robinson
84afe4fb40
Simplify the cmake backend handling a bit
2014-04-22 07:58:25 -07:00
Chris Robinson
d5ac11c87f
Fix adding backend include directories
2014-04-22 07:21:19 -07:00
Chris Robinson
f6ad3ef221
Use a helper to return mmdevapi message thread responses
2014-04-22 06:13:49 -07:00
Chris Robinson
e9aee578a7
Avoid dereferencing a NULL pointer
2014-04-21 23:10:09 -07:00