+ " <interface name=\"" INTERFACE_CORE "\">\n"
+ " <method name=\"GetCardByName\">\n"
+ " <arg name=\"Name\" type=\"s\" direction=\"in\"/>\n"
+ " <arg name=\"Card\" type=\"o\" direction=\"out\"/>\n"
+ " </method>\n"
+ " <method name=\"GetSinkByName\">\n"
+ " <arg name=\"Name\" type=\"s\" direction=\"in\"/>\n"
+ " <arg name=\"Sink\" type=\"o\" direction=\"out\"/>\n"
+ " </method>\n"
+ " <method name=\"GetSourceByName\">\n"
+ " <arg name=\"Name\" type=\"s\" direction=\"in\"/>\n"
+ " <arg name=\"Source\" type=\"o\" direction=\"out\"/>\n"
+ " </method>\n"
+ " <method name=\"GetSampleByName\">\n"
+ " <arg name=\"Name\" type=\"s\" direction=\"in\"/>\n"
+ " <arg name=\"Sample\" type=\"o\" direction=\"out\"/>\n"
+ " </method>\n"
+ " <method name=\"UploadSample\">\n"
+ " <arg name=\"Name\" type=\"s\" direction=\"in\"/>\n"
+ " <arg name=\"SampleFormat\" type=\"y\" direction=\"in\"/>\n"
+ " <arg name=\"SampleRate\" type=\"u\" direction=\"in\"/>\n"
+ " <arg name=\"Channels\" type=\"ay\" direction=\"in\"/>\n"
+ " <arg name=\"DefaultVolume\" type=\"au\" direction=\"in\"/>\n"
+ " <arg name=\"Proplist\" type=\"a{say}\" direction=\"in\"/>\n"
+ " <arg name=\"Data\" type=\"ay\" direction=\"in\"/>\n"
+ " <arg name=\"Sample\" type=\"o\" direction=\"out\"/>\n"
+ " </method>\n"
+ " <method name=\"LoadSampleFromFile\">\n"
+ " <arg name=\"Name\" type=\"s\" direction=\"in\"/>\n"
+ " <arg name=\"Filepath\" type=\"s\" direction=\"in\"/>\n"
+ " <arg name=\"Sample\" type=\"o\" direction=\"out\"/>\n"
+ " </method>\n"
+ " <method name=\"AddLazySample\">\n"
+ " <arg name=\"Name\" type=\"s\" direction=\"in\"/>\n"
+ " <arg name=\"Filepath\" type=\"s\" direction=\"in\"/>\n"
+ " <arg name=\"Sample\" type=\"o\" direction=\"out\"/>\n"
+ " </method>\n"
+ " <method name=\"AddLazySamplesFromDirectory\">\n"
+ " <arg name=\"Dirpath\" type=\"s\" direction=\"in\"/>\n"
+ " </method>\n"
+ " <method name=\"LoadModule\">\n"
+ " <arg name=\"Name\" type=\"s\" direction=\"in\"/>\n"
+ " <arg name=\"Arguments\" type=\"a{ss}\" direction=\"in\"/>\n"
+ " <arg name=\"Module\" type=\"o\" direction=\"out\"/>\n"
+ " </method>\n"
+ " <method name=\"Exit\"/>\n"
+ " <signal name=\"NewCard\">\n"
+ " <arg name=\"Card\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"CardRemoved\">\n"
+ " <arg name=\"Card\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"NewSink\">\n"
+ " <arg name=\"Sink\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"SinkRemoved\">\n"
+ " <arg name=\"Sink\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"FallbackSinkUpdated\">\n"
+ " <arg name=\"Sink\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"NewSource\">\n"
+ " <arg name=\"Source\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"SourceRemoved\">\n"
+ " <arg name=\"Source\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"FallbackSourceUpdated\">\n"
+ " <arg name=\"Source\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"NewPlaybackStream\">\n"
+ " <arg name=\"PlaybackStream\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"PlaybackStreamRemoved\">\n"
+ " <arg name=\"PlaybackStream\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"NewRecordStream\">\n"
+ " <arg name=\"RecordStream\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"RecordStreamRemoved\">\n"
+ " <arg name=\"RecordStream\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"NewSample\">\n"
+ " <arg name=\"Sample\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"SampleRemoved\">\n"
+ " <arg name=\"Sample\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"NewModule\">\n"
+ " <arg name=\"Module\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"ModuleRemoved\">\n"
+ " <arg name=\"Module\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"NewClient\">\n"
+ " <arg name=\"Client\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <signal name=\"ClientRemoved\">\n"
+ " <arg name=\"Client\" type=\"o\"/>\n"
+ " </signal>\n"
+ " <property name=\"InterfaceRevision\" type=\"u\" access=\"read\"/>\n"
+ " <property name=\"Name\" type=\"s\" access=\"read\"/>\n"
+ " <property name=\"Version\" type=\"s\" access=\"read\"/>\n"
+ " <property name=\"Username\" type=\"s\" access=\"read\"/>\n"
+ " <property name=\"Hostname\" type=\"s\" access=\"read\"/>\n"
+ " <property name=\"DefaultChannels\" type=\"ay\" access=\"readwrite\"/>\n"
+ " <property name=\"DefaultSampleFormat\" type=\"y\" access=\"readwrite\"/>\n"
+ " <property name=\"DefaultSampleRate\" type=\"u\" access=\"readwrite\"/>\n"
+ " <property name=\"Sinks\" type=\"ao\" access=\"read\"/>\n"
+ " <property name=\"FallbackSink\" type=\"s\" access=\"readwrite\"/>\n"
+ " <property name=\"Sources\" type=\"ao\" access=\"read\"/>\n"
+ " <property name=\"FallbackSource\" type=\"o\" access=\"readwrite\"/>\n"
+ " <property name=\"PlaybackStreams\" type=\"ao\" access=\"read\"/>\n"
+ " <property name=\"RecordStreams\" type=\"ao\" access=\"read\"/>\n"
+ " <property name=\"Samples\" type=\"ao\" access=\"read\"/>\n"
+ " <property name=\"Modules\" type=\"ao\" access=\"read\"/>\n"
+ " <property name=\"Clients\" type=\"ao\" access=\"read\"/>\n"
+ " <property name=\"Extensions\" type=\"as\" access=\"read\"/>\n"
+ " </interface>\n";
+
+/* If you need to modify this list, note that handle_get_all() uses hard-coded
+ * indexes to point to these strings, so make sure the indexes don't go wrong
+ * there. */
+static const char *properties[] = {
+ "InterfaceRevision",
+ "Name",
+ "Version",
+ "Username",
+ "Hostname",
+ "DefaultChannels",
+ "DefaultSampleFormat",
+ "DefaultSampleRate",
+ "Sinks",
+ "FallbackSink",
+ "Sources",
+ "FallbackSource",
+ "PlaybackStreams",
+ "RecordStreams",
+ "Samples",
+ "Modules",
+ "Clients",
+ "Extensions",
+ NULL
+};