drivers

package
v0.3.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 19, 2020 License: Apache-2.0 Imports: 19 Imported by: 2

README

= Drivers
:icons: font
:tabsize: 4

ifdef::env-github[]
:tip-caption: :bulb:
:note-caption: :information_source:
:important-caption: :heavy_exclamation_mark:
:caution-caption: :fire:
:warning-caption: :warning:
endif::[]

Drivers are the services that the av-api calls to talk to physical AV devices.
We write/use https://github.com/byuoitav/nec-driver[libraries] that implement one of the interfaces in this package - which interface they implement depends on the type of device the driver is written for.

Subdirectories of this package are all of our BYU-specific driver servers, which are compiled into docker containers based on the link:nec/dockerfile[`dockerfile`] (and the link:nec/dockerfile-arm[`dockerfile-arm`] for arm containers).

== Writing a Driver
. Create a new repo, titled with the control protocol or vendor `-driver`.
.. Use the github provided Go `.gitignore`.
.. Repos from BYU OIT AV should use the https://www.apache.org/licenses/LICENSE-2.0[Apache 2.0 License]

. Clone your repo by running ``git clone git@github.com:<org/repo>.git``
+
IMPORTANT: All new repos should use go mod. Make sure to clone your repo outside of your `$GOPATH`.

. Initialize https://blog.golang.org/using-go-modules[go mod] by running `go mod init <github.com/org/repo>` in your newly cloned repo.

. In a new file, create a struct in your new package that will implement the appropriate interface. Its fields should have data required to use the driver.
+
NOTE: Each instantiation of your struct should semantically represent a specific device (IE a single projector) and as such should contain _all_ of the information required to control that device

+
[source,go]
----
package adcp // <1>

type Projector struct {
	Address  string // <2>
	Username string // <2>
	Password string // <2>
}
----
<1> A driver library should typically have only one package
<2> Not required, just an example

. Implement all of the required functions in the matching interface found in this package. For example, to make a projector driver, you would probably want to implement the interface found in link:display.go[`display.go`].
+
[source,go]
----
func (p *Projector) GetPower(ctx context.Context) (string, error) { // <1>
}
----
<1> Confused with context? These articles are a great place to start: https://blog.golang.org/context[1], https://dave.cheney.net/2017/08/20/context-isnt-for-cancellation[2], https://dave.cheney.net/2017/01/26/context-is-for-cancelation[3]
+
CAUTION: Make sure that your driver library has good test code to ensure future changes don't break things. 😊

. Once a working version of your library is ready, release a v1.0.0 version of it. For future releases, use https://semver.org/[semantic versioning] to denote changes.

+
NOTE: Err on the side of caution here. It's ok to stay at V0.X for a while as things stabilize. Once you go V1, things will have to follow semantic far more strictly. 

[source,bash]
----
$ git tag -a "v1.0.0"
$ git push --tags
----

== Making a Driver Server
Once you have finished a library, or want to use one that implements one of the driver interfaces, you create create a driver server.

. Create a subdirectory in this one with the name of your driver server. Usually, this should match the driver name, without the `-driver` suffix.

. In your new directory, initalize go mod by running `go mod init github.com/byuoitav/drivers/<folder name>`
+
TIP: In this case, go mod is used to reliably import the correct version of external libraries, and not for exporting your package.

. Add the dockerfiles for both linux and arm to the directory

. TODO anything else https://github.com/bwinterton needs to build these (makefiles, etc.)

. Create a `server.go` file. This is where all of your driver server's code should go.
+
CAUTION: This will be changing shortly to represent new decisions. (TODO)

[source,go]
----
package main // <1>

// imports

func main() { // <1>
    var port int
    // variable declarations

    pflag.IntVarP(&port, "port", "p", 80, "port to run the server on") // <2>
    // other flags

    pflag.Parse() // <3>

    // create a net.Listener to run the server on
    addr := fmt.Sprintf(":%d", port)
    lis, err := net.Listen("tcp", addr)
    if err != nil {
        // handle err
    }

    // import driver library
    display := &adcp.Projector{} // <4>

    // create server
    server := drivers.CreateDisplayServer(display) // <5>
    if err = server.Serve(lis); err != nil {
        // handle err
    }
}
----
<1> Must be in package `main` with a `main()` function. This is where your driver server will start.
<2> The port to run our servers will be passed in as part of the dockerfile.
<3> We use the https://github.com/spf13/pflag[pflag] library for POSIX style flags.
<4> The variable, package, and struct name will change depending on the driver you are importing.
<5> Use the correct `Create...Server()` function for the interface your driver implements.

Documentation

Overview

Package drivers provides the interfaces that driver libraries implement to simplify the library code as well as the server code for the driver server.

Each interface has an associated create function:

type Create(Interface)Func func(context.Context, string) ((Interface), error)

as well as an associated function to create a HTTP server:

func Create(Interface)Server(create Create(Interface)Func) (Server, error)

A driver library provides a struct that implements the appropriate interface. For example, a driver library for the QSC DSP should implement the DSP interface.

This package includes subdirectories with all of the driver servers that BYU maintains. A driver server puts together dependencies (a driver library, logging libraries, auth libraries, etc) and runs an HTTP server using standard endpoints for each device type. It will provide a Create... function and should have its own go mod file to manage its dependencies versions. The examples below are examples of the main function of a driver server.

Index

Constants

This section is empty.

Variables

View Source
var Config zap.Config

Config is the logger config used for P

View Source
var File_driver_proto protoreflect.FileDescriptor

Log is a plain zap logger

Functions

func RegisterDriverServer added in v0.3.9

func RegisterDriverServer(s *grpc.Server, srv DriverServer)

Types

type Blank added in v0.3.9

type Blank struct {
	Blanked bool `protobuf:"varint,1,opt,name=blanked,proto3" json:"blanked,omitempty"`
	// contains filtered or unexported fields
}

func (*Blank) Descriptor deprecated added in v0.3.9

func (*Blank) Descriptor() ([]byte, []int)

Deprecated: Use Blank.ProtoReflect.Descriptor instead.

func (*Blank) GetBlanked added in v0.3.9

func (x *Blank) GetBlanked() bool

func (*Blank) ProtoMessage added in v0.3.9

func (*Blank) ProtoMessage()

func (*Blank) ProtoReflect added in v0.3.9

func (x *Blank) ProtoReflect() protoreflect.Message

func (*Blank) Reset added in v0.3.9

func (x *Blank) Reset()

func (*Blank) String added in v0.3.9

func (x *Blank) String() string

type Capabilities added in v0.3.9

type Capabilities struct {
	Capabilities []string `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"`
	// contains filtered or unexported fields
}

func (*Capabilities) Descriptor deprecated added in v0.3.9

func (*Capabilities) Descriptor() ([]byte, []int)

Deprecated: Use Capabilities.ProtoReflect.Descriptor instead.

func (*Capabilities) GetCapabilities added in v0.3.9

func (x *Capabilities) GetCapabilities() []string

func (*Capabilities) ProtoMessage added in v0.3.9

func (*Capabilities) ProtoMessage()

func (*Capabilities) ProtoReflect added in v0.3.9

func (x *Capabilities) ProtoReflect() protoreflect.Message

func (*Capabilities) Reset added in v0.3.9

func (x *Capabilities) Reset()

func (*Capabilities) String added in v0.3.9

func (x *Capabilities) String() string

type Capability added in v0.3.9

type Capability string
const (
	CapabilityPower           Capability = "Power"
	CapabilityAudioInput      Capability = "AudioInput"
	CapabilityVideoInput      Capability = "VideoInput"
	CapabilityAudioVideoInput Capability = "AudioVideoInput"
	CapabilityBlank           Capability = "Blank"
	CapabilityVolume          Capability = "Volume"
	CapabilityMute            Capability = "Mute"
	CapabilityInfo            Capability = "Info"
)

type Device

type Device interface{}

type DeviceInfo added in v0.3.9

type DeviceInfo struct {
	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	// contains filtered or unexported fields
}

func (*DeviceInfo) Descriptor deprecated added in v0.3.9

func (*DeviceInfo) Descriptor() ([]byte, []int)

Deprecated: Use DeviceInfo.ProtoReflect.Descriptor instead.

func (*DeviceInfo) GetAddress added in v0.3.9

func (x *DeviceInfo) GetAddress() string

func (*DeviceInfo) ProtoMessage added in v0.3.9

func (*DeviceInfo) ProtoMessage()

func (*DeviceInfo) ProtoReflect added in v0.3.9

func (x *DeviceInfo) ProtoReflect() protoreflect.Message

func (*DeviceInfo) Reset added in v0.3.9

func (x *DeviceInfo) Reset()

func (*DeviceInfo) String added in v0.3.9

func (x *DeviceInfo) String() string

type DeviceWithAudioInput added in v0.3.9

type DeviceWithAudioInput interface {
	GetAudioInputs(ctx context.Context) (map[string]string, error)
	SetAudioInput(ctx context.Context, output, input string) error
}

type DeviceWithAudioVideoInput added in v0.3.9

type DeviceWithAudioVideoInput interface {
	GetAudioVideoInputs(ctx context.Context) (map[string]string, error)
	SetAudioVideoInput(ctx context.Context, output, input string) error
}

type DeviceWithBlank added in v0.3.9

type DeviceWithBlank interface {
	GetBlank(context.Context) (bool, error)
	SetBlank(context.Context, bool) error
}

type DeviceWithInfo added in v0.3.9

type DeviceWithInfo interface {
	GetInfo(context.Context) (interface{}, error)
}

type DeviceWithMute added in v0.3.9

type DeviceWithMute interface {
	GetMutes(ctx context.Context, blocks []string) (map[string]bool, error)
	SetMute(context.Context, string, bool) error
}

type DeviceWithPower added in v0.3.9

type DeviceWithPower interface {
	GetPower(context.Context) (bool, error)
	SetPower(context.Context, bool) error
}

type DeviceWithVideoInput added in v0.3.9

type DeviceWithVideoInput interface {
	GetVideoInputs(ctx context.Context) (map[string]string, error)
	SetVideoInput(ctx context.Context, output, input string) error
}

type DeviceWithVolume added in v0.3.9

type DeviceWithVolume interface {
	GetVolumes(ctx context.Context, blocks []string) (map[string]int, error)
	SetVolume(context.Context, string, int) error
}

type DriverClient added in v0.3.9

type DriverClient interface {
	GetCapabilities(ctx context.Context, in *DeviceInfo, opts ...grpc.CallOption) (*Capabilities, error)
	GetPower(ctx context.Context, in *DeviceInfo, opts ...grpc.CallOption) (*Power, error)
	SetPower(ctx context.Context, in *SetPowerRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	GetAudioInputs(ctx context.Context, in *DeviceInfo, opts ...grpc.CallOption) (*Inputs, error)
	SetAudioInput(ctx context.Context, in *SetInputRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	GetVideoInputs(ctx context.Context, in *DeviceInfo, opts ...grpc.CallOption) (*Inputs, error)
	SetVideoInput(ctx context.Context, in *SetInputRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	GetAudioVideoInputs(ctx context.Context, in *DeviceInfo, opts ...grpc.CallOption) (*Inputs, error)
	SetAudioVideoInput(ctx context.Context, in *SetInputRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	GetBlank(ctx context.Context, in *DeviceInfo, opts ...grpc.CallOption) (*Blank, error)
	SetBlank(ctx context.Context, in *SetBlankRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	GetVolumes(ctx context.Context, in *GetAudioInfo, opts ...grpc.CallOption) (*Volumes, error)
	SetVolume(ctx context.Context, in *SetVolumeRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	GetMutes(ctx context.Context, in *GetAudioInfo, opts ...grpc.CallOption) (*Mutes, error)
	SetMute(ctx context.Context, in *SetMuteRequest, opts ...grpc.CallOption) (*empty.Empty, error)
}

DriverClient is the client API for Driver service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewDriverClient added in v0.3.9

func NewDriverClient(cc grpc.ClientConnInterface) DriverClient

type DriverServer added in v0.3.9

type DriverServer interface {
	GetCapabilities(context.Context, *DeviceInfo) (*Capabilities, error)
	GetPower(context.Context, *DeviceInfo) (*Power, error)
	SetPower(context.Context, *SetPowerRequest) (*empty.Empty, error)
	GetAudioInputs(context.Context, *DeviceInfo) (*Inputs, error)
	SetAudioInput(context.Context, *SetInputRequest) (*empty.Empty, error)
	GetVideoInputs(context.Context, *DeviceInfo) (*Inputs, error)
	SetVideoInput(context.Context, *SetInputRequest) (*empty.Empty, error)
	GetAudioVideoInputs(context.Context, *DeviceInfo) (*Inputs, error)
	SetAudioVideoInput(context.Context, *SetInputRequest) (*empty.Empty, error)
	GetBlank(context.Context, *DeviceInfo) (*Blank, error)
	SetBlank(context.Context, *SetBlankRequest) (*empty.Empty, error)
	GetVolumes(context.Context, *GetAudioInfo) (*Volumes, error)
	SetVolume(context.Context, *SetVolumeRequest) (*empty.Empty, error)
	GetMutes(context.Context, *GetAudioInfo) (*Mutes, error)
	SetMute(context.Context, *SetMuteRequest) (*empty.Empty, error)
}

DriverServer is the server API for Driver service.

type GetAudioInfo added in v0.3.9

type GetAudioInfo struct {
	Info   *DeviceInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
	Blocks []string    `protobuf:"bytes,2,rep,name=blocks,proto3" json:"blocks,omitempty"`
	// contains filtered or unexported fields
}

func (*GetAudioInfo) Descriptor deprecated added in v0.3.9

func (*GetAudioInfo) Descriptor() ([]byte, []int)

Deprecated: Use GetAudioInfo.ProtoReflect.Descriptor instead.

func (*GetAudioInfo) GetBlocks added in v0.3.9

func (x *GetAudioInfo) GetBlocks() []string

func (*GetAudioInfo) GetInfo added in v0.3.9

func (x *GetAudioInfo) GetInfo() *DeviceInfo

func (*GetAudioInfo) ProtoMessage added in v0.3.9

func (*GetAudioInfo) ProtoMessage()

func (*GetAudioInfo) ProtoReflect added in v0.3.9

func (x *GetAudioInfo) ProtoReflect() protoreflect.Message

func (*GetAudioInfo) Reset added in v0.3.9

func (x *GetAudioInfo) Reset()

func (*GetAudioInfo) String added in v0.3.9

func (x *GetAudioInfo) String() string

type Inputs added in v0.3.9

type Inputs struct {
	Inputs map[string]string `` /* 153-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*Inputs) Descriptor deprecated added in v0.3.9

func (*Inputs) Descriptor() ([]byte, []int)

Deprecated: Use Inputs.ProtoReflect.Descriptor instead.

func (*Inputs) GetInputs added in v0.3.9

func (x *Inputs) GetInputs() map[string]string

func (*Inputs) ProtoMessage added in v0.3.9

func (*Inputs) ProtoMessage()

func (*Inputs) ProtoReflect added in v0.3.9

func (x *Inputs) ProtoReflect() protoreflect.Message

func (*Inputs) Reset added in v0.3.9

func (x *Inputs) Reset()

func (*Inputs) String added in v0.3.9

func (x *Inputs) String() string

type Mutes added in v0.3.9

type Mutes struct {
	Mutes map[string]bool `` /* 152-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*Mutes) Descriptor deprecated added in v0.3.9

func (*Mutes) Descriptor() ([]byte, []int)

Deprecated: Use Mutes.ProtoReflect.Descriptor instead.

func (*Mutes) GetMutes added in v0.3.9

func (x *Mutes) GetMutes() map[string]bool

func (*Mutes) ProtoMessage added in v0.3.9

func (*Mutes) ProtoMessage()

func (*Mutes) ProtoReflect added in v0.3.9

func (x *Mutes) ProtoReflect() protoreflect.Message

func (*Mutes) Reset added in v0.3.9

func (x *Mutes) Reset()

func (*Mutes) String added in v0.3.9

func (x *Mutes) String() string

type NewDeviceFunc added in v0.3.9

type NewDeviceFunc func(context.Context, string) (Device, error)

NewDeviceFunc is passed to NewServer and is called to create a new Device struct whenever the Server needs to control with a new Device.

type Power

type Power struct {
	On bool `protobuf:"varint,1,opt,name=on,proto3" json:"on,omitempty"`
	// contains filtered or unexported fields
}

func (*Power) Descriptor deprecated added in v0.3.9

func (*Power) Descriptor() ([]byte, []int)

Deprecated: Use Power.ProtoReflect.Descriptor instead.

func (*Power) GetOn added in v0.3.9

func (x *Power) GetOn() bool

func (*Power) ProtoMessage added in v0.3.9

func (*Power) ProtoMessage()

func (*Power) ProtoReflect added in v0.3.9

func (x *Power) ProtoReflect() protoreflect.Message

func (*Power) Reset added in v0.3.9

func (x *Power) Reset()

func (*Power) String added in v0.3.9

func (x *Power) String() string

type Server

type Server interface {
	Serve(lis net.Listener) error
	Stop(ctx context.Context) error
}

func NewServer added in v0.3.9

func NewServer(newDev NewDeviceFunc) (Server, error)

type SetBlankRequest added in v0.3.9

type SetBlankRequest struct {
	Info  *DeviceInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
	Blank *Blank      `protobuf:"bytes,2,opt,name=blank,proto3" json:"blank,omitempty"`
	// contains filtered or unexported fields
}

func (*SetBlankRequest) Descriptor deprecated added in v0.3.9

func (*SetBlankRequest) Descriptor() ([]byte, []int)

Deprecated: Use SetBlankRequest.ProtoReflect.Descriptor instead.

func (*SetBlankRequest) GetBlank added in v0.3.9

func (x *SetBlankRequest) GetBlank() *Blank

func (*SetBlankRequest) GetInfo added in v0.3.9

func (x *SetBlankRequest) GetInfo() *DeviceInfo

func (*SetBlankRequest) ProtoMessage added in v0.3.9

func (*SetBlankRequest) ProtoMessage()

func (*SetBlankRequest) ProtoReflect added in v0.3.9

func (x *SetBlankRequest) ProtoReflect() protoreflect.Message

func (*SetBlankRequest) Reset added in v0.3.9

func (x *SetBlankRequest) Reset()

func (*SetBlankRequest) String added in v0.3.9

func (x *SetBlankRequest) String() string

type SetInputRequest added in v0.3.9

type SetInputRequest struct {
	Info   *DeviceInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
	Output string      `protobuf:"bytes,2,opt,name=output,proto3" json:"output,omitempty"`
	Input  string      `protobuf:"bytes,3,opt,name=input,proto3" json:"input,omitempty"`
	// contains filtered or unexported fields
}

func (*SetInputRequest) Descriptor deprecated added in v0.3.9

func (*SetInputRequest) Descriptor() ([]byte, []int)

Deprecated: Use SetInputRequest.ProtoReflect.Descriptor instead.

func (*SetInputRequest) GetInfo added in v0.3.9

func (x *SetInputRequest) GetInfo() *DeviceInfo

func (*SetInputRequest) GetInput added in v0.3.9

func (x *SetInputRequest) GetInput() string

func (*SetInputRequest) GetOutput added in v0.3.9

func (x *SetInputRequest) GetOutput() string

func (*SetInputRequest) ProtoMessage added in v0.3.9

func (*SetInputRequest) ProtoMessage()

func (*SetInputRequest) ProtoReflect added in v0.3.9

func (x *SetInputRequest) ProtoReflect() protoreflect.Message

func (*SetInputRequest) Reset added in v0.3.9

func (x *SetInputRequest) Reset()

func (*SetInputRequest) String added in v0.3.9

func (x *SetInputRequest) String() string

type SetMuteRequest added in v0.3.9

type SetMuteRequest struct {
	Info  *DeviceInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
	Block string      `protobuf:"bytes,2,opt,name=block,proto3" json:"block,omitempty"`
	Muted bool        `protobuf:"varint,3,opt,name=muted,proto3" json:"muted,omitempty"`
	// contains filtered or unexported fields
}

func (*SetMuteRequest) Descriptor deprecated added in v0.3.9

func (*SetMuteRequest) Descriptor() ([]byte, []int)

Deprecated: Use SetMuteRequest.ProtoReflect.Descriptor instead.

func (*SetMuteRequest) GetBlock added in v0.3.9

func (x *SetMuteRequest) GetBlock() string

func (*SetMuteRequest) GetInfo added in v0.3.9

func (x *SetMuteRequest) GetInfo() *DeviceInfo

func (*SetMuteRequest) GetMuted added in v0.3.9

func (x *SetMuteRequest) GetMuted() bool

func (*SetMuteRequest) ProtoMessage added in v0.3.9

func (*SetMuteRequest) ProtoMessage()

func (*SetMuteRequest) ProtoReflect added in v0.3.9

func (x *SetMuteRequest) ProtoReflect() protoreflect.Message

func (*SetMuteRequest) Reset added in v0.3.9

func (x *SetMuteRequest) Reset()

func (*SetMuteRequest) String added in v0.3.9

func (x *SetMuteRequest) String() string

type SetPowerRequest added in v0.3.9

type SetPowerRequest struct {
	Info  *DeviceInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
	Power *Power      `protobuf:"bytes,2,opt,name=power,proto3" json:"power,omitempty"`
	// contains filtered or unexported fields
}

func (*SetPowerRequest) Descriptor deprecated added in v0.3.9

func (*SetPowerRequest) Descriptor() ([]byte, []int)

Deprecated: Use SetPowerRequest.ProtoReflect.Descriptor instead.

func (*SetPowerRequest) GetInfo added in v0.3.9

func (x *SetPowerRequest) GetInfo() *DeviceInfo

func (*SetPowerRequest) GetPower added in v0.3.9

func (x *SetPowerRequest) GetPower() *Power

func (*SetPowerRequest) ProtoMessage added in v0.3.9

func (*SetPowerRequest) ProtoMessage()

func (*SetPowerRequest) ProtoReflect added in v0.3.9

func (x *SetPowerRequest) ProtoReflect() protoreflect.Message

func (*SetPowerRequest) Reset added in v0.3.9

func (x *SetPowerRequest) Reset()

func (*SetPowerRequest) String added in v0.3.9

func (x *SetPowerRequest) String() string

type SetVolumeRequest added in v0.3.9

type SetVolumeRequest struct {
	Info  *DeviceInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
	Block string      `protobuf:"bytes,2,opt,name=block,proto3" json:"block,omitempty"`
	Level int32       `protobuf:"zigzag32,3,opt,name=level,proto3" json:"level,omitempty"`
	// contains filtered or unexported fields
}

func (*SetVolumeRequest) Descriptor deprecated added in v0.3.9

func (*SetVolumeRequest) Descriptor() ([]byte, []int)

Deprecated: Use SetVolumeRequest.ProtoReflect.Descriptor instead.

func (*SetVolumeRequest) GetBlock added in v0.3.9

func (x *SetVolumeRequest) GetBlock() string

func (*SetVolumeRequest) GetInfo added in v0.3.9

func (x *SetVolumeRequest) GetInfo() *DeviceInfo

func (*SetVolumeRequest) GetLevel added in v0.3.9

func (x *SetVolumeRequest) GetLevel() int32

func (*SetVolumeRequest) ProtoMessage added in v0.3.9

func (*SetVolumeRequest) ProtoMessage()

func (*SetVolumeRequest) ProtoReflect added in v0.3.9

func (x *SetVolumeRequest) ProtoReflect() protoreflect.Message

func (*SetVolumeRequest) Reset added in v0.3.9

func (x *SetVolumeRequest) Reset()

func (*SetVolumeRequest) String added in v0.3.9

func (x *SetVolumeRequest) String() string

type UnimplementedDriverServer added in v0.3.9

type UnimplementedDriverServer struct {
}

UnimplementedDriverServer can be embedded to have forward compatible implementations.

func (*UnimplementedDriverServer) GetAudioInputs added in v0.3.9

func (*UnimplementedDriverServer) GetAudioVideoInputs added in v0.3.9

func (*UnimplementedDriverServer) GetAudioVideoInputs(context.Context, *DeviceInfo) (*Inputs, error)

func (*UnimplementedDriverServer) GetBlank added in v0.3.9

func (*UnimplementedDriverServer) GetCapabilities added in v0.3.9

func (*UnimplementedDriverServer) GetMutes added in v0.3.9

func (*UnimplementedDriverServer) GetPower added in v0.3.9

func (*UnimplementedDriverServer) GetVideoInputs added in v0.3.9

func (*UnimplementedDriverServer) GetVolumes added in v0.3.9

func (*UnimplementedDriverServer) SetAudioInput added in v0.3.9

func (*UnimplementedDriverServer) SetAudioVideoInput added in v0.3.9

func (*UnimplementedDriverServer) SetBlank added in v0.3.9

func (*UnimplementedDriverServer) SetMute added in v0.3.9

func (*UnimplementedDriverServer) SetPower added in v0.3.9

func (*UnimplementedDriverServer) SetVideoInput added in v0.3.9

func (*UnimplementedDriverServer) SetVolume added in v0.3.9

type Volumes added in v0.3.9

type Volumes struct {
	Volumes map[string]int32 `` /* 158-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*Volumes) Descriptor deprecated added in v0.3.9

func (*Volumes) Descriptor() ([]byte, []int)

Deprecated: Use Volumes.ProtoReflect.Descriptor instead.

func (*Volumes) GetVolumes added in v0.3.9

func (x *Volumes) GetVolumes() map[string]int32

func (*Volumes) ProtoMessage added in v0.3.9

func (*Volumes) ProtoMessage()

func (*Volumes) ProtoReflect added in v0.3.9

func (x *Volumes) ProtoReflect() protoreflect.Message

func (*Volumes) Reset added in v0.3.9

func (x *Volumes) Reset()

func (*Volumes) String added in v0.3.9

func (x *Volumes) String() string

Directories

Path Synopsis
epson module
london module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL