summaryrefslogtreecommitdiffstats
path: root/pica-client/audiodevice.cpp
diff options
context:
space:
mode:
authorAnton <anton@picapica.im>2026-08-09 08:21:47 +0400
committerAnton <anton@picapica.im>2026-08-09 08:21:47 +0400
commit32b5ae5d300a6e6ee571febd121ac985758c574e (patch)
tree271bdcd2fe3944d80a592525bd4b19e1ca9cbcb1 /pica-client/audiodevice.cpp
parentdebf41f7ee5907cbd4d75d754b18380983929d44 (diff)
downloadpica-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.cpp29
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
+}