Commit Graph

220 Commits

Author SHA1 Message Date
Max Kellermann
fe85fa3bea ConfigData: move struct config_param to Param.hxx 2015-01-21 21:23:02 +01:00
Max Kellermann
4c74016b1a MixerAll: restore "null" mixer volume from state file 2015-01-16 19:48:26 +01:00
Max Kellermann
712ed555e6 Copyright year 2015 2015-01-01 19:48:13 +01:00
Max Kellermann
99e6409a67 {mixer,output}/pulse: move code to LogPulseError() 2014-12-29 22:42:52 +01:00
Max Kellermann
fe9db8b369 {mixer,output}/pulse: use a common Domain instance 2014-12-29 22:25:14 +01:00
Max Kellermann
ca035d0e8d mixer/pulse: remove redundant "virtual" keywords 2014-12-29 22:23:58 +01:00
Max Kellermann
0debba0f6e mixer/null: new mixer plugin 2014-12-02 18:20:44 +01:00
Max Kellermann
f2bd2c318c MixerType: convert to strictly-typed enum 2014-12-02 18:20:44 +01:00
Max Kellermann
21c42819c7 MixerType: rename to CamelCase 2014-12-02 18:19:31 +01:00
Max Kellermann
aafff8fd5c fs/output, fs/TextFile: move to fs/io/ 2014-08-07 19:38:25 +02:00
Max Kellermann
9fb351a139 *Save, *State: use the OutputStream API instead of FILE* 2014-07-30 22:17:01 +02:00
Max Kellermann
073e9d06ec mixer/software: keep attribute "volume" in the 0..100 range
The attribute must be 0..100 and not 0..1024.  Previously, the code
was inconsistent.
2014-05-12 12:46:14 +02:00
Pete Beardmore
9da57e7458 PulseOutputPlugin: avoid locking mainloop object from within mainloop thread
-fixes regression introduced by:
 '8d6fedf8177d0d2ced81e6d93d35c368b2ac69db [PATCH] Mixer: add class MixerListener'
-listener.OnMixerVolumeChanged() called GetVolume() which attempted to acquire
the lock but as per 'pa_threaded_mainloop_lock()' documentation:
This function may not be called inside the event loop thread. Events that are
dispatched from the event loop thread are executed with this lock held
-this patch seperates the underlying action of GetVolume() into a new
GetVolumeInternal() function, to be called only when the lock is already held, as
is the case for the listener.OnMixerVolumeChanged() call
2014-03-05 17:17:41 +00:00
Max Kellermann
8d6fedf817 Mixer: add class MixerListener
Use a listener interface instead of GlobalEvents.
2014-02-19 21:40:14 +01:00
Max Kellermann
0a0659d737 mixer/Plugin: pass AudioOutput reference to init()
Passing a void pointer is unsafe.
2014-02-06 21:10:12 +01:00
Max Kellermann
b6df4680df MixerPlugin: convert function pointers to Mixer virtual methods 2014-02-06 20:52:33 +01:00
Max Kellermann
e04090b477 Mixer: delete the implicit copy constructor 2014-02-06 20:52:25 +01:00
Max Kellermann
c9fb6f7bdb Mixer: make the constructor "explicit" 2014-02-06 20:52:25 +01:00
Max Kellermann
ad6b05ae17 mixer/software: use IgnoreError() 2014-02-06 20:52:25 +01:00
Max Kellermann
855f26c43d Mixer: use reference instead of pointer for MixerPlugin 2014-02-05 17:25:47 +01:00
Max Kellermann
f86e159536 Mixer: rename struct mixer_plugin to MixerPlugin 2014-02-05 17:22:34 +01:00
Max Kellermann
e8938b1069 MixerPlugin: add EventLoop& init() parameter 2014-02-05 00:02:02 +01:00
Max Kellermann
68b79f97f3 output: rename source files 2014-01-28 11:42:54 +01:00
Max Kellermann
815d72065c output: rename struct audio_output to AudioOutput 2014-01-28 11:34:09 +01:00
Max Kellermann
e0dc721324 OutputPlugin: rename struct audio_output_plugin to AudioOutputPlugin 2014-01-28 11:33:15 +01:00
Max Kellermann
f5a923b9d1 OutputAll: convert to class, move instance to class Partition
Another big chunk of code for multi-player support.
2014-01-28 09:20:53 +01:00
Max Kellermann
68eda78704 Mixer*: move to mixer/ 2014-01-24 16:44:32 +01:00
Max Kellermann
7c52a1c04b Filter*: move to filter/ 2014-01-24 16:43:57 +01:00
Max Kellermann
197b503f3e Config*: move to config/ 2014-01-24 00:20:01 +01:00
Max Kellermann
ea5b901bcc output/*: move to output/plugins/ 2014-01-23 23:49:50 +01:00
Max Kellermann
4f83c60296 copyright year 2014 2014-01-13 22:31:55 +01:00
Max Kellermann
08f5b9f1f9 event/MultiSocketMonitor: add method ClearSocketList() 2014-01-06 18:27:26 +01:00
Max Kellermann
7b540f0226 event/MultiSocketMonitor: add method ReplaceSocketList()
Move code from AlsaMixerPlugin.
2014-01-05 01:28:36 +01:00
Max Kellermann
87fce8ef27 mixer/alsa: use DeferredMonitor to update file descriptors
EventLoop::AddCall() and EventLoop::AddIdle() are unsafe, because we
can't cancel those calls.
2014-01-04 15:58:59 +01:00
Max Kellermann
6d21b9448a pcm/PcmVolume: rename to Volume.cxx 2013-12-23 10:35:21 +01:00
Max Kellermann
86e72ffefb util/Clamp: generic Clamp() function 2013-12-22 21:08:06 +01:00
Max Kellermann
9cfd9d7ce0 Merge branch 'v0.18.x' 2013-12-15 19:17:40 +01:00
Max Kellermann
42a09ff17a mixer/alsa: fix deadlock
This deadlock was a regression by commit 8e38b4f8.  Since we currently
can't resolve this, let's revert the commit, and add a GLib specific
workaround for the build failure.
2013-12-15 19:07:25 +01:00
Max Kellermann
c7b1038a9d Merge branch 'v0.18.x' 2013-12-14 12:37:16 +01:00
Max Kellermann
8e38b4f83c mixer/alsa: use BlockingCall() instead of EventLoop::AddCall()
This is safer, and works without epoll().  Fixes a build failure with
uClibc, which does not support epoll().
2013-12-13 14:35:36 +01:00
Max Kellermann
f90abe9530 include cleanup using iwyu 2013-11-28 11:50:54 +01:00
Max Kellermann
88e630170e mixer/software: fix double free bug 2013-10-30 23:12:45 +01:00
Max Kellermann
20597b3632 *: use nullptr instead of NULL 2013-10-28 23:58:17 +01:00
Max Kellermann
222dc8a239 Util/ASCII: add StringEqualsCaseASCII() overload with length
Replaces GLib's g_ascii_strncasecmp().
2013-10-21 08:42:55 +02:00
Max Kellermann
0e4d2e7277 Util/ASCII: add function StringEqualsCaseASCII()
Replaces GLib's g_ascii_strcasecmp().
2013-10-20 23:09:51 +02:00
Max Kellermann
dbd88e6aef Client, ...: remove unnecessary glib.h include 2013-10-15 22:51:09 +02:00
Max Kellermann
060814daa8 Log: new logging library API
Prepare to migrate away from GLib.  Currently, we're still using GLib
as a backend.
2013-10-02 08:57:55 +02:00
Max Kellermann
a2ce2447a6 Merge branch 'v0.17.x' 2013-10-01 17:20:38 +02:00
Max Kellermann
9a1076256d mixer/alsa: handle ENODEV
Fixes busy loop when USB sound device gets unplugged (Mantis bug
#3824).
2013-10-01 16:35:27 +02:00
Max Kellermann
72ef38d4a7 mixer/alsa: log snd_mixer_handle_events() errors 2013-10-01 16:30:20 +02:00
Max Kellermann
26d92c80ed conf.h: remove obsolete header
Use only ConfigData.hxx in plugin sources to reduce header
dependencies.
2013-09-05 08:47:10 +02:00
Max Kellermann
29030b54c9 util/Error: new error passing library
Replaces GLib's GError.
2013-09-04 18:14:22 +02:00
Max Kellermann
5c48d3fbba alsa/mixer: defer InvalidateSockets() call to I/O thread 2013-08-10 14:05:06 +02:00
Max Kellermann
342333f72a mixer/alsa: invoke InvalidateSockets() in constructor 2013-08-10 13:54:23 +02:00
Max Kellermann
be0c8495cd event/MultiSocketMonitor: PrepareSockets() returns timeout
Simplify the API, don't use GLib specific integer type.
2013-08-10 11:52:31 +02:00
Max Kellermann
abe090ec1f *: remove remaining __cplusplus checks 2013-08-07 19:58:52 +02:00
Max Kellermann
123dd5fe2d mixer/alsa: use AllocatedArray for the pollfd buffer 2013-08-07 18:56:57 +02:00
Max Kellermann
b70d38dc10 Makefile.am: move sources to libsystem.a 2013-08-07 10:31:31 +02:00
Max Kellermann
85b77b81ca *: use gcc.h macros instead of GLib 2013-08-04 23:48:01 +02:00
Max Kellermann
a0beb5fa26 MixerPlugin: pass config_param reference 2013-08-04 14:07:50 +02:00
Max Kellermann
f54bcc1f16 FilterPlugin: pass config_param reference 2013-08-04 14:07:50 +02:00
Max Kellermann
06f898cc12 tag: convert to C++ 2013-07-30 20:19:53 +02:00
Max Kellermann
648196319f output_api: convert to C++ 2013-07-30 08:34:10 +02:00
Max Kellermann
8ce9b53093 mixer/software: use gcc_unused instead of G_GNUC_UNUSED 2013-04-16 23:50:41 +02:00
Max Kellermann
cb8449a66d MixerInternal: convert to class 2013-04-16 21:33:25 +02:00
Max Kellermann
621467717d mixer/winmm: convert to a class 2013-04-16 21:31:03 +02:00
Max Kellermann
506c716cf2 mixer/Software: convert to a class 2013-04-16 21:25:27 +02:00
Max Kellermann
9f625b0a0d mixer/Pulse: convert to a class 2013-04-16 21:18:54 +02:00
Max Kellermann
bc1b4131cb mixer/Oss: convert to a class 2013-04-16 21:11:14 +02:00
Max Kellermann
80ba3c5932 mixer/Alsa: convert to a class 2013-04-16 21:11:06 +02:00
Max Kellermann
e63420a8c2 output/Pulse: convert to C++ 2013-04-16 20:51:21 +02:00
Max Kellermann
c654c7630a pcm_*: move to src/pcm/ 2013-04-09 01:24:52 +02:00
Max Kellermann
496f70fc0d mixer_plugin: convert to C++ 2013-02-22 20:51:23 +01:00
Max Kellermann
9ede4c5f3c {output,mixer}/winmm: convert to C++ 2013-02-22 20:29:03 +01:00
Max Kellermann
a9ce0218c1 FilterInternal: convert struct filter to a OO interface 2013-02-02 09:34:07 +01:00
Max Kellermann
3894450b10 filter: convert to C++ 2013-02-01 17:47:09 +01:00
Max Kellermann
1b175025fe pcm_*: convert to C++ 2013-01-31 21:11:06 +01:00
Max Kellermann
7764136211 mixer/software, filter/volume: convert to C++ 2013-01-31 21:11:06 +01:00
Max Kellermann
26a9ce7b29 output/{alsa,oss}: convert to C++ 2013-01-29 14:32:32 +01:00
Max Kellermann
e22ef6c481 output/roar: convert to C++ 2013-01-16 23:29:56 +01:00
Max Kellermann
2101daef5a mixer/Alsa: use MultiSocketMonitor 2013-01-15 18:18:00 +01:00
Max Kellermann
49f3855407 configure.ac: enable WIN32_LEAN_AND_MEAN on Windows 2013-01-11 11:06:16 +01:00
Max Kellermann
26ebfc04b0 EventPipe: rename to GlobalEvents 2013-01-09 23:31:43 +01:00
Max Kellermann
5faf443038 event_pipe.h: convert to C++ 2013-01-09 22:37:47 +01:00
Max Kellermann
d3e1b72d38 mixer/{alsa,pulse}: convert to C++ 2013-01-09 22:25:24 +01:00
Max Kellermann
457d98c860 output/raop: delete the RAOP plugin
This plugin is horrible code, I mean it.  Last year, I tried hard to
fix it, but I figured would take less time to do a full rewrite.
Given that I don't even have any device that supports RAOP, I can't do
that properly.  After 16 months, nobody volunteered for fixing it.
Hereby, I delete it, because having no RAOP plugin is better than
having this mess.  Sorry.
2012-05-29 23:15:41 +02:00
Max Kellermann
26ec62714c mixer/alsa: listen for external volume changes
Use libasound's polling functions, implement a bridge to GSource /
GPollFD and send idle events to clients when an external program
changes the ALSA mixer volume.
2012-01-05 01:52:40 +01:00
Max Kellermann
7873b5e78b mixer/alsa: move code to alsa_mixer_setup()
Better error handling.
2012-01-05 01:52:05 +01:00
Max Kellermann
1b889c527f mixer/alsa: move code to alsa_mixer_lookup_elem() 2012-01-05 00:52:41 +01:00
Max Kellermann
3934d2d30c output/pulse: don't expose internal struct in public header
Provide _lock() and _unlock() to wrap all accesses from the mixer
plugin.
2011-09-17 19:50:36 +02:00
Max Kellermann
947848ebf6 output/roar: export volume methods
Use these instead of exposing the internal roar_t struct.
2011-09-17 19:33:51 +02:00
Max Kellermann
062948b110 mixer/raop: include cleanup 2011-08-31 08:31:26 +02:00
Max Kellermann
82f336a78f output/raop: remove excessive debug messages 2011-08-24 01:47:27 +02:00
Max Kellermann
350aa33022 output/raop: consistently use GError 2011-08-24 01:47:26 +02:00
Hans-Kristian Arntzen
d9353c4fd3 Remove unused headers in Roar plugin.
Should fix build errors for Win32.
2011-03-23 21:59:22 +01:00
Max Kellermann
0c9fc2f809 Merge commit 'release-0.16.2'
Conflicts:
	Makefile.am
	NEWS
	configure.ac
2011-03-19 09:58:07 +01:00
Hans-Kristian Arntzen
1a954748a0 RoarAudio output plugin 2011-03-16 17:57:47 +01:00
Thomas Jansen
948b8f35e6 general: whitespace cleanup
Remove trailing whitespace found by this command:
find -name '*.[ch]' | xargs grep "[[:space:]]$"
2011-02-09 22:42:31 +01:00
Max Kellermann
c6cbcc2c25 copyright year 2011 2011-01-29 10:13:54 +01:00
Dustin Puckett
79e0db4ca0 output/raop: new output plugin
Remote Audio Output Protocol (RAOP), for Apple devices.
2011-01-28 21:17:09 +01:00