Hi, On Fri, 2012-07-27 at 09:45 +0300, Tanu Kaskinen wrote: > Fully agree with this.
Great! > Is this a widely used convention in the Vala world? To me the "default" > parameters that however can't be used as real default parameters seem > strange and confusing. The programmer should read the full documentation > for the function anyway, so the benefit for these hints seem > questionable to me. That logic seems reasonable to me. Now, AFAICT this problem only affects the constructor, all the other methods only have "real" default parameters. The only solution besides simply removing these "unreal" default parameters is adding default values for the parameters in between (dir, stream_name, ss). I've attached a new version of the bindings which does precisely that. I chose PLAYBACK for the stream direction and a CD-like sample format (the only difference is that it uses native endian-ness) as I think that these should be the most common values. This effect is that you can now simply create a new connection by using "new Simple()" and immediately start playback using an int16[] array. This specific sample format should also avoid any re-sampling inside PA. What do you think? Best regards Alexander Kurtz
/*** This file is part of PulseAudio. Copyright 2012 Alexander Kurtz <[email protected]> PulseAudio is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. PulseAudio 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 Lesser General Public License along with PulseAudio; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ***/ namespace PulseAudio { [Compact] [CCode (cheader_filename="pulse/simple.h", cname="pa_simple", cprefix="pa_simple_")] class Simple { public Simple(string? server = null, string? name = null, Stream.Direction dir = Stream.Direction.PLAYBACK, string? dev = null, string stream_name = "", SampleSpec ss = SampleSpec(){ format = SampleFormat.S16NE, rate = 44100, channels = 2 }, ChannelMap? map = null, Stream.BufferAttr? attr = null, out int error = null); public int write(void* data, size_t bytes, out int error = null); public int drain(out int error = null); public int read(void* data, size_t bytes, out int error = null); public usec get_latency(out int error = null); public int flush(out int error = null); } }
libpulse
signature.asc
Description: This is a digitally signed message part
_______________________________________________ pulseaudio-discuss mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
