MCPcopy Create free account
hub / github.com/drosoCode/atvremote / handleData

Method handleData

pkg/v2/command/command.go:161–204  ·  view source on GitHub ↗

handle message from the android tv device

(raw []byte)

Source from the content-addressed store, hash-verified

159
160// handle message from the android tv device
161func (c *Command) handleData(raw []byte) {
162 data := pb.RemoteMessage{}
163 err := proto.Unmarshal(raw, &data)
164 if err != nil {
165 // ignore invalid protobuf messages
166 return
167 }
168
169 switch {
170 case data.RemoteSetActive != nil:
171 err = c.write(pb.RemoteMessage{
172 RemoteSetActive: &pb.RemoteSetActive{
173 Active: 622,
174 },
175 })
176 case data.RemotePingRequest != nil:
177 err = c.write(pb.RemoteMessage{
178 RemotePingResponse: &pb.RemotePingResponse{
179 Val1: data.RemotePingRequest.Val1,
180 },
181 })
182 case data.RemoteImeKeyInject != nil:
183 c.RemoteData.App.CurrentApp = data.RemoteImeKeyInject.AppInfo.AppPackage
184 c.RemoteData.App.UpdateDate = time.Now()
185 case data.RemoteStart != nil:
186 c.RemoteData.Powered.Powered = data.RemoteStart.Started
187 c.RemoteData.Powered.UpdateDate = time.Now()
188 case data.RemoteSetVolumeLevel != nil:
189 c.RemoteData.Volume.Level = data.RemoteSetVolumeLevel.VolumeLevel
190 c.RemoteData.Volume.Maximum = data.RemoteSetVolumeLevel.VolumeMax
191 c.RemoteData.Volume.Muted = data.RemoteSetVolumeLevel.VolumeMuted
192 c.RemoteData.Volume.PlayerModel = data.RemoteSetVolumeLevel.PlayerModel
193 c.RemoteData.Volume.UpdateDate = time.Now()
194 case data.RemoteConfigure != nil:
195 c.RemoteData.Device.Model = data.RemoteConfigure.DeviceInfo.Model
196 c.RemoteData.Device.Vendor = data.RemoteConfigure.DeviceInfo.Vendor
197 c.RemoteData.Device.Version = data.RemoteConfigure.DeviceInfo.AppVersion
198 c.RemoteData.Device.UpdateDate = time.Now()
199 }
200
201 if err != nil {
202 c.Error = err
203 }
204}
205
206// Return informations on the current android tv device
207func (c *Command) GetData() (RemoteData, error) {

Callers 1

processDataMethod · 0.95

Calls 1

writeMethod · 0.95

Tested by

no test coverage detected