Generate dcps for AV1 audio/video devices

Tested against Sonos PLAY:5.

Added URI type to the SOAP library.

The latest upnpresources.zip does not contain older versions of the
specifications, so to be able to generate the bindings I had to create
a fake one:

    wget http://upnp.org/specs/av/UPnP-av-TestFiles-20070927.zip
    install -d 'standardizeddcps/MediaServer_1 and MediaRenderer_1'
    mv UPnP-av-TestFiles-20070927.zip 'standardizeddcps/MediaServer_1 and MediaRenderer_1/'
    zip -r fake.zip 'standardizeddcps/MediaServer_1 and MediaRenderer_1'
    gotask specgen -s fake.zip -o ../dcps
This commit is contained in:
Tommi Virtanen 2015-06-06 16:54:08 -07:00
parent 7f2f552f9b
commit 77b86c3723
3 changed files with 9798 additions and 0 deletions

9781
dcps/av1/av1.go Normal file

File diff suppressed because it is too large Load Diff

View File

@ -111,6 +111,11 @@ var dcpMetadataByDir = map[string]DCPMetadata{
OfficialName: "Internet Gateway Device v2",
DocURL: "http://upnp.org/specs/gw/UPnP-gw-InternetGatewayDevice-v2-Device.pdf",
},
"MediaServer_1 and MediaRenderer_1": {
Name: "av1",
OfficialName: "MediaServer v1 and MediaRenderer v1",
DocURL: "http://upnp.org/specs/av/av1/",
},
}
type dcpCollection struct {
@ -325,6 +330,7 @@ var typeConvs = map[string]conv{
"boolean": conv{"Boolean", "bool"},
"bin.base64": conv{"BinBase64", "[]byte"},
"bin.hex": conv{"BinHex", "[]byte"},
"uri": conv{"URI", "*url.URL"},
}
type closeableZipReader struct {

View File

@ -5,6 +5,7 @@ import (
"encoding/hex"
"errors"
"fmt"
"net/url"
"regexp"
"strconv"
"strings"
@ -506,3 +507,13 @@ func MarshalBinHex(v []byte) (string, error) {
func UnmarshalBinHex(s string) ([]byte, error) {
return hex.DecodeString(s)
}
// MarshalURI marshals *url.URL to SOAP "uri" type.
func MarshalURI(v *url.URL) (string, error) {
return v.String(), nil
}
// UnmarshalURI unmarshals *url.URL from the SOAP "uri" type.
func UnmarshalURI(s string) (*url.URL, error) {
return url.Parse(s)
}