// @file sns_remote_proc_state.proto
//
// Defines standard message types for the Remote Processor State sensor
//
// Copyright (c) 2017 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
syntax = "proto2";
import "nanopb.proto";
import "sns_std_type.proto";

// remote_proc_state sensor receives remote processor state 
// notifications and sends these notifications to its clients

// remote_proc_state Sensor Attribute Requirements:
// SNS_STD_SENSOR_ATTRID_NAME: "Remote Processor State"
// SNS_STD_SENSOR_ATTRID_TYPE: "remote_proc_state"
// SNS_STD_SENSOR_ATTRID_VENDOR: "QTI"

enum sns_remote_proc_state_msgid {
  option (nanopb_enumopt).long_names = false;

  // Uses message: sns_remote_proc_state_config
  // Config request to receive remote processor stat updates
  SNS_REMOTE_PROC_STATE_MSGID_SNS_REMOTE_PROC_STATE_CONFIG = 512;
  

  // Uses message: sns_remote_proc_state_event  
  // This event is generated when the remote_proc_state service
  // sends out the remote processor state change notification
  SNS_REMOTE_PROC_STATE_MSGID_SNS_REMOTE_PROC_STATE_EVENT = 1024;
}

// Remote processor state config request
// Note: Currently the only supported processor is Apps:
// SNS_STD_PROCESSOR_APSS
message sns_remote_proc_state_config
{
  // Requested processor type
  required sns_std_client_processor proc_type = 1;
}

// Supported processor state event types
enum sns_remote_proc_state_event_type
{
  option (nanopb_enumopt).long_names = false;

  // Processor is suspended
  SNS_REMOTE_PROC_STATE_SUSPEND = 0;
  
  // Processor is awake
  SNS_REMOTE_PROC_STATE_AWAKE = 1;
}

// Remote processor state event
message sns_remote_proc_state_event
{
  // Processor type whose state is updated
  required sns_std_client_processor proc_type = 1;

  // Event type with state of the processor
  required sns_remote_proc_state_event_type event_type = 2;
}
