syntax = "proto3";

package bluetooth.hal;

import "google/protobuf/empty.proto";
import "facade/common.proto";

service HciHalFacade {
  rpc SendHciResetCommand(google.protobuf.Empty) returns (google.protobuf.Empty) {}
  rpc SetLoopbackMode(LoopbackModeSettings) returns (google.protobuf.Empty) {}
  rpc SetInquiry(InquirySettings) returns (google.protobuf.Empty) {}
  rpc SendHciCommand(HciCommandPacket) returns (google.protobuf.Empty) {}
  rpc SendHciAcl(HciAclPacket) returns (google.protobuf.Empty) {}
  rpc SendHciSco(HciScoPacket) returns (google.protobuf.Empty) {}

  rpc FetchHciEvent(google.protobuf.Empty) returns (stream HciEventPacket) {}
  rpc FetchHciAcl(google.protobuf.Empty) returns (stream HciAclPacket) {}
  rpc FetchHciSco(google.protobuf.Empty) returns (stream HciScoPacket) {}
}

message LoopbackModeSettings {
  bool enable = 1;
}

message ScanModeSettings {
  uint32 mode = 1;
}

message InquirySettings {
  uint32 length = 1;
  uint32 num_responses = 2;
}

message HciEventPacket {
  bytes payload = 1;
}

message HciCommandPacket {
  bytes payload = 1;
}

message HciAclPacket {
  bytes payload = 1;
}

message HciScoPacket {
  bytes payload = 1;
}
