コード例 #1
0
ファイル: mpris.go プロジェクト: emersion/go-mpris
func getProperty(obj *dbus.Object, iface string, prop string) dbus.Variant {
	result := dbus.Variant{}
	err := obj.Call(getPropertyMethod, 0, iface, prop).Store(&result)
	if err != nil {
		log.Println("Warning: could not get dbus property:", iface, prop, err)
		return dbus.Variant{}
	}
	return result
}
コード例 #2
0
ファイル: account_service.go プロジェクト: pombredanne/geard
func (a *AccountService) SetUserProperty(user *dbus.Object, propName string, propValue interface{}) error {
	methodName := a.propMethodMap[propName]
	if methodName == "" {
		return ErrInvalidProperty
	}

	if call := user.Call(fmt.Sprintf("org.freedesktop.Accounts.User.%v", methodName), 0, propValue); call.Err != nil {
		return call.Err
	}
	return nil
}
コード例 #3
0
ファイル: account_service.go プロジェクト: pombredanne/geard
func (a *AccountService) GetUserProperty(user *dbus.Object, propName string) (interface{}, error) {
	methodName := a.propMethodMap[propName]
	if methodName == "" {
		return nil, ErrInvalidProperty
	}

	propValue, err := user.GetProperty(fmt.Sprintf("org.freedesktop.Accounts.User.%v", propName))
	if err != nil {
		return nil, err
	}
	return propValue, nil
}
コード例 #4
0
ファイル: call.go プロジェクト: 98pm/docker
// Call calls org.freedesktop.Introspectable.Introspect on a remote object
// and returns the introspection data.
func Call(o *dbus.Object) (*Node, error) {
	var xmldata string
	var node Node

	err := o.Call("org.freedesktop.DBus.Introspectable.Introspect", 0).Store(&xmldata)
	if err != nil {
		return nil, err
	}
	err = xml.NewDecoder(strings.NewReader(xmldata)).Decode(&node)
	if err != nil {
		return nil, err
	}
	if node.Name == "" {
		node.Name = string(o.Path())
	}
	return &node, nil
}
コード例 #5
0
ファイル: mpris.go プロジェクト: emersion/go-mpris
func setProperty(obj *dbus.Object, iface string, prop string, val interface{}) {
	call := obj.Call(setPropertyMethod, 0, prop, val)
	if call.Err != nil {
		log.Println("Warning: could not set dbus property:", iface, prop, call.Err)
	}
}