CanonCamera.js

import Camera from './Camera.js'
import { BASE_URL } from './Common.js'

/**
 * CanonCamera
 * @classdesc Convenience class for instantiating a Canon Camera Object.
 * Inherits all methods on the {@link Camera} class.
 * @extends Camera
 * @see {@link Camera}
 */
class CanonCamera extends Camera {
  /**
   * Instantiate a Canon Camera
   * @constructor
   * @param {string} [baseURL] - Protocol, domain, and port for the service.
   * @example
   * const camera = new CanonCamera()
   * const base64 = await camera.takePhoto({kind: 'base64'})
   */
  constructor (baseUrl = BASE_URL) {
    super('capture_camera_canon', baseUrl)
  }

  /**
   * Get detailed information about a specific camera
   *
   * @description Returns detailed information about a camera.
   *
   * @async
   * @method
   * @returns {object} Device info
   * @example
   * const info = await device.info()
   */
  async info (deviceOpt) {
    const device = await this.setupDevice(deviceOpt)
    return device.info()
  }
}

export default CanonCamera