diff --git a/engine/src/main.rs b/engine/src/main.rs index b123743..939ee01 100644 --- a/engine/src/main.rs +++ b/engine/src/main.rs @@ -1,7 +1,7 @@ mod audio_engine; use clap::Parser; -use lib::termix::audio_backend::{FILE_DESCRIPTOR_SET, audio_backend_server::{AudioBackend, AudioBackendServer}}; -use tonic::{transport::Server, Request, Response, Status}; +use lib::termix::audio_backend::{Backend, BackendList, FILE_DESCRIPTOR_SET, audio_backend_server::{AudioBackend, AudioBackendServer}}; +use tonic::{Request, Response, Result, Status, transport::Server}; use log::{debug, error, log_enabled, info, Level}; use tonic_reflection::server::v1::{ReflectionService, ServerReflection}; /// Simple program to greet a person @@ -17,7 +17,7 @@ pub struct TermixAudioBackend {} #[tonic::async_trait] impl AudioBackend for TermixAudioBackend { - async fn start_client(&self,request:tonic::Request<()>,) -> std::result::Result,tonic::Status> { + async fn start_client(&self,requesa:tonic::Request<()>,) -> std::result::Result,tonic::Status> { info!("starting the audio backend client"); todo!() } @@ -26,12 +26,23 @@ impl AudioBackend for TermixAudioBackend { info!("initializing the connection to the audio backend"); todo!() } + + async fn get_available_backends(&self, request:tonic::Request<()>) -> Result, tonic::Status> { + info!("discovering available backends"); + let mut response = BackendList::default(); + if cfg!(feature = "jack") { + response.backends.push(Backend{ name: "jack".to_string() }); + } + Ok(Response::new(response)) + } } + #[tokio::main] async fn main() -> Result<(), Box> { env_logger::init(); let args = Args::parse(); + // start_grpc_server() info!("starting the grpc server on port {}", args.grpc_port); let reflections = tonic_reflection::server::Builder::configure().register_encoded_file_descriptor_set(FILE_DESCRIPTOR_SET).build_v1().unwrap(); let addr = "[::1]:50051".parse()?;