Commit graph

34 commits

Author SHA1 Message Date
Arun Raghavan
248394c8bf device-restore: Set sink format when possible
This implements the actual setting of sink formats when a new sink is
added or when the set of available formats changes.
2011-08-15 11:51:35 +05:30
Arun Raghavan
ba163b8b23 device-restore: Make bools not be bit fields
This makes the pa_bool_t members of userdata not be a single bit field
since pa_bool_t can be an int, potentially causing signedness issues in
comparisons.
2011-08-15 11:51:35 +05:30
Colin Guthrie
fc0a6ee239 device-restore: Various fixes for the protocol extension.
* Fix extension API function export list.
 * Ensure we trigger a subscription event when things change.
 * Send the index with our subscription events.
 * Clear out any existing formats when saving.
 * Call the correct extension command for subscriptions.
2011-08-09 11:01:01 +02:00
Maarten Bosmans
dd9265ac78 Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
Colin Guthrie
9ffa9382dd database: Support legacy format database entries.
This adds code to specifically support legacy entries.
I kept this code in a separate commit so that it can be (relatively)
easily removed at some point in the future.
2011-06-22 23:12:20 +01:00
Colin Guthrie
35f99c6e31 device-restore: Add a new protocol extension for device-restore.
This simply exposes the formats that a device supports
via a simple protocol extension that will allow clients
to setup what a connected receiver supports format wise.
2011-06-22 23:12:19 +01:00
Colin Guthrie
695d536380 database: Convert our use of database files to save in tagstruct format.
This has the advantage of allowing versioned updates in the future,
thus allowing us to be more user friendly going forward (as opposed
to just ignoring entries from old versions).

The primary motivation for this, however, is to allow variable length
storage in each entry which will be needed for upcoming work.

At present this commit will ignore any legacy entries but support
for reading and subsequently converting legacy entries will be added
shortly.
2011-06-22 22:47:55 +01:00
Maarten Bosmans
684b89c639 Fix up some double spaces 2011-03-18 09:20:07 +00:00
Zhang Wanming
0c0c285e79 Fix typos 2010-12-20 11:07:30 +00:00
Lennart Poettering
8c31974f56 sink: volume handling rework, new flat volume logic
- We now implement a logic where the sink maintains two distinct
  volumes: the 'reference' volume which is shown to the users, and the
  'real' volume, which is configured to the hardware. The latter is
  configured to the max of all streams. Volume changes on sinks are
  propagated back to the streams proportional to the reference volume
  change. Volume changes on sink inputs are forwarded to the sink by
  'pushing' the volume if necessary.

  This renames the old 'virtual_volume' to 'real_volume'. The
  'reference_volume' is now the one exposed to users.

  By this logic the sink volume visible to the user, will always be the
  "upper" boundary for everything that is played. Saved/restored stream
  volumes are measured relative to this boundary, the factor here is
  always < 1.0.

- introduce accuracy for sink volumes, similar to the accuracy we
  already have for source volumes.

- other cleanups.
2009-08-19 02:55:02 +02:00
Lennart Poettering
fc33f7ee97 Merge most of elmarco/rtclock2
Merge commit 'e4d914c945'
2009-06-22 23:09:46 +02:00
Lennart Poettering
c4d90ea986 restore: change 'save' flag behaviour to reflect whether an entry shall and/or is in the on-disk databases 2009-06-22 22:33:09 +02:00
Marc-André Lureau
0955e3d45b Base mainloop on pa_rtclock_now()
Move the mainloop to monotonic based time events.

Introduces 4 helper functions:
pa_{context,core}_rttime_{new,restart}(), that fill correctly a
timeval with the rtclock flag set if the mainloop supports it.

Both mainloop-test and mainloop-test-glib works with rt and timeval
based time events. PulseAudio and clients should be fully functional.

This patch has received several iterations, and this one as been
largely untested.

Signed-off-by: Marc-André Lureau <marca-andre.lureau@nokia.com>
2009-06-20 17:29:31 +03:00
Lennart Poettering
8d3362cec6 device-restore: properly check save_muted flag when storing muted state 2009-06-18 03:41:49 +02:00
Lennart Poettering
0e4ac56afc device-restore: save last used port in database 2009-06-18 00:59:04 +02:00
Lennart Poettering
b7e2223186 database: port restore modules to new database API 2009-05-14 01:24:26 +02:00
Lennart Poettering
fe8b10cc05 core: introduce new 'reference' volume for sinks
The reference volume is to be used as reference volume for stored stream
volumes. Previously if a new stream was created the relative volume was
taken relatively to the virtual device volume. Due to the flat volume
logic this could then be fed back to the virtual device volume.
Repeating the whole story over and over would result in a device volume
that would go lower, and lower and lower.

This patch introduces a 'reference' volume for each sink which stays
unmodified by stream volume changes even if flat volumes are used. It is
only modified if the sink volumes are modified directly by the user.

For further explanations see http://pulseaudio.org/wiki/InternalVolumes
2009-04-13 22:56:25 +02:00
Colin Guthrie
86dee05aec Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
Lennart Poettering
44bca66c59 make PA_GCC_PACKED and PA_GCC_MALLOC actually work 2009-02-13 18:02:47 +01:00
Lennart Poettering
1db64781bf version all entries in the database 2009-02-04 18:31:24 +01:00
Lennart Poettering
63157a6662 add missing usage strings 2009-01-28 00:19:47 +01:00
Lennart Poettering
10e5c70286 don't restore mute/volume when already set 2009-01-21 02:47:26 +01:00
Lennart Poettering
3f20a152be Pass GDBM_NOLOCK to gdbm
gdbm still uses BSD lockf for locking which is incompatible with NFS.
Since we don't need the locking here since the db files in question
should never be accessed by more than one process since they are
per-home-dir and per-machine we can disable locking without any ill
results.

This should fix rhbz #471279.
2008-12-17 20:22:42 +01:00
Lennart Poettering
54da71ef5d reduce needlessly large gdbm cache a bit 2008-08-29 01:48:31 +02:00
Lennart Poettering
b7026bf248 add a few more gcc warning flags and fix quite a few problems found by doing so 2008-08-19 22:39:54 +02:00
Lennart Poettering
916899a973 pass force_refresh=FALSE to all volume/mute read invocations 2008-08-13 13:59:50 +02:00
Lennart Poettering
ecb2bc4f04 Modify pa_state_path() to take an additional argument for prepending the machine id to the file name. 2008-08-07 02:28:47 +02:00
Lennart Poettering
c01f0bc01f split out save trigger function 2008-08-04 18:56:12 +02:00
Lennart Poettering
32cf9db434 store channel map in database and remap volumes if ncessary 2008-08-04 18:55:50 +02:00
Lennart Poettering
ec19f2bbf8 a bit of refactoring 2008-08-03 23:22:38 +02:00
Lennart Poettering
8ae83d618e get rid of svn $ keywords 2008-06-18 23:23:21 +03:00
Lennart Poettering
92e4fb318e merge Colin Guthrie's module-always-sink module, and add priorization to the hook subsystem while doing so.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2516 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-06-11 19:45:57 +00:00
Lennart Poettering
6be0c7526c move device volume file to state dir
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2479 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-05-21 22:47:07 +00:00
Lennart Poettering
045c1d602d merge glitch-free branch back into trunk
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2445 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-05-15 23:34:41 +00:00