Nils Fenner
82dfe0f704
fix audio singleton implementation
2016-01-09 13:12:39 +01:00
Nils Fenner
79ddbf7d02
open the first available audio in/out device as default, if specifier is empty
2015-12-28 12:06:22 +01:00
Nils Fenner
552155bd1f
Merge PR #2719 from antis81:fix_audio_subscriptions
...
* fix dangling audio output device
* do not resubscribe sid in copy constructor
2015-12-23 23:29:20 +01:00
Nils Fenner
19201dda8a
Merge pull request #2713 from antis81:newav_audio_cleanup
2015-12-20 23:10:03 +01:00
Nils Fenner
e73fd27d8b
fix: don't subscribe to in/out device when initialization failed
2015-12-20 09:45:43 +01:00
Nils Fenner
0615c7c3c6
reimplement audio in/out subscription concept
2015-12-20 09:45:43 +01:00
Nils Fenner
d8607324ce
cleanup AudioPrivate
...
* rename mAudioMeter -> audioMeter
* move class declaration below other classes
2015-12-20 09:45:43 +01:00
Nils Fenner
ace3662757
further improved audio metering
...
Give qTox time to do more important things -> do not measure with 100%.
2015-12-20 09:45:43 +01:00
Nils Fenner
535bb212f5
make use of QThread::requestInterruption
2015-12-20 09:45:43 +01:00
Nils Fenner
c39138a65d
lock mutex also on start/stop audio loop playback
2015-12-20 09:45:43 +01:00
Nils Fenner
08c43d0b83
cleanup OpenAL compatibility code in audio class
2015-12-20 09:45:43 +01:00
Nils Fenner
a1b87194b8
fix #2504
...
We need to filter samples * channels; also cleaned up data types
2015-12-20 09:45:43 +01:00
Nils Fenner
44d1c6fe74
[WIP] implement threaded level meter for input level
...
Issues:
1. Using 100% processor.
2. Temporary silences an active call -> reactivate after widget hide.
Still greatly improves metering audio data, removing "read buffer" errors.
2015-12-20 09:45:43 +01:00
Nils Fenner
5805c8c2bf
improved code for non-blocking audio player
...
Instead relying on hardcoded "d->alMainSource", we bind to the given OpenAL source instead.
2015-12-20 09:45:43 +01:00
Nils Fenner
67fbee8868
use qstring for path when playing audio file
2015-12-20 09:45:43 +01:00
Nils Fenner
b44ef6c596
introduce a non-blocking AudioPlayer
...
Also moved private stuff to private class.
2015-12-20 09:45:43 +01:00
Nils Fenner
1fb9bce78c
move audio class to thread before starting
2015-12-20 09:45:22 +01:00
Nils Fenner
bb7d2a72b7
privatized audio interface
2015-12-20 09:45:22 +01:00
Nils Fenner
c23cb0043f
implement actual audio in/out subscription management
2015-12-20 09:42:14 +01:00
Nils Fenner
137eca86d6
use single mutex for audio resource locking
2015-12-20 09:42:04 +01:00
Nils Fenner
68e7aef916
privatized open/close audio devices
2015-12-20 09:42:04 +01:00
Nils Fenner
f6c09104e4
fix noise (clipping) while (re-)initializing in/out audio device
2015-12-20 09:40:57 +01:00
Nils Fenner
d233c6f699
cleanup audio out device on error after open
2015-12-20 09:40:57 +01:00
Nils Fenner
d631ddbc86
cleanup close audio out device
2015-12-20 09:40:57 +01:00
Nils Fenner
32bc99fb38
cleanup reinitialization of changed audio in/out
2015-12-20 09:40:57 +01:00
Nils Fenner
ad6e0a85f5
add method to reinit audio in/out
2015-12-20 09:40:57 +01:00
Nils Fenner
7b98f2a4a0
cleanup close audio device
2015-12-20 09:40:57 +01:00
Nils Fenner
efda47a226
close audio output in destructor
2015-12-20 09:40:57 +01:00
Nils Fenner
c540faf271
add method to un-/subscribe to audio output as well
2015-12-20 09:40:57 +01:00
Nils Fenner
e8a4f6511d
use internal methods to open in/out audio devices
2015-12-20 09:40:57 +01:00
Nils Fenner
c5f4ceee6b
fix Audio::subscribeInput
...
Audio input/output device will only be opened, if not initialized already.
2015-12-20 09:40:57 +01:00
Nils Fenner
bde042ba3a
remove unused include and forward declarations
2015-12-20 09:40:57 +01:00
Nils Fenner
2ce92be94b
do not close output in unsubscribeInput and cleanup input internally instead
2015-12-20 09:40:57 +01:00
Nils Fenner
26fc424986
use internal cleanup methods to close in-/output devices
2015-12-20 09:40:57 +01:00
Nils Fenner
e2966b1457
open output device on "subscribeInput" only when not already opened
2015-12-20 09:40:57 +01:00
Nils Fenner
46b3ba2631
remove obsolete if
2015-12-20 09:40:57 +01:00
tux3
2b8200aa30
Fix audio timers started from wrong thread
...
This timer never actually worked
2015-12-19 17:07:19 +01:00
Jacob Henner
a405ceca9d
Fixes #2631 : Automatically select capture device.
2015-12-14 05:09:34 -05:00
tux3
31e62cfc5c
Fix loopback capture audio code
2015-12-10 22:04:40 +01:00
Anton Batenev
656696ebcb
Add alext.h to audio.h
...
ALC_ALL_DEVICES_SPECIFIER may be defined in different headers of
libopenal (alext.h < 1.14 and alc.h >= 1.14). Seems there is no
harm in always include both.
Related commit is: @1d9e89f
2015-12-10 13:34:40 +03:00
Jacob Henner
1d9e89f318
qtox will now attempt to default to the first audio output device
2015-12-07 01:08:50 -05:00
tux3
cf52ff314f
Don't play sound without an output
...
And avoid the division by 0 when getting garbage info about nonexistent output sources
2015-11-07 22:24:17 +01:00
tux3
5c8dc1d7c9
Add None audio I/O devices
...
Can be changed in the middle of a call without problem
2015-11-07 18:23:10 +01:00
tux3
46fa4def20
Don't spam log dropped audio frames
...
Fixes #2507
2015-11-06 20:56:00 +01:00
tux3
995fc4cdda
Reload audio devices on the fly from settings
2015-10-24 02:59:12 +02:00
tux3
9163b73032
Refactor uses of playMono16Sound
2015-10-24 02:37:27 +02:00
tux3
aac5fb87e6
Add ringing sound for received calls
...
No sound for outgoing calls yet
2015-10-24 02:26:32 +02:00
tux3
08bde698ca
Apply input volume to all audio channels
...
Fixes #2452
2015-10-23 19:27:27 +02:00
tux3
f45256baf1
Implement group calls
2015-10-23 17:52:45 +02:00
tux3
e0aa8dd4a2
Implement audio calls
2015-10-23 17:39:08 +02:00