2007-08-01  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_get_device):
	* libgupnp/gupnp-device.c: (gupnp_device_get_device):

	Allow embedded devices to have their own UDNs.

2007-07-27  Priit Laes  <plaes@plaes.org>

	* libgupnp/gupnp-service-proxy.c: 
	(gupnp_service_proxy_begin_action_valist):
	
	Use G_VA_COPY to get things build on some weird architectures.

2007-07-26  Jorn Baayen  <jorn@openedhand.com>

	* configure.ac:

	Bump version number to 0.2.

2007-07-26  Zeeshan Ali  <zeenix@gstreamer.net>

	* libgupnp/gupnp-service.c: (new_action_response_node):

	A small fix to the last change from jorn to fix the build.

2007-07-26  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-control-point.c: (process_service_list),
	(process_device_list), (gupnp_control_point_resource_unavailable):
	* libgupnp/gupnp-device-info.c: (gupnp_device_info_set_property),
	(gupnp_device_info_get_property), (gupnp_device_info_finalize),
	(gupnp_device_info_class_init), (gupnp_device_info_get_url_base),
	(gupnp_device_info_get_udn), (gupnp_device_info_get_device_type),
	(gupnp_device_info_get_friendly_name),
	(gupnp_device_info_get_manufacturer),
	(gupnp_device_info_get_manufacturer_url),
	(gupnp_device_info_get_model_description),
	(gupnp_device_info_get_model_name),
	(gupnp_device_info_get_model_number),
	(gupnp_device_info_get_model_url),
	(gupnp_device_info_get_serial_number):
	* libgupnp/gupnp-device-info.h:
	* libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_get_service):
	* libgupnp/gupnp-service-info.c: (gupnp_service_info_set_property),
	(gupnp_service_info_get_property), (gupnp_service_info_dispose),
	(gupnp_service_info_finalize), (gupnp_service_info_class_init),
	(gupnp_service_info_get_url_base), (gupnp_service_info_get_udn),
	(gupnp_service_info_get_service_type), (gupnp_service_info_get_id),
	(gupnp_service_info_get_scpd_url),
	(gupnp_service_info_get_control_url):
	* libgupnp/gupnp-service-info.h:
	* libgupnp/gupnp-service-proxy-private.h:
	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_begin_action_valist),
	(gupnp_service_proxy_get_subscribed), (_gupnp_service_proxy_new):
	* libgupnp/gupnp-service.c: (new_action_response_node):
	* tests/test-browsing.c: (device_proxy_available_cb):
	* tests/test-introspection.c: (service_proxy_unavailable_cb):

	Handle the case where no serviceType (or deviceType) is specified
	in the description document:
	- ControlPoint saves the discovered types into the proxies, so that
	  unavailability can be detected even if the description document
	  is bogus.
	- Service and ServiceProxy warn if serviceType is not specified.

	This has the side effect that the return value of
	_get_{device,service}_type() now returns a const.

	Also added additional checks.

2007-07-26  Zeeshan Ali  <zeenix@gstreamer.net>

	* libgupnp/gupnp-device-info.c:
	* libgupnp/gupnp-device-info.h:
	* libgupnp/gupnp-device-proxy-private.h:
	* libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_get_device),
	(gupnp_device_proxy_get_service), (_gupnp_device_proxy_new):
	* libgupnp/gupnp-device.c: (gupnp_device_get_device),
	(gupnp_device_get_service), (_gupnp_device_new):
	* libgupnp/gupnp-service-info.c:
	* libgupnp/gupnp-service-info.h:
	* libgupnp/gupnp-service-private.h:
	* libgupnp/gupnp-service-proxy-private.h:
	* libgupnp/gupnp-service-proxy.c: (_gupnp_service_proxy_new):
	* libgupnp/gupnp-service.c: (_gupnp_service_new):

	Make it clear to the user that return value of
	gupnp_{device,service}_info_get_url_base() must not be freed o
	modified.

2007-07-26  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.h:
	* libgupnp/gupnp-service.h:

	Cosmetic changes.

2007-07-26  Jorn Baayen  <jorn@openedhand.com>

	* doc/gupnp-sections.txt:
	* libgupnp/gupnp-service-info.h:
	* libgupnp/gupnp-service-proxy.h:

	Document callback prototypes.

	* libgupnp/gupnp-service-info.c: (got_scpd_url),
	(gupnp_service_info_get_introspection_async):
	* tests/test-introspection.c: (print_state_variables):

	Switch the order of the 'error' and 'user-data' arguments in the
	async introspection retrieval callback, so that 'user-data' is now
	last for consistency.

2007-07-26  Jorn Baayen  <jorn@openedhand.com>

	* gupnp-1.0.pc.in:

	List all dependencies.

2007-07-26  Zeeshan Ali  <zeenix@gstreamer.net>

	* libgupnp/gupnp-service-introspection.c:
	(gupnp_service_action_arg_info_free),
	(gupnp_service_action_info_free),
	(gupnp_service_introspection_finalize), (get_actions),
	(get_state_variables), (construct_introspection_info),
	(collect_action_names), (collect_variable_names),
	(gupnp_service_introspection_new),
	(gupnp_service_introspection_list_action_names),
	(gupnp_service_introspection_list_actions),
	(gupnp_service_introspection_list_state_variables),
	(gupnp_service_introspection_list_state_variable_names):

	Get rid of the hashtables since the function that needed them have
	been removed.

2007-07-25  Zeeshan Ali  <zeenix@gstreamer.net>

	* libgupnp/gupnp-service-introspection.h:

	Fix struct docs for gtk-doc.

2007-07-25  Zeeshan Ali  <zeenix@gstreamer.net>

	* libgupnp/gupnp-service-introspection.c:
	* libgupnp/gupnp-service-introspection.h:

	Add docs for structs and only mention once the extremely dependency on
	the availability of SCPD. :)

2007-07-25  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-introspection.c:

	Added a comment warning people against using introspection in
	regular apps.

2007-07-25  Jorn Baayen  <jorn@openedhand.com>

	A doc/gupnp-sections.txt:
	* libgupnp/gupnp-error.c:
	* libgupnp/gupnp-service-introspection.h:
	* libgupnp/gupnp-service.h:
	* libgupnp/gupnp-types.c:

	Doc polish.

2007-07-25  Zeeshan Ali  <zeenix@gstreamer.net>

	* libgupnp/gupnp-service-introspection.c:
	* libgupnp/gupnp-service-introspection.h:

	Remove unneeded functions.

2007-07-25  Jorn Baayen  <jorn@openedhand.com>

	* README:
	
	Added text from website.

2007-07-25  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-device.c: (gupnp_device_get_device),
	(gupnp_device_get_service), (gupnp_device_get_property),
	(gupnp_device_dispose), (gupnp_device_init),
	(gupnp_device_class_init), (_gupnp_device_find_element_for_udn):
	* libgupnp/gupnp-root-device.c: (gupnp_root_device_new):
	* libgupnp/gupnp-service-private.h:
	* libgupnp/gupnp-service.c: (gupnp_service_action_return_error),
	(gupnp_service_constructor), (gupnp_service_set_property),
	(gupnp_service_get_property), (gupnp_service_dispose),
	(gupnp_service_finalize), (gupnp_service_class_init),
	(notify_got_response), (notify_subscriber), (create_property_set),
	(flush_notifications), (gupnp_service_notify_value),
	(gupnp_service_freeze_notify), (gupnp_service_thaw_notify),
	(_gupnp_service_new):

	Devices and Services reference their RootDevice.
	On RootDevice unavailability Service purges its subscriptions.

	* tests/test-server.c: (main):

	Unref content_dir.

2007-07-25  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-control-point.c: (gupnp_control_point_dispose):
	* libgupnp/gupnp-service-proxy-private.h:
	* libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_dispose),
	(subscribe_got_response), (gupnp_service_proxy_set_subscribed):

	Unsubscribe proxies automatically only at control point dispose.

2007-07-25  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-control-point.c: (load_description),
	(gupnp_control_point_resource_unavailable):

	Destroy proxy before destroying the associated xmlDoc.

	* libgupnp/gupnp-error.h:
	* libgupnp/gupnp-service-info.c:
	(gupnp_service_info_get_introspection),
	(gupnp_service_info_get_introspection_async):
	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_begin_action_valist), (subscription_expire),
	(subscribe), (unsubscribe):
	* libgupnp/gupnp-service.c: (notify_subscriber):

	Better invalid URL error handling.

	* tests/Makefile.am:
	R tests/test-client.c:
	A tests/test-browsing.c: (device_proxy_unavailable_cb):
	A tests/test-proxy.c:

	Split out test-client into test-browsing and test-proxy better
	illustrating how to use the API.

2007-07-25  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service.c: (gupnp_service_init),
	(gupnp_service_finalize), (notify_got_response):

	Create & destroy notify queue.

	* libgupnp/gupnp-service.h:

	Added 'const' to constant signal arguments.

	* tests/test-client.c: (device_proxy_unavailable_cb),
	(service_proxy_available_cb):

	Connect to 'subscription-lost' signal.

	* tests/test-server.c: (browse_cb), (query_cb), (main):

	Connect to 'notify-failed' signal.
	Print action locales.
	Test gupnp_service_notify().

2007-07-25  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c: (subscribe_got_response):

	Remove server handler on all subscription errors.

2007-07-25  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-marshal.list:
	* libgupnp/gupnp-service.c: (gupnp_service_class_init):

	Don't box the to-be-filled GValue.

	* tests/test-client.c: (notify_cb), (service_proxy_available_cb):
	* tests/test-server.c: (browse_cb), (main):

	Test event notification.

2007-07-25  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c: (server_handler):

	Remove debug spew.

2007-07-25  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-introspection.c:
	* libgupnp/gupnp-types.c:

	Doc polish.

2007-07-24  Zeeshan Ali  <zeenix@gstreamer.net>

	* libgupnp/gupnp-service-introspection.c:
	(gupnp_service_state_variable_info_free),
	(gupnp_service_action_info_free),
	(gupnp_service_introspection_finalize), (set_string_value_limits),
	(get_action_arguments), (action_argument_list_free), (get_actions),
	(collect_hash_keys), (collect_action_arguments), (collect_actions),
	(collect_state_variables):
	* libgupnp/gupnp-service-introspection.h:
	* libgupnp/gupnp-service.c: (gupnp_service_constructor):
	* tests/test-introspection.c: (print_action_arguments),
	(print_actions), (print_state_variables):

	Use GList instead of GSList for compatibility with the rest of the
	library.

2007-07-24  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c: (server_handler):

	Don't allow g_main_context_iteration() to block.

2007-07-24  Jorn Baayen  <jorn@openedhand.com>

	* configure.ac:

	Depend on gssdp 0.3.

	* libgupnp/gupnp-control-point.c:
	(gupnp_control_point_resource_unavailable):

	Don't depend on deleted list items in loop.

2007-07-24  Jorn Baayen  <jorn@openedhand.com>

	* NEWS:

	Added news items for 0.2.

2007-07-23  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-control-point.c: (load_description):
	* libgupnp/gupnp-service-info.c:
	(gupnp_service_info_get_introspection),
	(gupnp_service_info_get_introspection_async):
	* libgupnp/gupnp-service-proxy.c: (subscription_expire),
	(subscribe), (unsubscribe):
	* libgupnp/gupnp-service.c: (notify_subscriber):

	Warn on invalid URL (don't crash!).

2007-07-23  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-marshal.list:
	* libgupnp/gupnp-service-proxy.c: (server_handler),
	(subscription_expire), (subscribe_got_response), (subscribe):
	* libgupnp/gupnp-service.c: (parse_timeout), (subscribe),
	(subscription_server_handler), (gupnp_service_constructor),
	(gupnp_service_finalize), (gupnp_service_class_init),
	(gupnp_service_notify), (gupnp_service_notify_valist),
	(notify_got_response), (notify_subscriber), (create_property_set),
	(flush_notifications), (gupnp_service_notify_value):
	* libgupnp/gupnp-service.h:

	Handle multiple callbacks URLs.
	Send initial event message.

2007-07-23  Zeeshan Ali  <zeenix@gstreamer.net>

	* libgupnp/gupnp-service-introspection.c:
	(construct_introspection_info), (collect_hash_keys),
	(gupnp_service_introspection_list_action_names),
	(gupnp_service_introspection_list_state_variable_names):
	* libgupnp/gupnp-service-introspection.h:

	- Add _list_state_variable_names() method.
	- a minor optimization.

	* tests/test-introspection.c: (service_proxy_available_cb):

	centralize the error handling.

2007-07-23  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-info.c:
	(gupnp_service_info_get_introspection), (got_scpd_url):
	* libgupnp/gupnp-service-introspection.c:
	(gupnp_service_introspection_set_property),
	(gupnp_service_introspection_finalize):

	Don't keep xmlDoc around longer than necessary.

2007-07-23  Zeeshan Ali  <zeenix@gstreamer.net>
            Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-error.c:
	* libgupnp/gupnp-error-private.h:
	* libgupnp/gupnp-service-proxy.c:

	Add & use server error utility functions.

	* libgupnp/gupnp-service-info.c:
	(gupnp_service_info_get_introspection), (scpd_loaded),
	(got_scpd_url), (gupnp_service_info_get_introspection_async):
	* libgupnp/gupnp-service-info.h:

	Report non-programmer errors using GError.

	* libgupnp/gupnp-service-introspection.c:
	(gupnp_service_introspection_set_property),
	(construct_introspection_info), (gupnp_service_introspection_new),
	(gupnp_service_introspection_get_state_variable):

	Fix some typos and conditions.

	* tests/test-introspection.c: (got_introspection),
	(service_proxy_available_cb):

	Update the test app to use the new GError-using API.

2007-07-11  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-error.h:
	* libgupnp/gupnp-service-proxy.c: (set_error_literal),
	(gupnp_service_proxy_end_action_valist):

	Propagate UPnPError codes.

2007-07-11  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_begin_action_valist):

	Set error if no controlURL is defined.

2007-07-08  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-control-point.c: (got_description_url),
	(load_description):

	Fix description doc refcounting bugs.

2007-07-08  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-control-point.c: (description_loaded):
	* libgupnp/gupnp-device-info.c: (gupnp_device_info_set_property):
	* libgupnp/gupnp-service-info.c: (gupnp_service_info_set_property):

	Each info object stores its own copy of the URLBase SoupUri.

2007-07-08  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-control-point.c: (process_service_list),
	(process_device_list), (load_description),
	(gupnp_control_point_resource_unavailable):
	* libgupnp/gupnp-service-proxy-private.h:

	Correct constructor argument order.
	Plug leak.
	Update ref count on cached description doc correctly.

2007-07-08  Zeeshan Ali  <zeenix@gstreamer.net>
	    Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-info.c: (get_scpd_url_data_free),
	(gupnp_service_info_class_init),
	(gupnp_service_info_get_introspection), (scpd_ready),
	(got_scpd_url), (gupnp_service_info_get_introspection_async):
	* libgupnp/gupnp-service-info.h:

	Use a callback instead of a signal.

	* tests/test-introspection.c: (interrupt_signal_handler),
	(got_introspection), (service_proxy_available_cb), (main):

	- Use the new callback API.
	- Terminate cleanly on SIGTERM.

	* tests/test-client.c: (interrupt_signal_handler), (main):
	* tests/test-server.c: (interrupt_signal_handler), (main):

	Terminate cleanly on SIGTERM.

2007-07-07  Jorn Baayen  <jorn@openedhand.com>

	* doc/gupnp-docs.sgml:
	* libgupnp/gupnp-types.h:

	Include gupnp-types in doc TOC.

2007-07-07  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-control-point.c: (gupnp_control_point_dispose):
	* libgupnp/gupnp-service-info.c: (gupnp_service_info_dispose):
	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_cancel_action):

	Set message status to SOUP_STATUS_CANCELLED before cancelling.

	* libgupnp/gupnp-service-proxy.c:

	Elaborate begin_action() comments.

2007-07-07  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/Makefile.am:
	* libgupnp/gupnp-service-introspection.c:
	* libgupnp/gupnp-types-private.h:
	* libgupnp/gupnp-types.c: (gupnp_type_to_string):
	* libgupnp/gupnp-types.h:

	Make private gupnp_data_type_to_gtype().
	Add gupnp_value_get_string() macro.

	* libgupnp/xml-util.c: (xml_util_node_get_content_value):

	Smarter value transformation like in ServiceProxy.

2007-07-07  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-control-point.c:
	(gupnp_control_point_resource_unavailable):

	Handle resource-unavailable in the same way.

2007-07-07  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-control-point.c: (gupnp_control_point_finalize),
	(process_service_list), (process_device_list),
	(description_loaded), (got_description_url):
	* libgupnp/gupnp-device-proxy-private.h:
	* libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_get_device),
	(gupnp_device_proxy_get_service):
	* libgupnp/gupnp-device.c: (gupnp_device_get_device),
	(gupnp_device_get_service), (_gupnp_device_find_element_for_udn):
	* libgupnp/gupnp-service-private.h:
	* libgupnp/gupnp-service-proxy-private.h:
	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_get_subscribed):
	* libgupnp/gupnp-service.c: (gupnp_service_thaw_notify):

	Create proxies for all, not just one, matching devices and services.

2007-07-07  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-info.c: (gupnp_service_info_get_property),
	(gupnp_service_info_dispose):

	Rearrange some code.

2007-07-07  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/Makefile.am:
	* libgupnp/gupnp-service-info.c:
	* libgupnp/gupnp-service-introspection-private.h:
	* libgupnp/gupnp-service-introspection.c:
	* libgupnp/gupnp-service-introspection.h:
	* libgupnp/gupnp.h:

	Make introspection constructor private.

2007-07-07  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c:
	* libgupnp/gupnp-types.c:

	Handle conversion of strings to GUPnP string-based types.

2007-07-06  Zeeshan Ali  <zeenix@gstreamer.net>
            Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/Makefile.am:
	* libgupnp/gupnp-types.h:
	* libgupnp/gupnp-types.c: (gupnp_type_to_string),
	(gupnp_bin_base64_get_type), (gupnp_bin_hex_get_type),
	(gupnp_date_get_type), (gupnp_date_time_get_type),
	(gupnp_date_time_tz_get_type), (gupnp_time_get_type),
	(gupnp_time_tz_get_type), (gupnp_uri_get_type),
	(gupnp_uuid_get_type), (gupnp_data_type_to_gtype):

	Introduce new types for some UPnP data types that do not have a direct
	equivalent in glib.

	* libgupnp/xml-util.c: (xml_util_get_attribute_contents):
	* libgupnp/xml-util.h:

	Add helper function for getting the contents of an attribute.

	* libgupnp/gupnp-service-introspection.c:
	(gupnp_service_state_variable_info_free),
	(gupnp_service_introspection_set_property),
	(gupnp_service_introspection_finalize),
	(gupnp_service_introspection_class_init), (set_variable_type),
	(get_state_variable), (get_action_argument),
	(contstruct_introspection_info), (gupnp_service_introspection_new):
	* libgupnp/gupnp-service-introspection.h:

	- Use the new GUPnP types instead of string type for some UPnP types.
	- Take a pointer to SCPD xml instead of it's url in the constructor and
	  leave the download of the document to the caller.
	- Expect documents to specify 'sendEvents' as an attribute of the
	  state variable node.

	* libgupnp/gupnp-service-info.c: (gupnp_service_info_init),
	(get_scpd_url_data_free), (gupnp_service_info_dispose),
	(gupnp_service_info_class_init), (get_scpd),
	(gupnp_service_info_get_introspection), (scpd_ready),
	(got_scpd_url), (gupnp_service_info_get_introspection_async):
	* libgupnp/gupnp-service-info.h:

	- Handle the SCPD GET for and provide introspection's constructor a
	  pointer to the xml document rather than the SCPD URL.
	- Provide an asynchronous way of geting the introspection object.

	* tests/test-introspection.c: (print_state_variables),
	(got_introspection), (service_proxy_available_cb), (main):
	
	Provide a way to specify that the introspection object be
	created/requested asynchronously through a command-line argument.

2007-07-04  Zeeshan Ali  <zeenix@gstreamer.net>

	* libgupnp/gupnp-service-introspection.c:
	(gupnp_service_state_variable_info_free),
	(gupnp_service_action_info_free),
	(gupnp_service_introspection_finalize), (set_variable_limits),
	(set_variable_type), (get_action_argument),
	(gupnp_service_action_arg_info_free), (collect_action_names),
	(collect_action_arguments), (collect_actions),
	(collect_state_variables),
	(gupnp_service_introspection_list_action_names),
	(gupnp_service_introspection_list_action_arguments),
	(gupnp_service_introspection_list_actions),
	(gupnp_service_introspection_list_state_variables),
	(gupnp_service_introspection_get_state_variable):
	* libgupnp/gupnp-service-introspection.h:
	* tests/test-introspection.c: (print_action_arguments),
	(print_actions), (print_state_variables):

	- Return local copies of data to avoid malloc()s and free()s.
	- Cache the returned GSLists to avoid allocating the list each time.
	- return a 'const' from each function and update doc comments to
	  make it very clear to the user that the return data can't be
	  modified or freed.
	- Rename 'gtype' field to 'type' for consistancy.
	- Introduce an enum type for the direction of the action argument
	  and use that instead of a string.
	- Add a function for getting state variable information by name.

2007-07-01  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c:

	Remove unused includes.

2007-07-01  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-device-info.c:
	(gupnp_device_info_list_device_types),
	(gupnp_device_info_list_service_types):

	Use xml_util_get_child_element_content_glib().

2007-07-01  Jorn Baayen  <jorn@openedhand.com>

	* doc/gupnp-docs.sgml:
	* libgupnp/gupnp-control-point.c:
	* libgupnp/gupnp-device-info.c: (gupnp_device_info_class_init):
	* libgupnp/gupnp-device-proxy.c:
	* libgupnp/gupnp-device.c:
	* libgupnp/gupnp-service-info.c: (gupnp_service_info_class_init):
	* libgupnp/gupnp-service-introspection.c:
	* libgupnp/gupnp-service-proxy.c:
	* libgupnp/gupnp-service.c:

	Documentation updates.

2007-07-01  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-introspection.c:
	(gupnp_service_introspection_finalize),
	(contstruct_introspection_info):

	Added small optimization + missing NULL checks.

2007-07-01  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-device-info.c:
	* libgupnp/gupnp-device-proxy.c:
	(_gupnp_device_proxy_new_from_doc):
	* libgupnp/gupnp-root-device.c: (gupnp_root_device_constructor):
	* libgupnp/gupnp-service-info.c: (gupnp_service_info_finalize),
	(gupnp_service_info_get_udn):
	* libgupnp/gupnp-service-introspection.c: (set_variable_type),
	(get_state_variable), (get_action_argument), (get_actions),
	(get_state_variables):
	* libgupnp/gupnp-service-proxy.c:
	(_gupnp_service_proxy_new_from_doc):
	* libgupnp/xml-util.c: (xml_util_get_element):
	* libgupnp/xml-util.h:

	Add more shared XML helpers.

2007-07-01  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-device-info.c: (get_property),
	(gupnp_device_info_get_friendly_name),
	(gupnp_device_info_get_manufacturer),
	(gupnp_device_info_get_model_name),
	(gupnp_device_info_get_model_number):

	Use get_url_property() for all URL properties.

2007-07-01  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service.c: (gupnp_service_class_init):

	Use G_TYPE_VALUE for "value" argument on "query-variable" signal.

2007-07-01  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-device-info.c: (gupnp_device_info_set_property),
	(gupnp_device_info_get_property), (gupnp_device_info_finalize),
	(gupnp_device_info_class_init), (icon_parse):
	* libgupnp/gupnp-device-info.h:
	* libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_get_device),
	(gupnp_device_proxy_get_service),
	(_gupnp_device_proxy_new_from_doc),
	(_gupnp_device_proxy_new_from_element):
	* libgupnp/gupnp-device.c: (gupnp_device_get_device),
	(gupnp_device_get_service), (_gupnp_device_new_from_element):
	* libgupnp/gupnp-service-info.c: (gupnp_service_info_set_property),
	(gupnp_service_info_get_property), (gupnp_service_info_finalize),
	(gupnp_service_info_class_init), (get_url_property):
	* libgupnp/gupnp-service-info.h:
	* libgupnp/gupnp-service-private.h:
	* libgupnp/gupnp-service-proxy-private.h:
	* libgupnp/gupnp-service-proxy.c:
	(_gupnp_service_proxy_new_from_doc),
	(_gupnp_service_proxy_new_from_element):
	* libgupnp/gupnp-service.c: (_gupnp_service_new_from_element):

	Store URL base as SoupUri, and use description file location
	as URL base if no base is specified explicitly.

	* libgupnp/gupnp-root-device.c: (gupnp_root_device_finalize),
	(gupnp_root_device_set_property), (gupnp_root_device_get_property),
	(gupnp_root_device_constructor):
	* libgupnp/gupnp-root-device.h:

	Remove API for setting URL base as the explicit specification of
	a URL base is discouraged.

	Don't autohost description file.

	* tests/test-server.c: (main):
	
	Updated for changed API.

2007-06-30  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_begin_action):

	Use M-POST when POST fails.

2007-06-30  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-error.h:
	* libgupnp/gupnp-service.c: (gupnp_service_action_return_error):

	Fill in description automatically for known error codes.

	* libgupnp/gupnp-service-proxy.c: (convert_error_code):

	Handle unknown error codes.

2007-06-30  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-error.c:
	* libgupnp/gupnp-error.h:
	* libgupnp/gupnp-service-proxy.c: (set_error_literal),
	(convert_error_code), (gupnp_service_proxy_end_action_valist),
	(subscription_expire), (subscribe_got_response):
	* libgupnp/gupnp-service.c: (notify_got_response):

	More detailed erroring.

2007-06-30  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-error.h:
	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_begin_action_valist), (set_error_literal),
	(gupnp_service_proxy_end_action_valist), (subscribe_got_response):
	* libgupnp/gupnp-service.c: (notify_got_response):

	Don't report GValue errors through GError, and define error codes.

2007-06-30  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_end_action),
	(gupnp_service_proxy_end_action_valist):

	Added set_error_literal() helper function.

2007-06-30  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_end_action_valist):

	Handle SOAP Faults.

	* libgupnp/gupnp-service.c: (gupnp_service_action_set_value),
	(gupnp_service_action_return_error):

	Return SOAP Fault in correct format.

	* tests/test-client.c: (service_proxy_available_cb):

	Return on error.

2007-06-30  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c: (subscribe_got_response):

	Remove obsolete comment and correct warning message.

	* libgupnp/gupnp-service.c: (subscription_response),
	(subscription_timeout), (parse_timeout), (subscribe),
	(resubscribe):

	Return correct timeout to subscriber.

2007-06-30  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-control-point.c:
	(gupnp_control_point_resource_unavailable):

	Remove unavailable device from correct list!

2007-06-29  Jorn Baayen  <jorn@openedhand.com>

	* AUTHORS: Added Zeeshan.

2007-06-29  Zeeshan Ali  <zeenix@gstreamer.net>

	reviewed by: Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/Makefile.am:
	* libgupnp/gupnp.h:
	* libgupnp/gupnp-service-introspection.c:
	(gupnp_service_introspection_init),
	(gupnp_service_introspection_set_property),
	(gupnp_service_introspection_get_property),
	(gupnp_service_introspection_dispose),
	(gupnp_service_introspection_finalize),
	(gupnp_service_introspection_class_init), (get_scpd),
	(set_default_value), (set_string_value_limits),
	(set_value_limit_by_name), (set_variable_limits),
	(set_variable_type), (get_state_variable), (get_action_argument),
	(get_action_arguments), (action_argument_list_free), (get_actions),
	(get_state_variables), (contstruct_introspection_info),
	(collect_action_names), (collect_action_arguments),
	(collect_actions), (collect_allowed_values), (copy_state_variable),
	(collect_state_variables), (gupnp_service_introspection_new),
	(gupnp_service_introspection_list_action_names),
	(gupnp_service_introspection_list_action_arguments),
	(gupnp_service_introspection_list_actions),
	(gupnp_service_action_arg_info_free),
	(gupnp_service_action_info_free),
	(gupnp_service_introspection_list_state_variables),
	(gupnp_service_state_variable_info_free):
	* libgupnp/gupnp-service-introspection.h:

	Add service introspection support.

	* libgupnp/gupnp-service-info.c:
	(gupnp_service_proxy_request_introspection):
	* libgupnp/gupnp-service-info.h:
	
	- Add service introspection support.

	* tests/Makefile.am:
	* tests/test-introspection.c: (print_action_arguments),
	(print_actions), (print_state_variables),
	(service_proxy_available_cb), (service_proxy_unavailable_cb),
	(main):

	Add a test application for the introspection API.

2007-06-27  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_send_action_valist):

	Only run the main loop if it hasn't been quit before yet. Fixes
	a hang.

2007-06-27  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service.c: (subscription_data_free), (subscribe),
	(gupnp_service_constructor), (gupnp_service_finalize),
	(gupnp_service_class_init), (gupnp_service_notify_valist),
	(notify_got_response), (notify_subscriber), (flush_notifications),
	(gupnp_service_notify_value), (gupnp_service_freeze_notify),
	(gupnp_service_thaw_notify):
	* libgupnp/gupnp-service.h:

	Implement notification.

2007-06-27  Jorn Baayen  <jorn@openedhand.com>

	* configure.ac:
	
	Depend on uuid.

	* libgupnp/gena-protocol.h:

	Added minimum timeout value.

	* libgupnp/gupnp-context.c: (gupnp_context_class_init):

	Use minimum timeout value.

	* libgupnp/gupnp-service.c: (gupnp_service_action_return_error),
	(gupnp_service_init), (query_state_variable),
	(control_server_handler), (subscription_response), (generate_sid),
	(subscription_timeout), (parse_timeout), (subscribe),
	(resubscribe), (unsubscribe), (subscription_server_handler),
	(gupnp_service_constructor), (gupnp_service_finalize),
	(gupnp_service_class_init), (gupnp_service_notify),
	(gupnp_service_notify_valist), (gupnp_service_notify_value),
	(gupnp_service_freeze_notify), (gupnp_service_thaw_notify),
	(_gupnp_service_new_from_element):

	Implement subscription.

2007-06-27  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/Makefile.am:
	* libgupnp/gupnp-error.h:
	* libgupnp/gupnp-service.c: (gupnp_service_action_return_error),
	(query_state_variable), (control_server_handler):
	* libgupnp/gupnp-service.h:
	* libgupnp/upnp-protocol.h:

	More flexible error handling.

2007-06-27  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service.c: (gupnp_service_action_get_value),
	(gupnp_service_action_set_valist),
	(gupnp_service_action_set_value), (gupnp_service_action_return),
	(gupnp_service_action_return_error), (gupnp_service_init),
	(new_action_response_node), (query_state_variable),
	(control_server_handler), (gupnp_service_notify_valist),
	(gupnp_service_notify_value), (gupnp_service_freeze_notify),
	(gupnp_service_thaw_notify), (_gupnp_service_new_from_element):
	* libgupnp/gupnp-service.h:

	Fully implement actioning.

	* libgupnp/Makefile.am:
	* libgupnp/gupnp-error.h:
	* libgupnp/upnp-protocol.h:

	Added error codes and descriptions.

	* libgupnp/xml-util.c: (xml_util_node_get_content_int):
	* libgupnp/xml-util.h:

	Added xml_util_node_get_content_value() for retrieving xmlNode
	contents as GValues.

	* libgupnp/gupnp-service-proxy.c: (server_handler):

	Use xml_util_node_get_content_value().

	* tests/test-server.c: (browse_cb):

	Test actioning.

2007-06-26  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_end_action_valist):

	Small cleanup.

	* libgupnp/gupnp-service.c: (gupnp_service_action_get_locales),
	(gupnp_service_action_get), (gupnp_service_action_get_valist),
	(gupnp_service_action_get_value), (gupnp_service_action_set),
	(gupnp_service_action_set_valist),
	(gupnp_service_action_set_value), (gupnp_service_action_return),
	(gupnp_service_action_return_error), (gupnp_service_class_init),
	(gupnp_service_notify), (gupnp_service_notify_valist),
	(gupnp_service_notify_value), (gupnp_service_freeze_notify),
	(gupnp_service_thaw_notify):

	Boilerplate code.

2007-06-26  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service.c: (query_state_variable),
	(control_server_handler):

	Implement QueryStateVariable.

2007-06-26  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_begin_action_valist):
	* libgupnp/gupnp-service.c: (gupnp_service_action_get_name),
	(gupnp_service_action_get_locales),
	(gupnp_service_action_set_value), (gupnp_service_action_return),
	(gupnp_service_action_return_error), (gupnp_service_init),
	(query_state_variable), (control_server_handler),
	(subscription_server_handler), (gupnp_service_constructor),
	(gupnp_service_dispose), (gupnp_service_finalize),
	(gupnp_service_class_init), (gupnp_service_notify),
	(gupnp_service_notify_valist), (gupnp_service_notify_value),
	(gupnp_service_freeze_notify), (gupnp_service_thaw_notify),
	(_gupnp_service_new_from_element):
	* libgupnp/gupnp-service.h:

	Basic server-side actioning. No argument handling yet.

	* tests/test-server.c: (browse_cb), (main):

	Test actioning.

2007-06-26  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/accept-language.c: (accept_language_get_header):
	* libgupnp/accept-language.h:

	Cleanup, additional functions to convert between locale and HTTP
	language tag representations.

	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_begin_action_valist):

	Updated for accept-language function rename.

	* configure.ac:

	Depend on shared-mime-data.

	* libgupnp/Makefile.am:
	* libgupnp/xdgmime/Makefile.am:
	* libgupnp/xdgmime/xdgmime.c:
	* libgupnp/xdgmime/xdgmime.h:
	* libgupnp/xdgmime/xdgmimealias.c:
	* libgupnp/xdgmime/xdgmimealias.h:
	* libgupnp/xdgmime/xdgmimecache.c:
	* libgupnp/xdgmime/xdgmimecache.h:
	* libgupnp/xdgmime/xdgmimeglob.c:
	* libgupnp/xdgmime/xdgmimeglob.h:
	* libgupnp/xdgmime/xdgmimeint.c:
	* libgupnp/xdgmime/xdgmimeint.h:
	* libgupnp/xdgmime/xdgmimemagic.c:
	* libgupnp/xdgmime/xdgmimemagic.h:
	* libgupnp/xdgmime/xdgmimeparent.c:
	* libgupnp/xdgmime/xdgmimeparent.h:
	* libgupnp/gupnp-context.c: (hosting_server_handler):

	Use xdgmime to set correct Content-Type HTTP headers.

	* tests/test-server.c: (main):

	Print port number on startup.

2007-06-22  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-device-info.c: (gupnp_device_info_set_property),
	(gupnp_device_info_get_udn):

	Re-use get_property() in one more spot.

	* libgupnp/gupnp-service.h:

	Added G_GNUC_NULL_TERMINATED.

	* libgupnp/gupnp-root-device.c: (server_handler),
	(fill_resource_group), (gupnp_root_device_constructor):
	* libgupnp/xml-util.c: (xml_util_node_get_content_int):
	* libgupnp/xml-util.h:

	Move some XML utils to xml-util.c

2007-06-22  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/Makefile.am:
	* libgupnp/accept-language.c:
	* libgupnp/accept-language.h:
	* libgupnp/gupnp-context.c:
	(gupnp_context_get_subscription_timeout), (hosting_server_handler),
	(unregister_hosting_server_handler):

	Proper Accept-Language support.

	* libgupnp/gupnp-device.c: (gupnp_device_get_service):
	* libgupnp/gupnp-service-private.h:
	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_begin_action),
	(gupnp_service_proxy_begin_action_valist):
	* libgupnp/gupnp-service.c: (gupnp_service_action_get_name),
	(gupnp_service_thaw_notify):
	* libgupnp/gupnp-service.h:

	Handle service object creation.

2007-06-19  Jorn Baayen  <jorn@openedhand.com>

	* doc/Makefile.am:
	* doc/api-design.txt:

	Remove obsolete API design document.

	* libgupnp/gupnp-device.c:

	Small doc correction.

	* libgupnp/Makefile.am:
	* libgupnp/gupnp-service.c:
	* libgupnp/gupnp-service.h:

	Added Service skels.

	* libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_class_init):

	Delete obsolete code.

2007-06-19  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-context.c: (_gupnp_context_get_session),
	(gupnp_context_get_subscription_timeout):
	* libgupnp/gupnp-context.h:
	* tests/test-server.c: (main):

	Add regular web server functionality.

2007-06-19  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-control-point.c: (description_loaded):
	* libgupnp/gupnp-device-proxy-private.h:
	* libgupnp/gupnp-device-proxy.c:
	(_gupnp_device_proxy_find_element_for_udn):
	* libgupnp/gupnp-device-proxy.h:
	* libgupnp/gupnp-service-proxy-private.h:
	* libgupnp/gupnp-service-proxy.c: (find_service_element_for_type):
	* libgupnp/gupnp-service-proxy.h:

	Make ServiceProxy and DeviceProxy constructors private.

2007-06-19  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-context.c: (gupnp_context_dispose):
	* libgupnp/gupnp-control-point.c: (gupnp_control_point_dispose):
	* libgupnp/gupnp-root-device.c: (gupnp_root_device_finalize),
	(gupnp_root_device_dispose):
	* libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_dispose):

	Chain up to parent class dispose and finalize methods.

2007-06-19  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-context.c: (gupnp_context_init):

	Remove unnecessary initialisations.

2007-06-19  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-context.c: (gupnp_context_class_init):
	* libgupnp/gupnp-device-info.c: (gupnp_device_info_class_init):
	* libgupnp/gupnp-service-info.c: (gupnp_service_info_class_init):
	* libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_class_init):

	Added G_PARAM_STATIC_{NAME,NICK,BLURB}.

2007-06-19  Jorn Baayen  <jorn@openedhand.com>

	* tests/test-server.c: (main):

	Use g_object_weak_ref() to destroy the description document when
	the root device is finalized.

2007-06-19  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-root-device.c: (fill_resource_group):

	Do not overwrite 'element' with child elements as it is still
	needed later.

	* tests/Makefile.am:
	* tests/test-server.c:
	D tests/test.c:
	A tests/test-client.c:

	Added server test case.

2007-06-18  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/Makefile.am:
	* libgupnp/gupnp-device.c:
	* libgupnp/gupnp-root-device.c:
	* libgupnp/gupnp-root-device.h:

	Implement Device and RootDevice.

	* libgupnp/gupnp-device-info.c: (gupnp_device_info_set_property),
	(gupnp_device_info_class_init):

	Detect UDN if not explicitly specified.

	* libgupnp/gupnp-control-point.c: (parse_usn):
	* libgupnp/gupnp-service.h:

	Fix typos.

	* libgupnp/gupnp-device-proxy.c:
	* libgupnp/gupnp-device-proxy.h:

	No need for a private structure any more.

2007-06-14  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-context.c: (get_default_host_ip):

	Set IP to 127.0.0.1 if no non-loopback device could be found.

	* libgupnp/gupnp-device-info.c: (gupnp_device_info_set_property),
	(gupnp_device_info_get_property), (gupnp_device_info_dispose),
	(gupnp_device_info_finalize), (gupnp_device_info_class_init),
	(gupnp_device_info_get_context), (gupnp_device_info_get_location),
	(gupnp_device_info_get_url_base), (gupnp_device_info_get_udn),
	(get_property), (gupnp_device_info_get_serial_number),
	(gupnp_device_info_get_upc), (icon_parse), (icon_free),
	(gupnp_device_info_get_icon_url), (gupnp_device_info_list_devices),
	(gupnp_device_info_list_device_types),
	(gupnp_device_info_get_device), (gupnp_device_info_list_services),
	(gupnp_device_info_list_service_types),
	(gupnp_device_info_get_service):
	* libgupnp/gupnp-device-info.h:
	* libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_new):
	* libgupnp/gupnp-service-info.c: (gupnp_service_info_set_property),
	(gupnp_service_info_get_property), (gupnp_service_info_dispose),
	(gupnp_service_info_finalize), (gupnp_service_info_class_init),
	(gupnp_service_info_get_context),
	(gupnp_service_info_get_location),
	(gupnp_service_info_get_url_base), (gupnp_service_info_get_udn),
	(get_property), (get_url_property):
	* libgupnp/gupnp-service-info.h:
	* libgupnp/gupnp-service-proxy-private.h:
	* libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_class_init),
	(gupnp_service_proxy_new):

	Add 'context' and 'url-base' properties to info classes.

	* libgupnp/gupnp-service.h:
	* libgupnp/gupnp-root-device.h:

	Server side API changes.

2007-06-11  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-root-device.h:
	* libgupnp/gupnp-service.h:
	
	API tweaks.

2007-06-11  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/Makefile.am:
	* libgupnp/gupnp-device.h:
	* libgupnp/gupnp-root-device.h:
	* libgupnp/gupnp-service.h:
	* libgupnp/gupnp.h:

	Headers for server side. These are not final yet.

2007-05-30  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-control-point.c:
	(gupnp_control_point_resource_unavailable):

	Remove unavailable proxies from cache.

2007-05-29  Jorn Baayen  <jorn@openedhand.com>

	* configure.ac:

	Bump version to 0.1.99.

	* libgupnp/gupnp-device-info.c: (gupnp_device_info_get_icon_url):
	* libgupnp/gupnp-device-info.h:
	* libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_get_url_base),
	(gupnp_device_proxy_get_device), (gupnp_device_proxy_get_service),
	(gupnp_device_proxy_init), (gupnp_device_proxy_class_init):
	* libgupnp/gupnp-device-proxy.h:

	Move device subdevice and service retreival from DeviceProxy to
	DeviceInfo. This so that client and server side code can expose
	identical info API.

	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_begin_action), (get_current_language),
	(action_got_response), (gupnp_service_proxy_begin_action_valist):
	* tests/test.c: (main):

	Set Accept-Language header on action requests.

2007-05-26  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-context.c:
	* libgupnp/gupnp-context.h:
	* libgupnp/gupnp-control-point.c:
	* libgupnp/gupnp-control-point.h:
	* libgupnp/gupnp-device-info.c:
	* libgupnp/gupnp-device-info.h:
	* libgupnp/gupnp-device-proxy.c:
	* libgupnp/gupnp-device-proxy.h:
	* libgupnp/gupnp-error.c:
	* libgupnp/gupnp-service-info.c:
	* libgupnp/gupnp-service-info.h:
	* libgupnp/gupnp-service-proxy.c:
	* libgupnp/gupnp-service-proxy.h:

	More gtkdoc-fu.

2007-05-26  Jorn Baayen  <jorn@openedhand.com>

	* configure.ac:
	* doc/Makefile.am:
	* doc/gupnp-docs.sgml:

	Added doc preamble.

2007-05-22  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-device-proxy.h:
	* libgupnp/gupnp-service-proxy.h:

	Doc coverage to 100%.

2007-05-21  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/Makefile.am:

	Make sure all files get packaged.

	* libgupnp/gupnp-context.c: (gupnp_context_class_init):
	* libgupnp/gupnp-context.h:
	* libgupnp/gupnp-control-point.c: (gupnp_control_point_class_init):
	* libgupnp/gupnp-control-point.h:
	* libgupnp/gupnp-device-info.c: (gupnp_device_info_class_init),
	(icon_parse), (icon_free):
	* libgupnp/gupnp-device-info.h:
	* libgupnp/gupnp-error.c:
	* libgupnp/gupnp-service-info.c: (gupnp_service_info_class_init),
	(get_url_property), (gupnp_service_info_get_service_type),
	(gupnp_service_info_get_id), (gupnp_service_info_get_scpd_url),
	(gupnp_service_info_get_control_url):
	* libgupnp/gupnp-service-info.h:
	* libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_class_init):

	Doc updates.

2007-05-21  Jorn Baayen  <jorn@openedhand.com>

	* doc/Makefile.am:

	Hide private bits.

	* doc/gupnp-docs.sgml:

	Added.

2007-05-21  Jorn Baayen  <jorn@openedhand.com>

	* configure.ac:

	Point to gupnp.org.

	* po/*: 

	Added missing files.

2007-05-10  Jorn Baayen  <jorn@openedhand.com>

	* NEWS:
	* README:

	Added some text.

	* libgupnp/gupnp-device-info.h:

	Removed device type defines. These belong in any higher level
	libs now.

	* tests/test.c: (device_proxy_available_cb),
	(service_proxy_available_cb), (service_proxy_unavailable_cb),
	(main):

	Added notification test and cleaned up.

2007-05-09  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c: (server_handler):

	Parse XML part of NOTIFY messages and call notify callbacks.

	This means that now the client side of GUPnP is feature complete.
	Yay!

	* tests/test.c:
	
	Remove old comments.

2007-05-09  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_get_element),
	(gupnp_service_proxy_get_url_base), (notify_data_free),
	(gupnp_service_proxy_init), (gupnp_service_proxy_dispose),
	(gupnp_service_proxy_finalize),
	(gupnp_service_proxy_end_action_valist),
	(gupnp_service_proxy_cancel_action):
	* libgupnp/gupnp-service-proxy.h:

	Add notification management.

2007-05-09  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_end_action_valist):

	Correct error message.

2007-05-09  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c: (server_handler),
	(subscription_expire), (subscribe_got_response), (subscribe),
	(unsubscribe):

	Emit 'subscription-lost' when appropriate.

	Keep track of notify sequence numbers and resubscribe when
	we notice dropped notifications.

2007-05-09  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-context-private.h:
	* libgupnp/gupnp-context.c:
	* libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_finalize),
	(gupnp_service_proxy_remove_notify), (subscription_expire),
	(subscribe_got_response), (subscribe), (unsubscribe):

	Generate a unique path for each proxy on the server, and use
	soup_server_add_handler() to capture its requests instead of
	using a 'server-message-received' signal from GUPnPContext.

2007-05-09  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_remove_notify), (subscription_expire),
	(subscribe_got_response), (subscribe), (unsubscribe):

	Correct "Callback" URL format is subscription message.
	Disable Date header parsing for now as getting a local time 
	(taking into account daylight saving) out of an RFC 1123 time
	is a total pain.

2007-05-09  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-context-private.h:
	* libgupnp/gupnp-context.c: (gupnp_context_class_init),
	(_gupnp_context_get_session), (server_handler),
	(_gupnp_context_get_server):

	Add hidden 'server-message-received' signal, emitted whenever
	the SoupServer receives a message.

2007-05-09  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-context.c: (_gupnp_context_get_session),
	(default_server_handler), (_gupnp_context_get_server),
	(gupnp_context_get_port), (gupnp_context_set_subscription_timeout):
	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_remove_notify), (make_timeout_header),
	(subscription_expire), (subscribe_got_response), (subscribe):

	Support infinite timeout locally.

	Add a default server handler returning 501.

2007-05-08  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_dispose),
	(subscribe), (unsubscribe), (gupnp_service_proxy_set_subscribed):

	Send unsubscription message synchronised on dispose.

2007-05-08  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-context.c: (gupnp_context_init),
	(gupnp_context_set_property), (gupnp_context_get_property),
	(gupnp_context_class_init), (_gupnp_context_get_server_url),
	(gupnp_context_new):
	* libgupnp/gupnp-context.h:
	* libgupnp/gupnp-service-proxy.c: (subscription_expire),
	(subscribe_got_response), (subscribe):

	Added subscription-timeout property to Context and use in
	ServiceProxy.

2007-05-08  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-service-proxy.c: (subscribe_got_response):

	Support infinite timeouts.

2007-05-08  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/Makefile.am:
	* libgupnp/gupnp-device-proxy.c:
	* libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_dispose),
	(gupnp_service_proxy_begin_action), (action_got_response),
	(gupnp_service_proxy_end_action_valist),
	(gupnp_service_proxy_remove_notify), (subscription_expire),
	(subscribe_got_response), (subscribe), (unsubscribe),
	(gupnp_service_proxy_set_subscribed):

	Implement subscription.

	* tests/test.c: (service_proxy_available_cb):

	Test subscription.

2007-05-08  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-context-private.h:
	* libgupnp/gupnp-context.c: (make_server_id), (get_ip),
	(get_default_host_ip), (gupnp_context_init),
	(gupnp_context_set_property), (gupnp_context_get_property),
	(gupnp_context_dispose), (gupnp_context_finalize),
	(gupnp_context_class_init), (_gupnp_context_get_session):
	* libgupnp/gupnp-context.h:

	Start a SOAP server on demand, and add internal API for
	retrieving a URL to the server itself.

	* tests/test.c: (main):

	Updated to use changed GUPnPContext constructor.

2007-05-07  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-device-info.c: (icon_parse), (icon_free),
	(gupnp_device_info_get_icon_url):
	* libgupnp/gupnp-device-info.h:
	* libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_finalize),
	(gupnp_device_proxy_get_element),
	(gupnp_device_proxy_get_url_base), (gupnp_device_proxy_init),
	(gupnp_device_proxy_list_devices), (gupnp_device_proxy_get_device),
	(gupnp_device_proxy_list_services),
	(gupnp_device_proxy_get_service),
	(_gupnp_device_proxy_find_element_for_udn),
	(gupnp_device_proxy_new), (_gupnp_device_proxy_new_from_element):
	* libgupnp/gupnp-service-info.c: (get_property),
	(gupnp_service_info_get_service_type), (gupnp_service_info_get_id),
	(gupnp_service_info_get_scpd_url),
	(gupnp_service_info_get_control_url):
	* libgupnp/gupnp-service-info.h:
	* libgupnp/gupnp-service-proxy-private.h:
	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_action_free),
	(gupnp_service_proxy_get_element),
	(gupnp_service_proxy_get_property), (gupnp_service_proxy_dispose),
	(gupnp_service_proxy_finalize), (gupnp_service_proxy_class_init),
	(gupnp_service_proxy_send_action_valist),
	(gupnp_service_proxy_begin_action_valist),
	(gupnp_service_proxy_end_action),
	(gupnp_service_proxy_end_action_valist),
	(find_service_element_for_type), (gupnp_service_proxy_new),
	(_gupnp_service_proxy_new_from_element):

	Take URLBase into account.
	Make sending actions and parsing action responses work correctly.

	* tests/test.c: (service_proxy_available_cb),
	(service_proxy_unavailable_cb), (main):

	Add a little control test case for ContentDirectories.

2007-05-07  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-control-point.c: (description_loaded),
	(parse_usn):

	Correct USN parsing.

	* libgupnp/gupnp-service-proxy.c:
	(gupnp_service_proxy_begin_action_valist):

	Added assertion.

2007-05-03  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-control-point.c: (parse_usn),
	(gupnp_control_point_resource_available),
	(gupnp_control_point_class_init),
	(gupnp_control_point_get_context):
	* libgupnp/gupnp-control-point.h:
	* tests/test.c: (main):

	GSSDPServiceBrowser -> GSSDPResourceBrowser.

2007-04-25  Zeeshan Ali  <zeenix@gstreamer.net>

	* libgupnp/gupnp-device-info.h:
	* tests/test.c: (device_proxy_available_cb):

	Add some device type defines.

2007-04-16  Jorn Baayen  <jorn@openedhand.com>

	* libgupnp/gupnp-context-private.h:

	Added missing header. Spotted by Priit Laes.