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

#ifndef PROTOBUF_C_usb_5fmsg_2eproto__INCLUDED
#define PROTOBUF_C_usb_5fmsg_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_info.pb-c.h"
#include "firmware_update.pb-c.h"
#include "crash_info.pb-c.h"
#include "device_mode.pb-c.h"
#include "device_attestation.pb-c.h"
#include "rightsight.pb-c.h"
#include "ota_manifest.pb-c.h"
#include "device_time.pb-c.h"
#include "ble_cfg.pb-c.h"
#include "antiflicker.pb-c.h"
#include "device_request.pb-c.h"

typedef struct Logi__Device__Proto__Header Logi__Device__Proto__Header;
typedef struct Logi__Device__Proto__Acknowledge Logi__Device__Proto__Acknowledge;
typedef struct Logi__Device__Proto__KongEvent Logi__Device__Proto__KongEvent;
typedef struct Logi__Device__Proto__HandshakeEvent Logi__Device__Proto__HandshakeEvent;
typedef struct Logi__Device__Proto__UsbMsg Logi__Device__Proto__UsbMsg;
typedef struct Logi__Device__Proto__Request Logi__Device__Proto__Request;
typedef struct Logi__Device__Proto__Response Logi__Device__Proto__Response;
typedef struct Logi__Device__Proto__Event Logi__Device__Proto__Event;


/* --- enums --- */


/* --- messages --- */

/*
 **
 * Header message to be included in UsbMsg. This contains
 *  message metadata that aids in processing of messages
 */
struct  Logi__Device__Proto__Header
{
  ProtobufCMessage base;
  /*
   **
   * A unique id of the message. If responding after receiving
   * data, the value stored in this field should be used in the ack message msgId field
   */
  char *id;
  /*
   **
   * A timestamp indicating when the message was
   * sent. This is the number of milliseconds that have
   * elapsed since the epoch, in string format
   */
  char *timestamp;
};
#define LOGI__DEVICE__PROTO__HEADER__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&logi__device__proto__header__descriptor) \
, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string }


/*
 **
 * The Ack message.
 * This is to be included in UsbMsg
 */
struct  Logi__Device__Proto__Acknowledge
{
  ProtobufCMessage base;
  /*
   **
   * The message Id.  This should be the same value
   *  in UsbMsg.Header.id field
   */
  char *msgid;
  /*
   **
   * The message processing result.  true indicates message was
   * successfully processed, false otherwise.
   */
  protobuf_c_boolean success;
};
#define LOGI__DEVICE__PROTO__ACKNOWLEDGE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&logi__device__proto__acknowledge__descriptor) \
, (char *)protobuf_c_empty_string, 0 }


/*
 **
 * The Kong Event message.
 *  Anything that is not part of
 *   Request/Response messaging, but is being sent to mqtt distributor
 *   should be considered as a KongEvent, and forwarded to device host.
 * This is to be included in UsbMsg
 */
struct  Logi__Device__Proto__KongEvent
{
  ProtobufCMessage base;
  /*
   **
   * mqtt_event contains actual mqtt message
   */
  char *mqtt_event;
};
#define LOGI__DEVICE__PROTO__KONG_EVENT__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&logi__device__proto__kong_event__descriptor) \
, (char *)protobuf_c_empty_string }


/*
 **
 * Sent by Kong sync-agent.
 * If Kong sync-agent starts-up and it is in Device mode, then
 * it can send this event.  When PC sync-agent receives this event,
 * it should send a TransitionToDeviceModeRequest.
 * This is to be included in UsbMsg
 */
struct  Logi__Device__Proto__HandshakeEvent
{
  ProtobufCMessage base;
  /*
   **
   * Unused. Reserved for future use.
   */
  protobuf_c_boolean reserved;
};
#define LOGI__DEVICE__PROTO__HANDSHAKE_EVENT__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&logi__device__proto__handshake_event__descriptor) \
, 0 }


typedef enum {
  LOGI__DEVICE__PROTO__USB_MSG__MESSAGE__NOT_SET = 0,
  LOGI__DEVICE__PROTO__USB_MSG__MESSAGE_ACK = 2,
  LOGI__DEVICE__PROTO__USB_MSG__MESSAGE_REQUEST = 3,
  LOGI__DEVICE__PROTO__USB_MSG__MESSAGE_RESPONSE = 4,
  LOGI__DEVICE__PROTO__USB_MSG__MESSAGE_EVENT = 5
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(LOGI__DEVICE__PROTO__USB_MSG__MESSAGE__CASE)
} Logi__Device__Proto__UsbMsg__MessageCase;

/*
 **
 * The enclosing message.
 * This is the root message of all messagesszx
 */
struct  Logi__Device__Proto__UsbMsg
{
  ProtobufCMessage base;
  /*
   **
   * Header for the message containing additional
   * message metadata.
   */
  Logi__Device__Proto__Header *header;
  Logi__Device__Proto__UsbMsg__MessageCase message_case;
  union {
    /*
     **
     * Ack message
     */
    Logi__Device__Proto__Acknowledge *ack;
    /*
     **
     * Request message
     */
    Logi__Device__Proto__Request *request;
    /*
     **
     * Response message
     */
    Logi__Device__Proto__Response *response;
    /*
     **
     * Event
     */
    Logi__Device__Proto__Event *event;
  };
};
#define LOGI__DEVICE__PROTO__USB_MSG__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&logi__device__proto__usb_msg__descriptor) \
, NULL, LOGI__DEVICE__PROTO__USB_MSG__MESSAGE__NOT_SET, {0} }


typedef enum {
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD__NOT_SET = 0,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_GET_DEVICE_INFO_REQUEST = 2,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_UPDATE_NOW_REQUEST = 3,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_CRASH_DUMP_REQUEST = 4,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_TRANSITION_TO_DEVICEMODE_REQUEST = 5,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_GET_CERTIFICATE_CHAIN_REQUEST = 6,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_SET_RIGHT_SIGHT_CONFIGURATION_REQUEST = 7,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_GET_MANIFEST_BODY_REQUEST = 8,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_CRASH_DUMP_REQUEST_V2 = 9,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_SET_DEVICE_TIME_REQUEST = 10,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_SET_ANTI_FLICKER_CONFIGURATION_REQUEST = 11,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_SET_BLE_CFG_REQUEST = 12,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_SET_DEPROVISION_REQUEST = 13,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_REBOOT_DEVICE_REQUEST = 14,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_SPEAKER_BOOST_REQUEST = 15,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_NOISE_REDUCTION_REQUEST = 16,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_REVERB_MODE_REQUEST = 17,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_GENERATE_BUG_REPORT_REQUEST = 18,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_SEND_CERTIFICATE_DATA_REQUEST = 19,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_MIC_EQ_MODE_REQUEST = 20,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_SPEAKER_EQ_MODE_REQUEST = 21,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_FORGET_REQUEST = 22,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_SET_RIGHTSIGHT_CONFIGURATION_REQUEST_V2 = 23,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_SEND_TEST_RESULT_REQUEST = 24,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_GET_MEMFAULT_MANIFEST_REQUEST = 25,
  LOGI__DEVICE__PROTO__REQUEST__PAYLOAD_SEND_MEMFAULT_SETTINGS_REQUEST = 26
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(LOGI__DEVICE__PROTO__REQUEST__PAYLOAD__CASE)
} Logi__Device__Proto__Request__PayloadCase;

/*
 **
 * The Request message.
 * This is to be included in UsbMsg
 */
struct  Logi__Device__Proto__Request
{
  ProtobufCMessage base;
  Logi__Device__Proto__Request__PayloadCase payload_case;
  union {
    Logi__Device__Proto__GetDeviceInfoRequest *get_device_info_request;
    Logi__Device__Proto__UpdateNowRequest *update_now_request;
    Logi__Device__Proto__SendCrashDumpRequest *crash_dump_request;
    Logi__Device__Proto__TransitionToDeviceModeRequest *transition_to_devicemode_request;
    Logi__Device__Proto__GetCertificateChainRequest *get_certificate_chain_request;
    Logi__Device__Proto__SetRightSightConfigurationRequest *set_right_sight_configuration_request;
    Logi__Device__Proto__GetManifestBodyRequest *get_manifest_body_request;
    Logi__Device__Proto__SendCrashDumpRequestv2 *crash_dump_request_v2;
    Logi__Device__Proto__SetDeviceTimeRequest *set_device_time_request;
    Logi__Device__Proto__SetAntiFlickerConfigurationRequest *set_anti_flicker_configuration_request;
    Logi__Device__Proto__SetBLECfgRequest *set_ble_cfg_request;
    Logi__Device__Proto__SetDeprovisionRequest *set_deprovision_request;
    Logi__Device__Proto__RebootDeviceRequest *reboot_device_request;
    Logi__Device__Proto__SetSpeakerBoostRequest *speaker_boost_request;
    Logi__Device__Proto__SetNoiseReductionRequest *noise_reduction_request;
    Logi__Device__Proto__SetReverbModeRequest *reverb_mode_request;
    Logi__Device__Proto__GenerateCrashDumpRequest *generate_bug_report_request;
    Logi__Device__Proto__SendCertificateDataRequest *send_certificate_data_request;
    Logi__Device__Proto__SetMicEQModeRequest *mic_eq_mode_request;
    Logi__Device__Proto__SetSpeakerEQModeRequest *speaker_eq_mode_request;
    Logi__Device__Proto__ForgetDeviceRequest *forget_request;
    Logi__Device__Proto__SetRightSightConfigurationRequestv2 *set_rightsight_configuration_request_v2;
    Logi__Device__Proto__SendTestResultRequest *send_test_result_request;
    Logi__Device__Proto__GetMemfaultManifestRequest *get_memfault_manifest_request;
    Logi__Device__Proto__SendMemfaultSettingsRequest *send_memfault_settings_request;
  };
};
#define LOGI__DEVICE__PROTO__REQUEST__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&logi__device__proto__request__descriptor) \
, LOGI__DEVICE__PROTO__REQUEST__PAYLOAD__NOT_SET, {0} }


typedef enum {
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD__NOT_SET = 0,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_GET_DEVICE_INFO_RESPONSE = 2,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_UPDATE_NOW_RESPONSE = 3,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_CRASH_DUMP_RESPONSE = 4,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_TRANSITION_TO_DEVICEMODE_RESPONSE = 5,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_GET_CERTIFICATE_CHAIN_RESPONSE = 6,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_SET_RIGHT_SIGHT_CONFIGURATION_RESPONSE = 7,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_GET_MANIFEST_BODY_RESPONSE = 8,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_CRASH_DUMP_RESPONSE_V2 = 9,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_SET_ANTI_FLICKER_CONFIGURATION_RESPONSE = 11,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_SET_BLE_CFG_RESPONSE = 12,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_SET_DEPROVISION_RESPONSE = 13,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_REBOOT_DEVICE_RESPONSE = 14,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_SPEAKER_BOOST_RESPONSE = 15,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_NOISE_REDUCTION_RESPONSE = 16,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_REVERB_MODE_RESPONSE = 17,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_GENERATE_BUG_REPORT_RESPONSE = 18,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_SEND_CERTIFICATE_DATA_RESPONSE = 19,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_MIC_EQ_RESPONSE = 20,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_SPEAKER_EQ_RESPONSE = 21,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_FORGET_RESPONSE = 22,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_SEND_TEST_RESULT_RESPONSE = 24,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_GET_MEMFAULT_MANIFEST_RESPONSE = 25,
  LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD_SEND_MEMFAULT_SETTINGS_RESPONSE = 26
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD__CASE)
} Logi__Device__Proto__Response__PayloadCase;

/*
 **
 * The Response message.
 * This is to be included in UsbMsg
 */
struct  Logi__Device__Proto__Response
{
  ProtobufCMessage base;
  Logi__Device__Proto__Response__PayloadCase payload_case;
  union {
    Logi__Device__Proto__GetDeviceInfoResponse *get_device_info_response;
    Logi__Device__Proto__UpdateNowResponse *update_now_response;
    Logi__Device__Proto__SendCrashDumpResponse *crash_dump_response;
    Logi__Device__Proto__TransitionToDeviceModeResponse *transition_to_devicemode_response;
    Logi__Device__Proto__GetCertificateChainResponse *get_certificate_chain_response;
    Logi__Device__Proto__SetRightSightConfigurationResponse *set_right_sight_configuration_response;
    Logi__Device__Proto__GetManifestBodyResponse *get_manifest_body_response;
    Logi__Device__Proto__SendCrashDumpResponsev2 *crash_dump_response_v2;
    Logi__Device__Proto__SetAntiFlickerConfigurationResponse *set_anti_flicker_configuration_response;
    Logi__Device__Proto__SetBLECfgResponse *set_ble_cfg_response;
    Logi__Device__Proto__SetDeprovisionResponse *set_deprovision_response;
    Logi__Device__Proto__RebootDeviceResponse *reboot_device_response;
    Logi__Device__Proto__SetSpeakerBoostResponse *speaker_boost_response;
    Logi__Device__Proto__SetNoiseReductionResponse *noise_reduction_response;
    Logi__Device__Proto__SetReverbModeResponse *reverb_mode_response;
    Logi__Device__Proto__GenerateCrashDumpResponse *generate_bug_report_response;
    Logi__Device__Proto__SendCertificateDataResponse *send_certificate_data_response;
    Logi__Device__Proto__SetMicEQModeResponse *mic_eq_response;
    Logi__Device__Proto__SetSpeakerEQModeResponse *speaker_eq_response;
    Logi__Device__Proto__ForgetDeviceResponse *forget_response;
    Logi__Device__Proto__SendTestResultResponse *send_test_result_response;
    Logi__Device__Proto__GetMemfaultManifestResponse *get_memfault_manifest_response;
    Logi__Device__Proto__SendMemfaultSettingsResponse *send_memfault_settings_response;
  };
};
#define LOGI__DEVICE__PROTO__RESPONSE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&logi__device__proto__response__descriptor) \
, LOGI__DEVICE__PROTO__RESPONSE__PAYLOAD__NOT_SET, {0} }


typedef enum {
  LOGI__DEVICE__PROTO__EVENT__PAYLOAD__NOT_SET = 0,
  LOGI__DEVICE__PROTO__EVENT__PAYLOAD_KONG_EVENT = 1,
  LOGI__DEVICE__PROTO__EVENT__PAYLOAD_SEND_CRASH_DUMP_EVENT = 2,
  LOGI__DEVICE__PROTO__EVENT__PAYLOAD_CRASH_DUMP_AVAILABLE_EVENT = 3,
  LOGI__DEVICE__PROTO__EVENT__PAYLOAD_HANDSHAKE_EVENT = 4,
  LOGI__DEVICE__PROTO__EVENT__PAYLOAD_INITIATE_MEMFAULT_MANIFEST_REQUEST_EVENT = 5
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(LOGI__DEVICE__PROTO__EVENT__PAYLOAD__CASE)
} Logi__Device__Proto__Event__PayloadCase;

/*
 **
 * The Event message.
 * This is to be included in UsbMsg
 */
struct  Logi__Device__Proto__Event
{
  ProtobufCMessage base;
  Logi__Device__Proto__Event__PayloadCase payload_case;
  union {
    Logi__Device__Proto__KongEvent *kong_event;
    Logi__Device__Proto__SendCrashDumpEvent *send_crash_dump_event;
    Logi__Device__Proto__CrashDumpAvailableEvent *crash_dump_available_event;
    Logi__Device__Proto__HandshakeEvent *handshake_event;
    Logi__Device__Proto__InitiateMemfaultManifestRequestEvent *initiate_memfault_manifest_request_event;
  };
};
#define LOGI__DEVICE__PROTO__EVENT__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&logi__device__proto__event__descriptor) \
, LOGI__DEVICE__PROTO__EVENT__PAYLOAD__NOT_SET, {0} }


/* Logi__Device__Proto__Header methods */
void   logi__device__proto__header__init
                     (Logi__Device__Proto__Header         *message);
size_t logi__device__proto__header__get_packed_size
                     (const Logi__Device__Proto__Header   *message);
size_t logi__device__proto__header__pack
                     (const Logi__Device__Proto__Header   *message,
                      uint8_t             *out);
size_t logi__device__proto__header__pack_to_buffer
                     (const Logi__Device__Proto__Header   *message,
                      ProtobufCBuffer     *buffer);
Logi__Device__Proto__Header *
       logi__device__proto__header__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   logi__device__proto__header__free_unpacked
                     (Logi__Device__Proto__Header *message,
                      ProtobufCAllocator *allocator);
/* Logi__Device__Proto__Acknowledge methods */
void   logi__device__proto__acknowledge__init
                     (Logi__Device__Proto__Acknowledge         *message);
size_t logi__device__proto__acknowledge__get_packed_size
                     (const Logi__Device__Proto__Acknowledge   *message);
size_t logi__device__proto__acknowledge__pack
                     (const Logi__Device__Proto__Acknowledge   *message,
                      uint8_t             *out);
size_t logi__device__proto__acknowledge__pack_to_buffer
                     (const Logi__Device__Proto__Acknowledge   *message,
                      ProtobufCBuffer     *buffer);
Logi__Device__Proto__Acknowledge *
       logi__device__proto__acknowledge__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   logi__device__proto__acknowledge__free_unpacked
                     (Logi__Device__Proto__Acknowledge *message,
                      ProtobufCAllocator *allocator);
/* Logi__Device__Proto__KongEvent methods */
void   logi__device__proto__kong_event__init
                     (Logi__Device__Proto__KongEvent         *message);
size_t logi__device__proto__kong_event__get_packed_size
                     (const Logi__Device__Proto__KongEvent   *message);
size_t logi__device__proto__kong_event__pack
                     (const Logi__Device__Proto__KongEvent   *message,
                      uint8_t             *out);
size_t logi__device__proto__kong_event__pack_to_buffer
                     (const Logi__Device__Proto__KongEvent   *message,
                      ProtobufCBuffer     *buffer);
Logi__Device__Proto__KongEvent *
       logi__device__proto__kong_event__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   logi__device__proto__kong_event__free_unpacked
                     (Logi__Device__Proto__KongEvent *message,
                      ProtobufCAllocator *allocator);
/* Logi__Device__Proto__HandshakeEvent methods */
void   logi__device__proto__handshake_event__init
                     (Logi__Device__Proto__HandshakeEvent         *message);
size_t logi__device__proto__handshake_event__get_packed_size
                     (const Logi__Device__Proto__HandshakeEvent   *message);
size_t logi__device__proto__handshake_event__pack
                     (const Logi__Device__Proto__HandshakeEvent   *message,
                      uint8_t             *out);
size_t logi__device__proto__handshake_event__pack_to_buffer
                     (const Logi__Device__Proto__HandshakeEvent   *message,
                      ProtobufCBuffer     *buffer);
Logi__Device__Proto__HandshakeEvent *
       logi__device__proto__handshake_event__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   logi__device__proto__handshake_event__free_unpacked
                     (Logi__Device__Proto__HandshakeEvent *message,
                      ProtobufCAllocator *allocator);
/* Logi__Device__Proto__UsbMsg methods */
void   logi__device__proto__usb_msg__init
                     (Logi__Device__Proto__UsbMsg         *message);
size_t logi__device__proto__usb_msg__get_packed_size
                     (const Logi__Device__Proto__UsbMsg   *message);
size_t logi__device__proto__usb_msg__pack
                     (const Logi__Device__Proto__UsbMsg   *message,
                      uint8_t             *out);
size_t logi__device__proto__usb_msg__pack_to_buffer
                     (const Logi__Device__Proto__UsbMsg   *message,
                      ProtobufCBuffer     *buffer);
Logi__Device__Proto__UsbMsg *
       logi__device__proto__usb_msg__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   logi__device__proto__usb_msg__free_unpacked
                     (Logi__Device__Proto__UsbMsg *message,
                      ProtobufCAllocator *allocator);
/* Logi__Device__Proto__Request methods */
void   logi__device__proto__request__init
                     (Logi__Device__Proto__Request         *message);
size_t logi__device__proto__request__get_packed_size
                     (const Logi__Device__Proto__Request   *message);
size_t logi__device__proto__request__pack
                     (const Logi__Device__Proto__Request   *message,
                      uint8_t             *out);
size_t logi__device__proto__request__pack_to_buffer
                     (const Logi__Device__Proto__Request   *message,
                      ProtobufCBuffer     *buffer);
Logi__Device__Proto__Request *
       logi__device__proto__request__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   logi__device__proto__request__free_unpacked
                     (Logi__Device__Proto__Request *message,
                      ProtobufCAllocator *allocator);
/* Logi__Device__Proto__Response methods */
void   logi__device__proto__response__init
                     (Logi__Device__Proto__Response         *message);
size_t logi__device__proto__response__get_packed_size
                     (const Logi__Device__Proto__Response   *message);
size_t logi__device__proto__response__pack
                     (const Logi__Device__Proto__Response   *message,
                      uint8_t             *out);
size_t logi__device__proto__response__pack_to_buffer
                     (const Logi__Device__Proto__Response   *message,
                      ProtobufCBuffer     *buffer);
Logi__Device__Proto__Response *
       logi__device__proto__response__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   logi__device__proto__response__free_unpacked
                     (Logi__Device__Proto__Response *message,
                      ProtobufCAllocator *allocator);
/* Logi__Device__Proto__Event methods */
void   logi__device__proto__event__init
                     (Logi__Device__Proto__Event         *message);
size_t logi__device__proto__event__get_packed_size
                     (const Logi__Device__Proto__Event   *message);
size_t logi__device__proto__event__pack
                     (const Logi__Device__Proto__Event   *message,
                      uint8_t             *out);
size_t logi__device__proto__event__pack_to_buffer
                     (const Logi__Device__Proto__Event   *message,
                      ProtobufCBuffer     *buffer);
Logi__Device__Proto__Event *
       logi__device__proto__event__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   logi__device__proto__event__free_unpacked
                     (Logi__Device__Proto__Event *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Logi__Device__Proto__Header_Closure)
                 (const Logi__Device__Proto__Header *message,
                  void *closure_data);
typedef void (*Logi__Device__Proto__Acknowledge_Closure)
                 (const Logi__Device__Proto__Acknowledge *message,
                  void *closure_data);
typedef void (*Logi__Device__Proto__KongEvent_Closure)
                 (const Logi__Device__Proto__KongEvent *message,
                  void *closure_data);
typedef void (*Logi__Device__Proto__HandshakeEvent_Closure)
                 (const Logi__Device__Proto__HandshakeEvent *message,
                  void *closure_data);
typedef void (*Logi__Device__Proto__UsbMsg_Closure)
                 (const Logi__Device__Proto__UsbMsg *message,
                  void *closure_data);
typedef void (*Logi__Device__Proto__Request_Closure)
                 (const Logi__Device__Proto__Request *message,
                  void *closure_data);
typedef void (*Logi__Device__Proto__Response_Closure)
                 (const Logi__Device__Proto__Response *message,
                  void *closure_data);
typedef void (*Logi__Device__Proto__Event_Closure)
                 (const Logi__Device__Proto__Event *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCMessageDescriptor logi__device__proto__header__descriptor;
extern const ProtobufCMessageDescriptor logi__device__proto__acknowledge__descriptor;
extern const ProtobufCMessageDescriptor logi__device__proto__kong_event__descriptor;
extern const ProtobufCMessageDescriptor logi__device__proto__handshake_event__descriptor;
extern const ProtobufCMessageDescriptor logi__device__proto__usb_msg__descriptor;
extern const ProtobufCMessageDescriptor logi__device__proto__request__descriptor;
extern const ProtobufCMessageDescriptor logi__device__proto__response__descriptor;
extern const ProtobufCMessageDescriptor logi__device__proto__event__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_usb_5fmsg_2eproto__INCLUDED */
