Lioncash
cb2cfc87ad
audio_core/cubeb_sink: Initialize CubebSinkStream's last_frame data member
...
Ensures that all member variables are initialized in a deterministic
manner across the board.
2019-02-25 09:40:37 -05:00
Lioncash
31f64510b9
audio_core/cubeb_sink: Add override specifier to destructor
...
CubebSinkStream inherits from a base class with a virtual destructor, so
override can be appended to CubebSinkStream's destructor.
2019-02-25 09:38:27 -05:00
Lioncash
762b1a20ca
audio_core/cubeb_sink: Resolve variable shadowing warnings in SamplesInQueue
...
The name of the parameter was shadowing the member variable of the same
name. Instead, alter the name of the parameter to prevent said
shadowing.
2019-02-25 09:28:51 -05:00
Lioncash
1a69d0d290
audio_core: Make g_sink_details internally linked
...
We can hide the direct array from external view and instead provide
functions to retrieve the necessary info. This has the benefit of
completely hiding the makeup of the SinkDetails structure from the rest
of the code.
Given that this makes the array hidden, we can also make the array
constexpr by altering the members slightly. This gets rid of several
static constructor calls related to std::vector and std::function.
Now we don't have heap allocations here that need to occur before the
program can even enter main(). It also has the benefit of saving a
little bit of heap space, but this doesn't matter too much, since the
savings in that regard are pretty tiny.
2018-12-13 16:44:32 -05:00
Weiyi Wang
8c7a40434a
cubeb_sink: ignore null-name device when selecting
...
We already ignore them on listing devices. We should do the same when selecting devices. This fix a crash when opening a specific device while there is a null device in the list
2018-10-27 00:43:04 +02:00
bunnei
5647c5bb75
Merge pull request #1321 from lioncash/audio-shadow
...
cubeb_sink: Get rid of variable shadowing within CubebSink's constructor
2018-09-17 12:26:29 -04:00
bunnei
9b4cc24f0f
Merge pull request #1320 from lioncash/name
...
cubeb_sink: Correct context name in ListCubebSinkDevices()
2018-09-17 10:10:33 -04:00
fearlessTobi
1190ea6ddb
Port #4182 from Citra: "Prefix all size_t with std::"
2018-09-15 15:21:06 +02:00
Lioncash
7c7c12f664
cubeb_sink: Get rid of variable shadowing within CubebSink's constructor
...
The parameter of the lambda was shadowing the variable that was being
assigned to.
2018-09-14 12:20:51 -04:00
Lioncash
514f8f036c
cubeb_sink: Correct context name in ListCubebSinkDevices()
...
This ain't Citra.
2018-09-14 12:18:09 -04:00
MerryMage
9ffbfeee26
audio_core: Flush stream when not playing anything
2018-09-12 18:09:14 +01:00
MerryMage
84b7a67ef1
cubeb_sink: Downsample arbitrary number of channels
2018-09-09 09:51:46 +01:00
MerryMage
d7d7fec6c7
cubeb_sink: Perform audio stretching
2018-09-08 18:56:38 +01:00
MerryMage
722441ef0b
cubeb_sink: Hold last available value instead of writing zeros
...
This reduces clicking in output audio should we underrun.
2018-09-08 18:56:38 +01:00
MerryMage
d99dceeb7a
cubeb_sink: Use RingBuffer
2018-09-08 18:56:38 +01:00
fearlessTobi
7377afca3a
Add audio stretching support
2018-09-08 18:26:23 +01:00
MerryMage
c9923e03bb
cubeb_sink: Protect queue with a mutex
2018-08-12 20:41:46 +01:00
bunnei
600e4bbeac
audio_core: Use s16 where possible for audio samples.
2018-08-04 18:22:58 -04:00
bunnei
950de5fd73
cubeb_sink: Support variable sample_rate and num_channels.
2018-08-04 15:30:10 -04:00
bunnei
97647e60f2
audio_core: Sinks need unique names as well.
2018-08-04 14:34:12 -04:00
bunnei
0ba0cdbed9
audio_core: Implement Sink and SinkStream interfaces with cubeb.
2018-07-30 21:45:24 -04:00