| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| /// Enum for supported audio commands. |
| pub enum AudioMethod { |
| PutInputAudio, |
| StartInputInjection, |
| StopInputInjection, |
| |
| StartOutputSave, |
| StopOutputSave, |
| GetOutputAudio, |
| |
| PlaySound, |
| } |
| |
| impl std::str::FromStr for AudioMethod { |
| type Err = anyhow::Error; |
| |
| fn from_str(method: &str) -> Result<Self, Self::Err> { |
| match method { |
| "PutInputAudio" => Ok(AudioMethod::PutInputAudio), |
| "StartInputInjection" => Ok(AudioMethod::StartInputInjection), |
| "StopInputInjection" => Ok(AudioMethod::StopInputInjection), |
| |
| "StartOutputSave" => Ok(AudioMethod::StartOutputSave), |
| "StopOutputSave" => Ok(AudioMethod::StopOutputSave), |
| "GetOutputAudio" => Ok(AudioMethod::GetOutputAudio), |
| "PlaySound" => Ok(AudioMethod::PlaySound), |
| _ => return Err(format_err!("invalid Audio Facade method: {}", method)), |
| } |
| } |
| } |