/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: rightsight.proto */

#ifndef PROTOBUF_C_rightsight_2eproto__INCLUDED
#define PROTOBUF_C_rightsight_2eproto__INCLUDED

#include <protobuf-c/protobuf-c.h>

PROTOBUF_C__BEGIN_DECLS

#if PROTOBUF_C_VERSION_NUMBER < 1003000
# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
#elif 1005000 < PROTOBUF_C_MIN_COMPILER_VERSION
# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
#endif

#include "device_common.pb-c.h"

typedef struct Logi__Device__Proto__RightSightConfiguration Logi__Device__Proto__RightSightConfiguration;
typedef struct Logi__Device__Proto__SetRightSightConfigurationRequest Logi__Device__Proto__SetRightSightConfigurationRequest;
typedef struct Logi__Device__Proto__SetRightSightConfigurationResponse Logi__Device__Proto__SetRightSightConfigurationResponse;
typedef struct Logi__Device__Proto__SetRightSightConfigurationRequestv2 Logi__Device__Proto__SetRightSightConfigurationRequestv2;


/* --- enums --- */

/*
 **
 * Enumeration of modes for speaker tracking.
 * For RightSight v2
 */
typedef enum _Logi__Device__Proto__RightSightConfiguration__SpeakerTrackingMode {
  /*
   **
   * This is the old rightsight that we know that uses
   * camera to track persons.  When selected, sub modes are
   * dynamic or call start.
   */
  LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__SPEAKER_TRACKING_MODE__GROUP_VIEW = 0,
  /*
   **
   * This does not indicate a default value.
   */
  LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__SPEAKER_TRACKING_MODE__SPEAKER_VIEW = 1,
  /*
   **
   * Grid view.   Valid when RightSight version=6
   */
  LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__SPEAKER_TRACKING_MODE__GRID_VIEW = 2
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__SPEAKER_TRACKING_MODE)
} Logi__Device__Proto__RightSightConfiguration__SpeakerTrackingMode;
/*
 **
 * Enumeration of speaker detection speed when in speaker view
 * For RightSight v2
 */
typedef enum _Logi__Device__Proto__RightSightConfiguration__SpeakerDetectionSpeed {
  LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__SPEAKER_DETECTION_SPEED__SLOW_SPEAKER_SPEED = 0,
  LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__SPEAKER_DETECTION_SPEED__DEFAULT_SPEAKER_SPEED = 1,
  LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__SPEAKER_DETECTION_SPEED__FAST_SPEAKER_SPEED = 2
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__SPEAKER_DETECTION_SPEED)
} Logi__Device__Proto__RightSightConfiguration__SpeakerDetectionSpeed;
/*
 **
 * Enumeration of frame speed when in group view
 * For RightSight v2
 */
typedef enum _Logi__Device__Proto__RightSightConfiguration__FramingSpeed {
  LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__FRAMING_SPEED__SLOW_FRAME_SPEED = 0,
  LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__FRAMING_SPEED__DEFAULT_FRAME_SPEED = 1,
  LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__FRAMING_SPEED__FAST_FRAME_SPEED = 2
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__FRAMING_SPEED)
} Logi__Device__Proto__RightSightConfiguration__FramingSpeed;
/*
 **
 * Enumeration of modes that the RightSight service can be in.
 */
typedef enum _Logi__Device__Proto__RightSightConfiguration__Mode {
  /*
   **
   * This does not indicate a default value.
   */
  LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__MODE__DO_NOT_USE = 0,
  /*
   **
   * The camera will continually pan, tilt, and zoom
   * to properly frame everyone during a meeting.
   */
  LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__MODE__DYNAMIC = 1,
  /*
   **
   * The camera will pan, tilt, and zoom to properly in
   * the meeting only when the call starts.
   */
  LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__MODE__ON_CALL_START = 2
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__MODE)
} Logi__Device__Proto__RightSightConfiguration__Mode;

/* --- messages --- */

/*
 **
 * This message data structure holds information about the
 * current RightSight configuration.
 * Note:
 * status = 0 = disabled/not working|1 = ok
 * 11/5/2021
 * Added modes to support RightSight 2
 */
struct  Logi__Device__Proto__RightSightConfiguration
{
  ProtobufCMessage base;
  /*
   **
   * (REQUIRED) If true, RightSight is enabled and active.
   */
  protobuf_c_boolean enabled;
  /*
   **
   * (REQUIRED) The current mode that RightSight is in.
   */
  Logi__Device__Proto__RightSightConfiguration__Mode mode;
  /*
   **
   * (REQUIRED) A timestamp indicating when the RightSight
   * settings were last modified. This is the number of
   * milliseconds since the epoch.
   */
  uint64_t last_modified;
  /*
   **
   * (OPTIONAL) The tracking mode.
   * For RightSight v2
   */
  Logi__Device__Proto__RightSightConfiguration__SpeakerTrackingMode trackingmode;
  /*
   **
   * (OPTIONAL) Valid when tracking mode is set to speaker view. Indicate if pip is
   *   enabled or not.
   *  Valid if device report has version 2
   */
  protobuf_c_boolean pip;
  /*
   **
   * (OPTIONAL)
   *  Valid if trackingMode is speaker view
   * For RightSight v2
   */
  protobuf_c_boolean reducetransitions;
  /*
   **
   * (OPTIONAL)
   *  Valid if trackingMode is speaker view
   * For RightSight v2
   */
  Logi__Device__Proto__RightSightConfiguration__SpeakerDetectionSpeed speakerdetectionspeed;
  /*
   **
   * (DEPRECATED)
   * Frame speed value.
   * For RightSight v2
   */
  Logi__Device__Proto__RightSightConfiguration__FramingSpeed framingspeed;
  /*
   **
   * (OPTIONAL)
   * Group view frame speed value.
   * For RightSight v2
   */
  Logi__Device__Proto__RightSightConfiguration__FramingSpeed groupframingspeed;
  /*
   **
   * (OPTIONAL)
   * Speaker view frame speed value.
   * For RightSight v2
   */
  Logi__Device__Proto__RightSightConfiguration__FramingSpeed speakerframingspeed;
  /*
   **
   * (OPTIONAL)
   *  1. Valid when tracking mode is set to speaker view.
   *  2. Valid if device report has RS version 8 and Sight camera is connected.
   *  Indicate to use Sight camera in Speaker view
   * Possible values
   *-1 = DISABLED - For option to signify off, greyed out, unable to select
   *0 = OFF      -  is Off and able to toggle
   *1 = ON        -  is On and able to toggle
   */
  int32_t usesight;
  /*
   **
   * (OPTIONAL)
   *  Valid if device report has RS version 8 and Sight camera is connected.
   *  Intelligently switch between cameras to show the best view.
   * Possible values
   *-1 = DISABLED - For option to signify off, greyed out, unable to select
   *0 = OFF      -  is Off and able to toggle
   *1 = ON        -  is On and able to toggle
   */
  int32_t smartswitching;
};
#define LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&logi__device__proto__right_sight_configuration__descriptor) \
, 0, LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__MODE__DO_NOT_USE, 0, LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__SPEAKER_TRACKING_MODE__GROUP_VIEW, 0, 0, LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__SPEAKER_DETECTION_SPEED__SLOW_SPEAKER_SPEED, LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__FRAMING_SPEED__SLOW_FRAME_SPEED, LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__FRAMING_SPEED__SLOW_FRAME_SPEED, LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__FRAMING_SPEED__SLOW_FRAME_SPEED, 0, 0 }


/*
 **
 * RightSight is an auto-framing feature that is available in Kong.
 * With RightSight enabled, your device will automatically pan, tilt, and zoom
 * the camera lens in order to capture all meeting participants
 * within the image frame. This feature can be set to one of two
 * modes: dynamic and on call start. When in dynamic mode, the
 * device will actively pan, tilt, and zoom the camera lens when
 * appropriate in order to keep all participants in frame during
 * the entire course of the meeting. When in on call start mode,
 * the camera lens will pan, tilt, and zoom to capture everybody
 * in frame only when the meeting starts.
 * When RightSight is enabled, it is set
 * to dynamic mode by default.
 * This message requests that the RightSight configuration
 * settings be changed.
 * EXPECTED RESPONSE
 * SetRightSightConfigurationResponse
 * Note:  For RightSight v1
 */
struct  Logi__Device__Proto__SetRightSightConfigurationRequest
{
  ProtobufCMessage base;
  /*
   **
   * (REQUIRED) If true, requests that RightSight be
   * turned on. If false, indicates that
   * RightSight should be turned off.
   */
  protobuf_c_boolean enabled;
  /*
   **
   * (REQUIRED) The mode for RightSight to be in. A value is
   * required, but if none is provided, then this will
   * default to DYNAMIC mode.
   * If enabled is set to false, then this will effectively
   * do nothing as RightSight is turned off.
   */
  Logi__Device__Proto__RightSightConfiguration__Mode mode;
};
#define LOGI__DEVICE__PROTO__SET_RIGHT_SIGHT_CONFIGURATION_REQUEST__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&logi__device__proto__set_right_sight_configuration_request__descriptor) \
, 0, LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__MODE__DO_NOT_USE }


/*
 **
 * Response which contains the RightSight configuration that was
 * set as a result of the request.
 */
struct  Logi__Device__Proto__SetRightSightConfigurationResponse
{
  ProtobufCMessage base;
  /*
   **
   * (OPTIONAL) If any errors occurred while processing the
   * request, then this field should be set accordingly.
   */
  size_t n_errors;
  Logi__Device__Proto__Error **errors;
  /*
   **
   * (REQUIRED) The RightSight configuration that was set on
   * the product.
   */
  Logi__Device__Proto__RightSightConfiguration *right_sight_configuration;
};
#define LOGI__DEVICE__PROTO__SET_RIGHT_SIGHT_CONFIGURATION_RESPONSE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&logi__device__proto__set_right_sight_configuration_response__descriptor) \
, 0,NULL, NULL }


/*
 **
 * This message requests that the RightSight configuration
 * settings be changed.
 * After handling this request, the device should send the response and an updated device report.
 * EXPECTED RESPONSE
 * SetRightSightConfigurationResponse
 *Support
 *CollabOS 1.5:
 *RightSight 2
 *Group View
 *the only additional options will be the dynamic/on call start
 *Speed option not available in 1.5
 *Speaker view
 *only the additional option for picture in picture will be available
 *reduce transitions will not be available in 1.5
 *both speed options will not be available in 1.5
 *CollabOS 1.6 (version=3):
 *Speaker view
 *speaker detection
 *framing speed
 *Group View
 *framing speed
 *(version=4) separate framing speed variables for frame speed
 *speakerFramingSpeed
 *groupFramingSpeed
 * Note:  For RightSight v2
 */
struct  Logi__Device__Proto__SetRightSightConfigurationRequestv2
{
  ProtobufCMessage base;
  /*
   **
   * (REQUIRED) If true, requests that RightSight be
   * turned on. If false, indicates that
   * RightSight should be turned off.
   */
  protobuf_c_boolean enabled;
  /*
   **
   * (REQUIRED) The tracking mode for RightSight
   */
  Logi__Device__Proto__RightSightConfiguration__SpeakerTrackingMode trackingmode;
  /*
   **
   * (REQUIRED) The mode for RightSight to be in. A value is
   * required, but if none is provided, then this will
   * default to DYNAMIC mode.
   * Valid in Group view
   */
  Logi__Device__Proto__RightSightConfiguration__Mode mode;
  /*
   **
   * (OPTIONAL) Picture-in-picture.
   *  Valid in speaker view
   */
  protobuf_c_boolean pip;
  /*
   **
   * (OPTIONAL) Speaker detection speed
   *  Valid in speaker view
   */
  Logi__Device__Proto__RightSightConfiguration__SpeakerDetectionSpeed speakerdetectionspeed;
  /*
   **
   * DEPRECATED
   * (OPTIONAL) The framing speed.
   * value could be different based on tracking mode
   */
  Logi__Device__Proto__RightSightConfiguration__FramingSpeed framingspeed;
  /*
   **
   * (OPTIONAL) The group framing speed.
   */
  Logi__Device__Proto__RightSightConfiguration__FramingSpeed groupframingspeed;
  /*
   **
   * (OPTIONAL) The speaker framing speed.
   */
  Logi__Device__Proto__RightSightConfiguration__FramingSpeed speakerframingspeed;
  /*
   **
   * (OPTIONAL)
   *  1. Valid when tracking mode is set to speaker view.
   *  2. Valid if device report has RS version 8 and Sight camera is connected.
   *  Indicate to use Sight camera in Speaker view
   *  Note:
   *  1. Proto uses default values.  When device report comes in and this attribute does not
   *exists,
   *    int value DISABLED will be used.
   *  2. Incoming request may also contain DISABLED value.  Device can ignore if Sight is not
   *connected.
   *  3. Sync app UI will search for Sight peripheral device in report to show toggle or not
   * Possible values
   *-1 = DISABLED - For option to signify off, greyed out, unable to select
   *0 = OFF      -  is Off and able to toggle
   *1 = ON        -  is On and able to toggle
   */
  int32_t usesight;
  /*
   **
   * (OPTIONAL)
   *  Valid if device report has RS version 8 and Sight camera is connected.
   *  Intelligently switch between cameras to show the best view.
   *  Note: 03/29/23 Current design shows UI is grayed out, so value should be false by default
   *for now.
   *  Note:
   *  1. Proto uses default values.  When device report comes in and this attribute does not
   *exists,
   *    int value DISABLED will be used.
   *  2. Incoming request may also contain DISABLED value.  Device can ignore if Sight is not
   *connected.
   *  3. Sync app UI will search for Sight peripheral device in report to show toggle or not
   * Possible values
   *-1 = DISABLED - For option to signify off, greyed out, unable to select
   *0 = OFF      -  is Off and able to toggle
   *1 = ON        -  is On and able to toggle
   */
  int32_t smartswitching;
};
#define LOGI__DEVICE__PROTO__SET_RIGHT_SIGHT_CONFIGURATION_REQUESTV2__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&logi__device__proto__set_right_sight_configuration_requestv2__descriptor) \
, 0, LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__SPEAKER_TRACKING_MODE__GROUP_VIEW, LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__MODE__DO_NOT_USE, 0, LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__SPEAKER_DETECTION_SPEED__SLOW_SPEAKER_SPEED, LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__FRAMING_SPEED__SLOW_FRAME_SPEED, LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__FRAMING_SPEED__SLOW_FRAME_SPEED, LOGI__DEVICE__PROTO__RIGHT_SIGHT_CONFIGURATION__FRAMING_SPEED__SLOW_FRAME_SPEED, 0, 0 }


/* Logi__Device__Proto__RightSightConfiguration methods */
void   logi__device__proto__right_sight_configuration__init
                     (Logi__Device__Proto__RightSightConfiguration         *message);
size_t logi__device__proto__right_sight_configuration__get_packed_size
                     (const Logi__Device__Proto__RightSightConfiguration   *message);
size_t logi__device__proto__right_sight_configuration__pack
                     (const Logi__Device__Proto__RightSightConfiguration   *message,
                      uint8_t             *out);
size_t logi__device__proto__right_sight_configuration__pack_to_buffer
                     (const Logi__Device__Proto__RightSightConfiguration   *message,
                      ProtobufCBuffer     *buffer);
Logi__Device__Proto__RightSightConfiguration *
       logi__device__proto__right_sight_configuration__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   logi__device__proto__right_sight_configuration__free_unpacked
                     (Logi__Device__Proto__RightSightConfiguration *message,
                      ProtobufCAllocator *allocator);
/* Logi__Device__Proto__SetRightSightConfigurationRequest methods */
void   logi__device__proto__set_right_sight_configuration_request__init
                     (Logi__Device__Proto__SetRightSightConfigurationRequest         *message);
size_t logi__device__proto__set_right_sight_configuration_request__get_packed_size
                     (const Logi__Device__Proto__SetRightSightConfigurationRequest   *message);
size_t logi__device__proto__set_right_sight_configuration_request__pack
                     (const Logi__Device__Proto__SetRightSightConfigurationRequest   *message,
                      uint8_t             *out);
size_t logi__device__proto__set_right_sight_configuration_request__pack_to_buffer
                     (const Logi__Device__Proto__SetRightSightConfigurationRequest   *message,
                      ProtobufCBuffer     *buffer);
Logi__Device__Proto__SetRightSightConfigurationRequest *
       logi__device__proto__set_right_sight_configuration_request__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   logi__device__proto__set_right_sight_configuration_request__free_unpacked
                     (Logi__Device__Proto__SetRightSightConfigurationRequest *message,
                      ProtobufCAllocator *allocator);
/* Logi__Device__Proto__SetRightSightConfigurationResponse methods */
void   logi__device__proto__set_right_sight_configuration_response__init
                     (Logi__Device__Proto__SetRightSightConfigurationResponse         *message);
size_t logi__device__proto__set_right_sight_configuration_response__get_packed_size
                     (const Logi__Device__Proto__SetRightSightConfigurationResponse   *message);
size_t logi__device__proto__set_right_sight_configuration_response__pack
                     (const Logi__Device__Proto__SetRightSightConfigurationResponse   *message,
                      uint8_t             *out);
size_t logi__device__proto__set_right_sight_configuration_response__pack_to_buffer
                     (const Logi__Device__Proto__SetRightSightConfigurationResponse   *message,
                      ProtobufCBuffer     *buffer);
Logi__Device__Proto__SetRightSightConfigurationResponse *
       logi__device__proto__set_right_sight_configuration_response__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   logi__device__proto__set_right_sight_configuration_response__free_unpacked
                     (Logi__Device__Proto__SetRightSightConfigurationResponse *message,
                      ProtobufCAllocator *allocator);
/* Logi__Device__Proto__SetRightSightConfigurationRequestv2 methods */
void   logi__device__proto__set_right_sight_configuration_requestv2__init
                     (Logi__Device__Proto__SetRightSightConfigurationRequestv2         *message);
size_t logi__device__proto__set_right_sight_configuration_requestv2__get_packed_size
                     (const Logi__Device__Proto__SetRightSightConfigurationRequestv2   *message);
size_t logi__device__proto__set_right_sight_configuration_requestv2__pack
                     (const Logi__Device__Proto__SetRightSightConfigurationRequestv2   *message,
                      uint8_t             *out);
size_t logi__device__proto__set_right_sight_configuration_requestv2__pack_to_buffer
                     (const Logi__Device__Proto__SetRightSightConfigurationRequestv2   *message,
                      ProtobufCBuffer     *buffer);
Logi__Device__Proto__SetRightSightConfigurationRequestv2 *
       logi__device__proto__set_right_sight_configuration_requestv2__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   logi__device__proto__set_right_sight_configuration_requestv2__free_unpacked
                     (Logi__Device__Proto__SetRightSightConfigurationRequestv2 *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Logi__Device__Proto__RightSightConfiguration_Closure)
                 (const Logi__Device__Proto__RightSightConfiguration *message,
                  void *closure_data);
typedef void (*Logi__Device__Proto__SetRightSightConfigurationRequest_Closure)
                 (const Logi__Device__Proto__SetRightSightConfigurationRequest *message,
                  void *closure_data);
typedef void (*Logi__Device__Proto__SetRightSightConfigurationResponse_Closure)
                 (const Logi__Device__Proto__SetRightSightConfigurationResponse *message,
                  void *closure_data);
typedef void (*Logi__Device__Proto__SetRightSightConfigurationRequestv2_Closure)
                 (const Logi__Device__Proto__SetRightSightConfigurationRequestv2 *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCMessageDescriptor logi__device__proto__right_sight_configuration__descriptor;
extern const ProtobufCEnumDescriptor    logi__device__proto__right_sight_configuration__speaker_tracking_mode__descriptor;
extern const ProtobufCEnumDescriptor    logi__device__proto__right_sight_configuration__speaker_detection_speed__descriptor;
extern const ProtobufCEnumDescriptor    logi__device__proto__right_sight_configuration__framing_speed__descriptor;
extern const ProtobufCEnumDescriptor    logi__device__proto__right_sight_configuration__mode__descriptor;
extern const ProtobufCMessageDescriptor logi__device__proto__set_right_sight_configuration_request__descriptor;
extern const ProtobufCMessageDescriptor logi__device__proto__set_right_sight_configuration_response__descriptor;
extern const ProtobufCMessageDescriptor logi__device__proto__set_right_sight_configuration_requestv2__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_rightsight_2eproto__INCLUDED */
