diff options
| author | Anton <anton@picapica.im> | 2026-08-09 08:21:47 +0400 |
|---|---|---|
| committer | Anton <anton@picapica.im> | 2026-08-09 08:21:47 +0400 |
| commit | 32b5ae5d300a6e6ee571febd121ac985758c574e (patch) | |
| tree | 271bdcd2fe3944d80a592525bd4b19e1ca9cbcb1 /pica-client/audiodevice.cpp | |
| parent | debf41f7ee5907cbd4d75d754b18380983929d44 (diff) | |
| download | pica-pica-32b5ae5d300a6e6ee571febd121ac985758c574e.tar.gz pica-pica-32b5ae5d300a6e6ee571febd121ac985758c574e.zip | |
pica-client: add TonePlayer for classic telephony call tones
Wires ringback, busy, special-information (unreachable) and an
electromechanical-bell incoming ringtone into
AudioVideoCallController, each played on its own QThread since
TonePlayer::play() blocks. Device selection reads audio.playback_device
and audio.ring_device from Settings so it follows what's configured in
SettingsDialog.
Centralizes the FFmpeg libavdevice output driver name
(alsa/audiotoolbox/dsound) in AudioDevice::PlatformDriverName() rather
than hardcoding ALSA, so it can also back capture/playback later.
Adds toneplayer.{h,cpp} to the autotools build and adds the missing
GPL v3 header to the touched files that lacked it.
Diffstat (limited to 'pica-client/audiodevice.cpp')
| -rw-r--r-- | pica-client/audiodevice.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/pica-client/audiodevice.cpp b/pica-client/audiodevice.cpp index d2995e3..17dd1b9 100644 --- a/pica-client/audiodevice.cpp +++ b/pica-client/audiodevice.cpp @@ -1,3 +1,19 @@ +/* + (c) Copyright 2012 - 2018 Anton Sviridenko + https://picapica.im + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 3. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. +*/ #include "audiodevice.h" #ifdef Q_OS_LINUX @@ -68,3 +84,16 @@ QList<MediaDeviceInfo> AudioDevice::Enumerate(enum MediaDeviceStreamDirection di #endif return result; } + +QString AudioDevice::PlatformDriverName() +{ +#if defined(Q_OS_LINUX) + return QStringLiteral("alsa"); +#elif defined(Q_OS_MACOS) || defined(Q_OS_MAC) + return QStringLiteral("audiotoolbox"); +#elif defined(Q_OS_WIN) + return QStringLiteral("dsound"); +#else + return QStringLiteral("oss"); +#endif +} |
