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 [email protected] https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
