X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-ui-sharp%2FServiceDialog.cs;fp=avahi-ui-sharp%2FServiceDialog.cs;h=0000000000000000000000000000000000000000;hb=f1de9dcaab953757252d51b4725cbfa36daa10a5;hp=31f74799aba55f82b0fc089d765afd9463c02b6a;hpb=7a5b2f69af7d36d6cd4153142f125fa011784e03;p=catta diff --git a/avahi-ui-sharp/ServiceDialog.cs b/avahi-ui-sharp/ServiceDialog.cs deleted file mode 100644 index 31f7479..0000000 --- a/avahi-ui-sharp/ServiceDialog.cs +++ /dev/null @@ -1,238 +0,0 @@ -using System; -using System.Net; -using System.Collections; -using System.Runtime.InteropServices; -using Gtk; -using Mono.Unix; -using Mono.Unix.Native; - -namespace Avahi.UI -{ - public class ServiceDialog : Dialog - { - [DllImport ("avahi-ui")] - private static extern IntPtr aui_service_dialog_new (string title, IntPtr parent, IntPtr dummy); - - [DllImport ("avahi-ui")] - private static extern void aui_service_dialog_set_browse_service_typesv (IntPtr dialog, IntPtr[] types); - - [DllImport ("avahi-ui")] - private static extern IntPtr aui_service_dialog_get_browse_service_types (IntPtr dialog); - - [DllImport ("avahi-ui")] - private static extern IntPtr aui_service_dialog_get_domain (IntPtr dialog); - - [DllImport ("avahi-ui")] - private static extern void aui_service_dialog_set_domain (IntPtr dialog, IntPtr domain); - - [DllImport ("avahi-ui")] - private static extern IntPtr aui_service_dialog_get_service_type (IntPtr dialog); - - [DllImport ("avahi-ui")] - private static extern void aui_service_dialog_set_service_type (IntPtr dialog, IntPtr type); - - [DllImport ("avahi-ui")] - private static extern IntPtr aui_service_dialog_get_service_name (IntPtr dialog); - - [DllImport ("avahi-ui")] - private static extern void aui_service_dialog_set_service_name (IntPtr dialog, IntPtr type); - - [DllImport ("avahi-ui")] - private static extern IntPtr aui_service_dialog_get_address (IntPtr dialog); - - [DllImport ("avahi-ui")] - private static extern UInt16 aui_service_dialog_get_port (IntPtr dialog); - - [DllImport ("avahi-ui")] - private static extern IntPtr aui_service_dialog_get_host_name (IntPtr dialog); - - [DllImport ("avahi-ui")] - private static extern IntPtr aui_service_dialog_get_txt_data (IntPtr dialog); - - [DllImport ("avahi-ui")] - private static extern bool aui_service_dialog_get_resolve_service (IntPtr dialog); - - [DllImport ("avahi-ui")] - private static extern void aui_service_dialog_set_resolve_service (IntPtr dialog, bool val); - - [DllImport ("avahi-ui")] - private static extern bool aui_service_dialog_get_resolve_host_name (IntPtr dialog); - - [DllImport ("avahi-ui")] - private static extern void aui_service_dialog_set_resolve_host_name (IntPtr dialog, bool val); - - [DllImport ("avahi-ui")] - private static extern Protocol aui_service_dialog_get_address_family (IntPtr dialog); - - [DllImport ("avahi-ui")] - private static extern void aui_service_dialog_set_address_family (IntPtr dialog, Protocol proto); - - [DllImport ("avahi-common")] - private static extern IntPtr avahi_address_snprint (IntPtr buf, int size, IntPtr address); - - [DllImport ("avahi-common")] - private static extern IntPtr avahi_string_list_get_next (IntPtr list); - - [DllImport ("avahi-common")] - private static extern IntPtr avahi_string_list_get_text (IntPtr list); - - [DllImport ("avahi-common")] - private static extern int avahi_string_list_get_size (IntPtr list); - - public string[] BrowseServiceTypes { - get { - IntPtr arr = aui_service_dialog_get_browse_service_types (Raw); - - ArrayList values = new ArrayList (); - - for (int i = 0;;i++) { - IntPtr ptr = Marshal.ReadIntPtr (arr, i * Marshal.SizeOf (typeof (IntPtr))); - - if (ptr == IntPtr.Zero) - break; - - values.Add (GLib.Marshaller.Utf8PtrToString (ptr)); - } - - return (string[]) values.ToArray (typeof (string)); - } set { - IntPtr[] types; - if (value == null) { - types = new IntPtr[] { IntPtr.Zero }; - } else { - types = new IntPtr[value.Length + 1]; - - for (int i = 0; i < value.Length; i++) { - types[i] = GLib.Marshaller.StringToPtrGStrdup (value[i]); - } - - types[value.Length] = IntPtr.Zero; - } - - aui_service_dialog_set_browse_service_typesv (Raw, types); - - for (int i = 0;;i++) { - if (types[i] != IntPtr.Zero) - break; - - GLib.Marshaller.Free (types[i]); - } - } - } - - public string ServiceType { - get { - return GLib.Marshaller.Utf8PtrToString (aui_service_dialog_get_service_type (Raw)); - } set { - IntPtr type = GLib.Marshaller.StringToPtrGStrdup (value); - aui_service_dialog_set_service_type (Raw, type); - GLib.Marshaller.Free (type); - } - } - - public string ServiceName { - get { - return GLib.Marshaller.Utf8PtrToString (aui_service_dialog_get_service_name (Raw)); - } set { - IntPtr name = GLib.Marshaller.StringToPtrGStrdup (value); - aui_service_dialog_set_service_name (Raw, name); - GLib.Marshaller.Free (name); - } - } - - public IPAddress Address { - get { - return PtrToAddress (aui_service_dialog_get_address (Raw)); - } - } - - public UInt16 Port { - get { - return aui_service_dialog_get_port (Raw); - } - } - - public string HostName { - get { - return GLib.Marshaller.Utf8PtrToString (aui_service_dialog_get_host_name (Raw)); - } - } - - public string Domain { - get { - return GLib.Marshaller.Utf8PtrToString (aui_service_dialog_get_domain (Raw)); - } set { - IntPtr domain = GLib.Marshaller.StringToPtrGStrdup (value); - aui_service_dialog_set_domain (Raw, domain); - GLib.Marshaller.Free (domain); - } - } - - public byte[][] TxtData { - get { - ArrayList txtlist = new ArrayList (); - IntPtr txt = aui_service_dialog_get_txt_data (Raw); - - for (IntPtr l = txt; l != IntPtr.Zero; l = avahi_string_list_get_next (l)) { - IntPtr buf = avahi_string_list_get_text (l); - int len = avahi_string_list_get_size (l); - - byte[] txtbuf = new byte[len]; - Marshal.Copy (buf, txtbuf, 0, len); - txtlist.Add (txtbuf); - } - - return (byte[][]) txtlist.ToArray (typeof (byte[])); - } - } - - public bool ResolveServiceEnabled { - get { - return aui_service_dialog_get_resolve_service (Raw); - } set { - aui_service_dialog_set_resolve_service (Raw, value); - } - } - - public bool ResolveHostNameEnabled { - get { - return aui_service_dialog_get_resolve_host_name (Raw); - } set { - aui_service_dialog_set_resolve_host_name (Raw, value); - } - } - - public Protocol AddressFamily { - get { - return aui_service_dialog_get_address_family (Raw); - } set { - aui_service_dialog_set_address_family (Raw, value); - } - } - - public ServiceDialog (string title, Window parent, params object[] buttonData) - { - Raw = aui_service_dialog_new (title, parent == null ? IntPtr.Zero : parent.Handle, - IntPtr.Zero); - - for (int i = 0; i < buttonData.Length - 1; i += 2) { - AddButton ((string) buttonData[i], (int) buttonData[i + 1]); - } - } - - private static IPAddress PtrToAddress (IntPtr ptr) - { - IPAddress address = null; - - if (ptr != IntPtr.Zero) { - IntPtr buf = Stdlib.malloc (256); - IntPtr addrPtr = avahi_address_snprint (buf, 256, ptr); - address = IPAddress.Parse (GLib.Marshaller.Utf8PtrToString (addrPtr)); - - Stdlib.free (addrPtr); - } - - return address; - } - } -}