54 lines
1.6 KiB
Go
54 lines
1.6 KiB
Go
|
package goupnp
|
||
|
|
||
|
import (
|
||
|
"encoding/xml"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
SCPDXMLNamespace = "urn:schemas-upnp-org:service-1-0"
|
||
|
)
|
||
|
|
||
|
// SCPD is the service description as described by section 2.5 "Service
|
||
|
// description" in
|
||
|
// http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf
|
||
|
type SCPD struct {
|
||
|
Name xml.Name `xml:"scpd"`
|
||
|
ConfigId string `xml:"configId,attr"`
|
||
|
SpecVersion SpecVersion `xml:"specVersion"`
|
||
|
Actions []Action `xml:"actionList>action"`
|
||
|
StateVariables []StateVariable `xml:"serviceStateTable>stateVariable"`
|
||
|
}
|
||
|
|
||
|
type Action struct {
|
||
|
Name string `xml:"name"`
|
||
|
Arguments []Argument `xml:"argumentList>argument"`
|
||
|
}
|
||
|
|
||
|
type Argument struct {
|
||
|
Name string `xml:"name"`
|
||
|
Direction string `xml:"direction"` // in|out
|
||
|
RelatedStateVariable string `xml:"relatedStateVariable"` // ?
|
||
|
Retval string `xml:"retval"` // ?
|
||
|
}
|
||
|
|
||
|
type StateVariable struct {
|
||
|
Name string `xml:"name"`
|
||
|
SendEvents string `xml:"sendEvents,attr"` // yes|no
|
||
|
Multicast string `xml:"multicast,attr"` // yes|no
|
||
|
DataType DataType `xml:"dataType"`
|
||
|
DefaultValue string `xml:"defaultValue"`
|
||
|
AllowedValueRange AllowedValueRange `xml:"allowedValueRange"`
|
||
|
AllowedValue []string `xml:"allowedValueList>allowedValue"`
|
||
|
}
|
||
|
|
||
|
type AllowedValueRange struct {
|
||
|
Minimum string `xml:"minimum"`
|
||
|
Maximum string `xml:"maximum"`
|
||
|
Step string `xml:"step"`
|
||
|
}
|
||
|
|
||
|
type DataType struct {
|
||
|
Name string `xml:",chardata"`
|
||
|
Type string `xml:"type,attr"`
|
||
|
}
|