Commit graph

102 commits

Author SHA1 Message Date
Pierre Ossman
d4d1e5edf7 Documentation for the threaded main loop API.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@892 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-17 11:07:16 +00:00
Pierre Ossman
c752e11c02 Add Microsoft's WAVEFORMWATEEXTENSIBLE channel mapping.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@890 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-17 06:58:43 +00:00
Lennart Poettering
4b6ab291a7 * modify pa_channel_map_init_auto() to take an extra argument specifying the standard to use (ALSA, AIFF, ...)
* add some more validity checks to pa_source_new(),pa_sink_new(),pa_sink_input_new(),pa_source_output_new()


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@888 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-16 23:47:38 +00:00
Lennart Poettering
23e74545ad use the new latency update callback to be notified when latency data becomes
available again after PA_ERR_NODATA is returned by pa_stream_get_latency()


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@876 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-16 00:06:02 +00:00
Lennart Poettering
19167a1a2d add notification callback which is called when new latency data becomes available
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@873 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-15 20:17:11 +00:00
Lennart Poettering
be05b18c6f * add new parameter to pa_open_config_file() to specify open mode
* modify pa_sink_input_new() to take initial volume settings as argument
* call pa_sink_input_set_volume() when changing stream volume in protocol-esound.c to make sure that subscribe events are issued properly


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@858 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-14 00:41:18 +00:00
Lennart Poettering
afdec0532f remove superfluous log message
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@850 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-13 19:55:28 +00:00
Pierre Ossman
af54f9fcc7 Windows support for the threaded API.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@847 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-11 14:57:24 +00:00
Lennart Poettering
f931486c5d update doxygen docs
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@846 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-11 13:17:27 +00:00
Lennart Poettering
68b98f7113 don't signal the accept_cond automatically when waiting for a signal event
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@845 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-11 13:17:19 +00:00
Lennart Poettering
e929aabc03 split of signal releasing into its own function and name it pa_threaded_mainloop_accept()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@844 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-11 13:01:24 +00:00
Pierre Ossman
3890f0387f Remove some debug code that wasn't supposed to be committed.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@842 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-11 11:30:55 +00:00
Pierre Ossman
48d66cd5e8 Handle pipes on platforms where they are non-existant of broken.
We do this by creating a TCP socket pair instead of a normal pipe. Since
Windows isn't UNIX-y enough to support read()/write() on sockets, we also
need a wrapper to handle read() vs recv() and write() vs send().


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@840 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-11 11:08:58 +00:00
Pierre Ossman
12d4b5d952 Include log header to get rid of warnings.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@839 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-11 11:04:57 +00:00
Pierre Ossman
6d2a9367ba Do WSAStartup() in the DLL entry routine instead of at context creation.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@837 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-11 11:02:25 +00:00
Lennart Poettering
26870176ba fix handling of timing status requests
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@836 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-09 15:16:12 +00:00
Pierre Ossman
4e71f20d6c Add stubs for the threaded main loop so that we can compile it on
non-supported platforms (still can't run it though).


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@834 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-09 08:39:26 +00:00
Lennart Poettering
df3306c4af rework the simple API to make use of the new threaded mainloop implementation
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@832 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-06 20:58:28 +00:00
Lennart Poettering
4b4c8fd152 * optionally, make pa_threaded_mainloop_signal() wait until the main thread took over control
* more header file comments


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@831 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-06 20:58:02 +00:00
Lennart Poettering
bb6c45dee8 remove bogus check that disallowed latency interpolation and stuff for record streams
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@829 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-06 20:55:53 +00:00
Lennart Poettering
3f92e3efa9 allow signalling from event loop thread
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@828 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-06 16:38:09 +00:00
Pierre Ossman
1438bd49dc Windows doesn't have POSIX thread. ifdef out things for now.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@824 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-05-02 08:41:41 +00:00
Lennart Poettering
9e60bad5c3 add new threaded main loop implementation (with test/example)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@823 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-30 23:34:17 +00:00
Lennart Poettering
f2fbceb333 * make sure the wakeup fd is polled on wven when no other fd is registered for polling
* initialize mainloop return value to -1
* some optimizations


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@822 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-30 23:33:04 +00:00
Pierre Ossman
22c679e393 Clarify how the automatic channel map is generated.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@816 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-27 05:43:27 +00:00
Lennart Poettering
d4bad65e22 it was a bad idea to require that a channel map doesn't contain the same position twice
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@806 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-26 16:27:01 +00:00
Lennart Poettering
c478b0f118 * make a validity check of parsed channel maps before rteurning theme
* don't overwrite the return buffer unless the parsed channel map is known to be valid


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@804 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-26 16:07:05 +00:00
Lennart Poettering
292b237e35 don't allow channel positions to be specified twice in the same channelmap
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@801 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-26 15:37:13 +00:00
Lennart Poettering
195e96912f * add new function pa_channel_map_parse()
* increase PA_CHANNEL_MAP_SNPRINT_MAX
* add "top" channel positions


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@799 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-26 14:33:45 +00:00
Lennart Poettering
820c118f9c * rework reference counting in the client libraries: now refcounting goes
strictly "one-way" - the "bigger" object refcounts the "smaller" one, never the
  other way round. 

* when registering for a reply packet in pdispatch, specify a function that is
  called when the pdispatch object is destroyed but the reply hasn't yet been
  recieved.

* move prototype of pa_free_cb from stream.h to def.h 



git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@794 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-24 19:29:15 +00:00
Lennart Poettering
286310a563 small optimization
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@789 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-23 20:59:43 +00:00
Lennart Poettering
9b52ac4b47 fix sample uploading
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@788 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-23 20:59:31 +00:00
Lennart Poettering
cdba0527a8 * fix ref counting of pa_stream: strictly refcount from context to stream and never vice versa to make sure that we never loose memory
* don't hit an assert() in case of a  timeout events


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@786 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-23 20:58:08 +00:00
Lennart Poettering
193fb12228 introduce a new error PA_ERR_TOOLARGE
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@785 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-23 20:56:41 +00:00
Lennart Poettering
4e61ebb981 fix multiplication of software pa_cvolumes
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@783 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-23 19:46:16 +00:00
Pierre Ossman
5342f3aef1 Win32 needs to have the socket subsystem initialised.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@758 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-19 11:54:43 +00:00
Pierre Ossman
6ae8511a66 Having constant deferred events isn't allowed and causes problems. Use timers
instead.


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@757 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-19 11:53:24 +00:00
Lennart Poettering
746adcfed5 fix a couple of issues I found when compiling polypaudio with gcc 2.95
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@754 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-18 19:31:50 +00:00
Pierre Ossman
c3087d02ba Avoid including non-portable header sys/poll.h.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@739 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-18 13:36:30 +00:00
Lennart Poettering
40f171f5de * add pa_mainloop_wakeup() calls for deferred events
* place pa_mainloop_wakeup() calls a little bit more carfully, to minimize needless wakeups.


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@734 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-16 17:25:14 +00:00
Lennart Poettering
76296ca8ad add new API to replace the poll() function used by the main loop implementation
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@733 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-16 16:46:26 +00:00
Pierre Ossman
e8d9a5dbfb Clarify behaviour of deferred events.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@723 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-16 09:22:08 +00:00
Lennart Poettering
20f4ae65f2 more documentation updates
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@697 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-13 13:45:38 +00:00
Lennart Poettering
ceb09d8ae9 Documentation updates
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@696 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-13 00:56:10 +00:00
Lennart Poettering
7fa8323453 include local record memblockq in latency calculations
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@694 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-12 23:57:25 +00:00
Lennart Poettering
bf88854e60 * dispatch defer events in pa_mainloop_dispatch() and not already in pa_mainloop_prepare()
* fix the "timeout" parameter of pa_mainloop_prepare()
* remove pa_mainloop_deferred_pending() and update the simple API accordingly


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@690 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-12 22:45:57 +00:00
Lennart Poettering
0fa56f9b6f remove a bunch of log messages
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@688 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-12 17:26:24 +00:00
Lennart Poettering
49b3150434 * rename "latency correction" to "write index correction"
* add read index invalidation code
* rename "ipol_event" stuff to "auto_timing_update"
* remove buffer_usec field from pa_timing_info, since it can be easily calculated from write_index and read_index anyway
* add read_index_corrupt field to "pa_timing_info", similar to the already existing write_index_corrupt field
* restart automatic timing update event every time a query is issued, not just when the last event elapsed
* proper invalidation code for pa_stream_flush()
* do tarsnport/sink/source latency correction for playback time only when device is not corked


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@686 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-12 17:17:23 +00:00
Lennart Poettering
b5d177d90b proper validity checking for pa_context_is_pending()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@684 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-12 17:10:25 +00:00
Lennart Poettering
b2668ca063 return the error code and not just -1 when pa_context_is_pending() fails
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@680 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-04-10 20:43:24 +00:00