Hi, I think I got it: With the attached patch I am successfully able to use channel maps in vala in my program. Here are the details:
1. Remove the "has_destroy_function=false" attribute. It was only necessary because of a bug in vala which is fixed in 0.12. [1] 2. Add sizes to all fixed-size arrays to make vala recognize them as such. Using symbolic constants for this is not yet supported. [2] 3. CardInfo struct: Move the brackets in the list of available profiles to the type to make it clear that this is a dynamically-sized array. [3] Please merge this into master if you have no objections. Best regards Alexander Kurtz [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=622773 [2] https://bugzilla.gnome.org/show_bug.cgi?id=647788 [3] http://0pointer.de/lennart/projects/pulseaudio/doxygen/structpa__card__info.html
diff -Naur a/libpulse.vapi b/libpulse.vapi --- a/libpulse.vapi 2011-04-05 12:24:12.000000000 +0200 +++ b/libpulse.vapi 2011-04-14 20:31:28.876372889 +0200 @@ -243,7 +243,8 @@ [CCode (cname="pa_cvolume")] public struct CVolume { public uint8 channels; - public Volume values[]; + // TODO: Replace array length with CHANNELS_MAX once vala's bug #647788 is fixed + public Volume values[32]; [CCode (cname="PA_SW_CVOLUME_SNPRINT_DB_MAX")] public static const size_t SW_SNPRINT_DB_MAX; @@ -373,10 +374,11 @@ public unowned CVolume? dec(Volume minus = 1); } - [CCode (cname="pa_channel_map",has_destroy_function=false)] + [CCode (cname="pa_channel_map")] public struct ChannelMap { public uint8 channels; - public ChannelPosition map[]; + // TODO: Replace array length with CHANNELS_MAX once vala's bug #647788 is fixed + public ChannelPosition map[32]; [CCode (cname="PA_CHANNEL_MAP_SNPRINT_MAX")] public static const size_t SNPRINT_MAX; @@ -1350,7 +1352,7 @@ public uint32 owner_module; public string driver; public uint32 n_profiles; - public CardProfileInfo profiles[]; + public CardProfileInfo[] profiles; public CardProfileInfo *active_profile; public Proplist proplist; }
signature.asc
Description: This is a digitally signed message part
_______________________________________________ pulseaudio-discuss mailing list pulseaudio-discuss@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss