Class: SonyCameraRemote::Discovery::DeviceMapper

Inherits:
Object
  • Object
show all
Defined in:
lib/sony_camera_remote/discovery/device_info.rb

Class Method Summary collapse

Class Method Details

.map(device_info) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/sony_camera_remote/discovery/device_info.rb', line 43

def map(device_info)
  if swadi_device_info = device_info['X_ScalarWebAPI_DeviceInfo']
    device = ScalarWebAPIDevice.new.tap do |swadi|
      swadi.version = swadi_device_info['X_ScalarWebAPI_Version']
      swadi.imaging_device = swadi_device_info['X_ScalarWebAPI_ImagingDevice']

      ScalarWebAPIServicesMapper.map(swadi_device_info['X_ScalarWebAPI_ServiceList']).each do |service|
        swadi.services[service.id] = service
      end
    end
  else
    device = Device.new
  end

  device.name = device_info['friendlyName']
  device.manufacturer = Manufacturer.new(device_info['manufacturer'], device_info['manufacturerURL'])
  device.model = Model.new(device_info['modelName'], device_info['modelDescription'], device_info['modelURL'])

  ServicesMapper.map(device_info['serviceList']).each do |service|
    device.services[service.id] = service
  end

  device
end