aboutsummaryrefslogtreecommitdiff
path: root/proto
diff options
context:
space:
mode:
Diffstat (limited to 'proto')
m---------proto0
-rw-r--r--proto/blueberry/a2dp.proto237
-rw-r--r--proto/blueberry/host.proto101
3 files changed, 0 insertions, 338 deletions
diff --git a/proto b/proto
new file mode 160000
+Subproject 05cd39cf98b3fdc14699316c69cdaf8e496ee06
diff --git a/proto/blueberry/a2dp.proto b/proto/blueberry/a2dp.proto
deleted file mode 100644
index a5e1b1a..0000000
--- a/proto/blueberry/a2dp.proto
+++ /dev/null
@@ -1,237 +0,0 @@
-syntax = "proto3";
-
-package blueberry;
-
-import "blueberry/host.proto";
-import "google/protobuf/wrappers.proto";
-
-// Service to trigger A2DP (Advanced Audio Distribution Profile) procedures.
-//
-// Requirement for the implementor:
-// - Streams must not be automaticaly opened, even if discovered.
-// - The `Host` service should be implemented
-//
-// References:
-// - [A2DP] Bluetooth SIG, Specification of the Bluetooth System,
-// Advanced Audio Distribution, Version 1.3 or Later
-// - [AVDTP] Bluetooth SIG, Specification of the Bluetooth System,
-// Audio/Video Distribution Transport Protocol, Version 1.3 or Later
-service A2DP {
- // Open a stream from a local **Source** endpoint to a remote **Sink**
- // endpoint.
- //
- // The returned source should be in the AVDTP_OPEN state (see [AVDTP] 9.1).
- // The function must block until the stream has reached this state
- //
- // A cancellation of this call must result in aborting the current
- // AVDTP procedure (see [AVDTP] 9.9)
- rpc OpenSource(OpenSourceRequest) returns (OpenSourceResponse);
- // Open a stream from a local **Sink** endpoint to a remote **Source**
- // endpoint.
- //
- // The returned sink must be in the AVDTP_OPEN state (see [AVDTP] 9.1).
- // The function must block until the stream has reached this state
- //
- // A cancellation of this call must result in aborting the current
- // AVDTP procedure (see [AVDTP] 9.9)
- rpc OpenSink(OpenSinkRequest) returns (OpenSinkResponse);
- // Wait for a stream from a local **Source** endpoint to
- // a remote **Sink** endpoint to open.
- //
- // If the peer has opened a source prior to this call, the server will
- // return it. The server must return the same source only once.
- rpc WaitSource(WaitSourceRequest) returns (WaitSourceResponse);
- // Wait for a stream from a local **Sink** endpoint to
- // a remote **Source** endpoint to open.
- //
- // If the peer has opened a sink prior to this call, the server will
- // return it. The server must return the same sink only once.
- rpc WaitSink(WaitSinkRequest) returns (WaitSinkResponse);
- // Get if the stream is suspended
- rpc IsSuspended(IsSuspendedRequest) returns (google.protobuf.BoolValue);
- // Start a suspended stream.
- rpc Start(StartRequest) returns (StartResponse);
- // Suspend a started stream.
- rpc Suspend(SuspendRequest) returns (SuspendResponse);
- // Close a stream, the source or sink tokens must not be reused afterwards.
- rpc Close(CloseRequest) returns (CloseResponse);
- // Get the `AudioEncoding` value of a stream
- rpc GetAudioEncoding(GetAudioEncodingRequest) returns (GetAudioEncodingResponse);
- // Playback audio by a `Source`
- rpc PlaybackAudio(stream PlaybackAudioRequest) returns (PlaybackAudioResponse);
- // Capture audio from a `Sink`
- rpc CaptureAudio(CaptureAudioRequest)returns (stream CaptureAudioResponse);
-}
-
-// Audio encoding formats.
-enum AudioEncoding {
- // Interleaved stereo frames with 16-bit signed little-endian linear PCM
- // samples at 44100Hz sample rate
- PCM_S16_LE_44K1_STEREO = 0;
- // Interleaved stereo frames with 16-bit signed little-endian linear PCM
- // samples at 48000Hz sample rate
- PCM_S16_LE_48K_STEREO = 1;
-}
-
-// A Token representing a Source stream (see [A2DP] 2.2).
-// It's acquired via an OpenSource on the A2DP service.
-message Source {
- // Opaque value filled by the GRPC server, must not
- // be modified nor crafted.
- bytes cookie = 1;
-}
-
-// A Token representing a Sink stream (see [A2DP] 2.2).
-// It's acquired via an OpenSink on the A2DP service.
-message Sink {
- // Opaque value filled by the GRPC server, must not
- // be modified nor crafted.
- bytes cookie = 1;
-}
-
-// Request for the `OpenSource` method.
-message OpenSourceRequest {
- // The connection that will open the stream.
- Connection connection = 1;
-}
-
-// Response for the `OpenSource` method.
-message OpenSourceResponse {
- // Result of the `OpenSource` call:
- // - If successfull: a Source
- oneof result {
- Source source = 1;
- }
-}
-
-// Request for the `OpenSink` method.
-message OpenSinkRequest {
- // The connection that will open the stream.
- Connection connection = 1;
-}
-
-// Response for the `OpenSink` method.
-message OpenSinkResponse {
- // Result of the `OpenSink` call:
- // - If successfull: a Sink
- oneof result {
- Sink sink = 1;
- }
-}
-
-// Request for the `WaitSource` method.
-message WaitSourceRequest {
- // The connection that is awaiting the stream.
- Connection connection = 1;
-}
-
-// Response for the `WaitSource` method.
-message WaitSourceResponse {
- // Result of the `WaitSource` call:
- // - If successfull: a Source
- oneof result {
- Source source = 1;
- }
-}
-
-// Request for the `WaitSink` method.
-message WaitSinkRequest {
- // The connection that is awaiting the stream.
- Connection connection = 1;
-}
-
-// Response for the `WaitSink` method.
-message WaitSinkResponse {
- // Result of the `WaitSink` call:
- // - If successfull: a Sink
- oneof result {
- Sink sink = 1;
- }
-}
-
-// Request for the `IsSuspended` method.
-message IsSuspendedRequest {
- // The stream on which the function will check if it's suspended
- oneof target {
- Sink sink = 1;
- Source source = 2;
- }
-}
-
-// Request for the `Start` method.
-message StartRequest {
- // Target of the start, either a Sink or a Source.
- oneof target {
- Sink sink = 1;
- Source source = 2;
- }
-}
-
-// Response for the `Start` method.
-message StartResponse {}
-
-// Request for the `Suspend` method.
-message SuspendRequest {
- // Target of the suspend, either a Sink or a Source.
- oneof target {
- Sink sink = 1;
- Source source = 2;
- }
-}
-
-// Response for the `Suspend` method.
-message SuspendResponse {}
-
-// Request for the `Close` method.
-message CloseRequest {
- // Target of the close, either a Sink or a Source.
- oneof target {
- Sink sink = 1;
- Source source = 2;
- }
-}
-
-// Response for the `Close` method.
-message CloseResponse {}
-
-// Request for the `GetAudioEncoding` method.
-message GetAudioEncodingRequest {
- // The stream on which the function will read the `AudioEncoding`.
- oneof target {
- Sink sink = 1;
- Source source = 2;
- }
-}
-
-// Response for the `GetAudioEncoding` method.
-message GetAudioEncodingResponse {
- // Audio encoding of the stream.
- AudioEncoding encoding = 1;
-}
-
-// Request for the `PlaybackAudio` method.
-message PlaybackAudioRequest {
- // Source that will playback audio.
- Source source = 1;
- // Audio data to playback.
- // The audio data must be encoded in the specified `AudioEncoding` value
- // obtained in response of a `GetAudioEncoding` method call.
- bytes data = 2;
-}
-
-// Response for the `PlaybackAudio` method.
-message PlaybackAudioResponse {}
-
-// Request for the `CaptureAudio` method.
-message CaptureAudioRequest {
- // Sink that will capture audio
- Sink sink = 1;
-}
-
-// Response for the `CaptureAudio` method.
-message CaptureAudioResponse {
- // Captured audio data.
- // The audio data is encoded in the specified `AudioEncoding` value
- // obained in response of a `GetAudioEncoding` method call.
- bytes data = 1;
-}
diff --git a/proto/blueberry/host.proto b/proto/blueberry/host.proto
deleted file mode 100644
index bf80ab9..0000000
--- a/proto/blueberry/host.proto
+++ /dev/null
@@ -1,101 +0,0 @@
-syntax = "proto3";
-
-package blueberry;
-
-import "google/protobuf/empty.proto";
-
-// Service to trigger Bluetooth Host procedures
-//
-// At startup, the Host must be in BR/EDR connectable mode
-// (see GAP connectability modes)
-service Host {
- // Reset the host.
- // **After** responding to this command, the GRPC server should loose
- // all its state.
- // This is comparable to a process restart or an hardware reset.
- // The GRPC server might take some time to be available after
- // this command.
- rpc Reset(google.protobuf.Empty) returns (google.protobuf.Empty);
- // Create an ACL BR/EDR connection to a peer.
- // This should send a CreateConnection on the HCI level.
- // If the two devices have not established a previous bond,
- // the peer must be discoverable.
- rpc Connect(ConnectRequest) returns (ConnectResponse);
- // Get an active ACL BR/EDR connection to a peer.
- rpc GetConnection(GetConnectionRequest) returns (GetConnectionResponse);
- // Wait for an ACL BR/EDR connection from a peer.
- rpc WaitConnection(WaitConnectionRequest) returns (WaitConnectionResponse);
- // Disconnect an ACL BR/EDR connection. The Connection must not be reused afterwards.
- rpc Disconnect(DisconnectRequest) returns (DisconnectResponse);
- // Read the local Bluetooth device address.
- // This should return the same value as a Read BD_ADDR HCI command.
- rpc ReadLocalAddress(google.protobuf.Empty) returns (ReadLocalAddressResponse);
-}
-
-// A Token representing an ACL connection.
-// It's acquired via a Connect on the Host service.
-message Connection {
- // Opaque value filled by the GRPC server, must not
- // be modified nor crafted.
- bytes cookie = 1;
-}
-
-// Request of the `Connect` method.
-message ConnectRequest {
- // Peer Bluetooth Device Address as array of 6 bytes.
- bytes address = 1;
-}
-
-// Response of the `Connect` method.
-message ConnectResponse {
- // Result of the `Connect` call:
- // - If successfull: a Connection
- oneof result {
- Connection connection = 1;
- }
-}
-
-// Request of the `GetConnection` method.
-message GetConnectionRequest {
- // Peer Bluetooth Device Address as array of 6 bytes.
- bytes address = 1;
-}
-
-// Response of the `GetConnection` method.
-message GetConnectionResponse {
- // Result of the `GetConnection` call:
- // - If successfull: a Connection
- oneof result {
- Connection connection = 1;
- }
-}
-
-// Request of the `WaitConnection` method.
-message WaitConnectionRequest {
- // Peer Bluetooth Device Address as array of 6 bytes.
- bytes address = 1;
-}
-
-// Response of the `WaitConnection` method.
-message WaitConnectionResponse {
- // Result of the `WaitConnection` call:
- // - If successfull: a Connection
- oneof result {
- Connection connection = 1;
- }
-}
-
-// Request of the `Disconnect` method.
-message DisconnectRequest {
- // Connection that should be disconnected.
- Connection connection = 1;
-}
-
-// Response of the `Disconnect` method.
-message DisconnectResponse {}
-
-// Response of the `ReadLocalAddress` method.
-message ReadLocalAddressResponse {
- // Local Bluetooth Device Address as array of 6 bytes.
- bytes address = 1;
-}