syntax = "proto2";
option optimize_for = LITE_RUNTIME;
package webrtc.audioproc;

// Contains the format of input/output/reverse audio. An Init message is added
// when any of the fields are changed.
message Init {
  optional int32 sample_rate = 1;
  optional int32 device_sample_rate = 2 [deprecated=true];
  optional int32 num_input_channels = 3;
  optional int32 num_output_channels = 4;
  optional int32 num_reverse_channels = 5;
  optional int32 reverse_sample_rate = 6;
  optional int32 output_sample_rate = 7;
  optional int32 reverse_output_sample_rate = 8;
  optional int32 num_reverse_output_channels = 9;
}

// May contain interleaved or deinterleaved data, but don't store both formats.
message ReverseStream {
  // int16 interleaved data.
  optional bytes data = 1;

  // float deinterleaved data, where each repeated element points to a single
  // channel buffer of data.
  repeated bytes channel = 2;
}

// May contain interleaved or deinterleaved data, but don't store both formats.
message Stream {
  // int16 interleaved data.
  optional bytes input_data = 1;
  optional bytes output_data = 2;

  optional int32 delay = 3;
  optional sint32 drift = 4;
  optional int32 level = 5;
  optional bool keypress = 6;

  // float deinterleaved data, where each repeated element points to a single
  // channel buffer of data.
  repeated bytes input_channel = 7;
  repeated bytes output_channel = 8;
}

// Contains the configurations of various APM component. A Config message is
// added when any of the fields are changed.
message Config {
  // Next field number 19.
  // Acoustic echo canceler.
  optional bool aec_enabled = 1;
  optional bool aec_delay_agnostic_enabled = 2;
  optional bool aec_drift_compensation_enabled = 3;
  optional bool aec_extended_filter_enabled = 4;
  optional int32 aec_suppression_level = 5;
  // Mobile AEC.
  optional bool aecm_enabled = 6;
  optional bool aecm_comfort_noise_enabled = 7;
  optional int32 aecm_routing_mode = 8;
  // Automatic gain controller.
  optional bool agc_enabled = 9;
  optional int32 agc_mode = 10;
  optional bool agc_limiter_enabled = 11;
  optional bool noise_robust_agc_enabled = 12;
  // High pass filter.
  optional bool hpf_enabled = 13;
  // Noise suppression.
  optional bool ns_enabled = 14;
  optional int32 ns_level = 15;
  // Transient suppression.
  optional bool transient_suppression_enabled = 16;
  // Semicolon-separated string containing experimental feature
  // descriptions.
  optional string experiments_description = 17;
  // Intelligibility Enhancer
  optional bool intelligibility_enhancer_enabled = 18;
}

message Event {
  enum Type {
    INIT = 0;
    REVERSE_STREAM = 1;
    STREAM = 2;
    CONFIG = 3;
    UNKNOWN_EVENT = 4;
  }

  required Type type = 1;

  optional Init init = 2;
  optional ReverseStream reverse_stream = 3;
  optional Stream stream = 4;
  optional Config config = 5;
}
