예제 #1
0
void dock_manager_preferences_bin_run (DockManagerPreferencesBin* self) {
	DBusGConnection* _tmp0_ = NULL;
	DBusGConnection* connection;
	gint _tmp1_;
	DockManagerHelperInfo* _tmp2_ = NULL;
	DockManagerHelperInfo* helpers;
	gint helpers_length1;
	gint _helpers_size_;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = dbus_g_bus_get (DBUS_BUS_SESSION, &_inner_error_);
	connection = _tmp0_;
	if (_inner_error_ != NULL) {
		if (_inner_error_->domain == DBUS_GERROR) {
			goto __catch0_dbus_gerror;
		}
		g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
	_g_object_unref0 (self->priv->dbus_interface);
	self->priv->dbus_interface = dock_manager_daemon_interface_dbus_proxy_new (connection, DOCK_MANAGER_DBUS_UNIQUE_NAME, DOCK_MANAGER_DBUS_OBJECT_PATH_NAME);
	g_signal_connect_object (self->priv->dbus_interface, "helper-state-changed", (GCallback) _dock_manager_preferences_bin_helper_changed_dock_manager_daemon_interface_helper_state_changed, self, 0);
	_tmp2_ = dock_manager_daemon_interface_get_all_helpers (self->priv->dbus_interface, &_tmp1_, &_inner_error_);
	helpers = _tmp2_;
	helpers_length1 = _tmp1_;
	_helpers_size_ = _tmp1_;
	if (_inner_error_ != NULL) {
		_dbus_g_connection_unref0 (connection);
		if (_inner_error_->domain == DBUS_GERROR) {
			goto __catch0_dbus_gerror;
		}
		_dbus_g_connection_unref0 (connection);
		g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
	{
		DockManagerHelperInfo* helper_collection;
		int helper_collection_length1;
		int helper_it;
		helper_collection = helpers;
		helper_collection_length1 = helpers_length1;
		for (helper_it = 0; helper_it < helpers_length1; helper_it = helper_it + 1) {
			DockManagerHelperInfo _tmp3_;
			DockManagerHelperInfo* helper;
			_tmp3_ = helper_collection[helper_it];
			helper = &_tmp3_;
			{
				DockManagerHelperInfo* _tmp4_;
				_tmp4_ = _dock_manager_helper_info_dup0 (helper);
				self->priv->all_helpers = g_list_append (self->priv->all_helpers, _tmp4_);
			}
		}
	}
	self->priv->all_helpers = g_list_sort (self->priv->all_helpers, __lambda2__gcompare_func);
	dock_manager_preferences_bin_update_helpers (self);
	helpers = (_vala_DockManagerHelperInfo_array_free (helpers, helpers_length1), NULL);
	_dbus_g_connection_unref0 (connection);
	goto __finally0;
	__catch0_dbus_gerror:
	{
		GError * err;
		err = _inner_error_;
		_inner_error_ = NULL;
		g_warning ("dockmanager-settings.vala:196: %s", err->message);
		_g_error_free0 (err);
	}
	__finally0:
	if (_inner_error_ != NULL) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
}
예제 #2
0
RygelExternalContainer* rygel_external_container_construct (GType object_type, const char* id, const char* service_name, const char* object_path, const char* host_ip, RygelExternalContainer* parent) {
#line 236 "rygel-external-container.c"
	GError * _inner_error_;
	RygelExternalContainer * self;
	char* _tmp0_;
	char* _tmp1_;
	char* _tmp2_;
	GeeArrayList* _tmp3_;
#line 42 "rygel-external-container.vala"
	g_return_val_if_fail (id != NULL, NULL);
#line 42 "rygel-external-container.vala"
	g_return_val_if_fail (service_name != NULL, NULL);
#line 42 "rygel-external-container.vala"
	g_return_val_if_fail (object_path != NULL, NULL);
#line 42 "rygel-external-container.vala"
	g_return_val_if_fail (host_ip != NULL, NULL);
#line 251 "rygel-external-container.c"
	_inner_error_ = NULL;
#line 47 "rygel-external-container.vala"
	self = (RygelExternalContainer*) rygel_media_container_construct (object_type, id, (RygelMediaContainer*) parent, "Uknown", 0);
#line 49 "rygel-external-container.vala"
	self->service_name = (_tmp0_ = g_strdup (service_name), _g_free0 (self->service_name), _tmp0_);
#line 50 "rygel-external-container.vala"
	self->priv->object_path = (_tmp1_ = g_strdup (object_path), _g_free0 (self->priv->object_path), _tmp1_);
#line 51 "rygel-external-container.vala"
	self->host_ip = (_tmp2_ = g_strdup (host_ip), _g_free0 (self->host_ip), _tmp2_);
#line 53 "rygel-external-container.vala"
	self->priv->containers = (_tmp3_ = gee_array_list_new (RYGEL_TYPE_EXTERNAL_CONTAINER, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL), _g_object_unref0 (self->priv->containers), _tmp3_);
#line 263 "rygel-external-container.c"
	{
		DBusGConnection* connection;
		RygelExternalMediaContainer* _tmp4_;
		char* _tmp5_;
#line 56 "rygel-external-container.vala"
		connection = dbus_g_bus_get (DBUS_BUS_SESSION, &_inner_error_);
#line 270 "rygel-external-container.c"
		if (_inner_error_ != NULL) {
			goto __catch0_g_error;
		}
#line 59 "rygel-external-container.vala"
		self->actual_container = (_tmp4_ = rygel_external_media_container_dbus_proxy_new (connection, service_name, object_path), _g_object_unref0 (self->actual_container), _tmp4_);
#line 63 "rygel-external-container.vala"
		rygel_media_object_set_title ((RygelMediaObject*) self, _tmp5_ = rygel_external_media_object_get_display_name ((RygelExternalMediaObject*) self->actual_container));
#line 278 "rygel-external-container.c"
		_g_free0 (_tmp5_);
#line 65 "rygel-external-container.vala"
		rygel_external_container_update_container (self, &_inner_error_);
#line 282 "rygel-external-container.c"
		if (_inner_error_ != NULL) {
			_dbus_g_connection_unref0 (connection);
			goto __catch0_g_error;
		}
#line 67 "rygel-external-container.vala"
		g_signal_connect_object (self->actual_container, "updated", (GCallback) _rygel_external_container_on_updated_rygel_external_media_container_updated, self, 0);
#line 289 "rygel-external-container.c"
		_dbus_g_connection_unref0 (connection);
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError * err;
		err = _inner_error_;
		_inner_error_ = NULL;
		{
#line 69 "rygel-external-container.vala"
			g_critical ("rygel-external-container.vala:69: Failed to fetch information about co" \
"ntainer '%s': %s\n", ((RygelMediaObject*) self)->id, err->message);
#line 301 "rygel-external-container.c"
			_g_error_free0 (err);
		}
	}
	__finally0:
	if (_inner_error_ != NULL) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return NULL;
	}
	return self;
}
예제 #3
0
static GObject * dock_manager_dbus_watcher_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
	GObject * obj;
	GObjectClass * parent_class;
	DockManagerDBusWatcher * self;
	GHashTable* _tmp0_ = NULL;
	DBusGConnection* _tmp1_ = NULL;
	DBusGConnection* connection;
	DBusGProxy* _tmp2_ = NULL;
	GRegex* _tmp3_ = NULL;
	GRegex* _tmp4_;
	gint _tmp5_;
	gchar** _tmp6_ = NULL;
	gchar** all_names;
	gint all_names_length1;
	gint _all_names_size_;
	GError * _inner_error_ = NULL;
	parent_class = G_OBJECT_CLASS (dock_manager_dbus_watcher_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = DOCK_MANAGER_DBUS_WATCHER (obj);
	_tmp0_ = g_hash_table_new_full (g_str_hash, g_str_equal, _g_free0_, NULL);
	_g_hash_table_unref0 (self->priv->owned_names);
	self->priv->owned_names = _tmp0_;
	_tmp1_ = dbus_g_bus_get (DBUS_BUS_SESSION, &_inner_error_);
	connection = _tmp1_;
	if (_inner_error_ != NULL) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
	}
	_tmp2_ = dbus_g_proxy_new_for_name (connection, "org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus");
	_g_object_unref0 (self->priv->bus_object);
	self->priv->bus_object = _tmp2_;
	_dynamic_NameOwnerChanged1_connect (self->priv->bus_object, "NameOwnerChanged", (GCallback) _dock_manager_dbus_watcher_name_owner_changed_dynamic_NameOwnerChanged0_, self);
	_tmp3_ = g_regex_new ("^:\\d+.\\d+$", 0, 0, &_inner_error_);
	_tmp4_ = _tmp3_;
	if (_inner_error_ != NULL) {
		_dbus_g_connection_unref0 (connection);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
	}
	_g_regex_unref0 (self->priv->unnamed_bus_object);
	self->priv->unnamed_bus_object = _tmp4_;
	_tmp6_ = _dynamic_list_names1 (self->priv->bus_object, &_tmp5_, &_inner_error_);
	all_names = _tmp6_;
	all_names_length1 = _tmp5_;
	_all_names_size_ = _tmp5_;
	if (_inner_error_ != NULL) {
		_dbus_g_connection_unref0 (connection);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
	}
	{
		gchar** s_collection;
		int s_collection_length1;
		int s_it;
		s_collection = all_names;
		s_collection_length1 = all_names_length1;
		for (s_it = 0; s_it < all_names_length1; s_it = s_it + 1) {
			gchar* _tmp7_;
			gchar* s;
			_tmp7_ = g_strdup (s_collection[s_it]);
			s = _tmp7_;
			{
				gboolean _tmp8_;
				_tmp8_ = g_regex_match (self->priv->unnamed_bus_object, s, 0, NULL);
				if (_tmp8_ == FALSE) {
					gchar* _tmp9_;
					_tmp9_ = g_strdup (s);
					g_hash_table_insert (self->priv->owned_names, _tmp9_, GINT_TO_POINTER (1));
				}
				_g_free0 (s);
			}
		}
	}
	all_names = (_vala_array_free (all_names, all_names_length1, (GDestroyNotify) g_free), NULL);
	_dbus_g_connection_unref0 (connection);
	return obj;
}