framesmith 0.1.0

A Rust library for controlling Samsung Frame TVs over the local network
Documentation
use std::future::Future;

use crate::Error;
use crate::protocol::art_response::ArtResponse;

pub(crate) trait FrameTvTransport: Send + Sync + 'static {
    fn send_art_request(
        &self,
        request_json: &str,
        wait_for_event: Option<&str>,
    ) -> impl Future<Output = Result<ArtResponse, Error>> + Send;

    fn send_remote_key(&self, key_code: &str) -> impl Future<Output = Result<(), Error>> + Send;

    fn upload_image(
        &self,
        image_data: &[u8],
        file_type: &str,
        matte_id: Option<&str>,
    ) -> impl Future<Output = Result<ArtResponse, Error>> + Send;

    fn download_thumbnail(
        &self,
        content_id: &str,
    ) -> impl Future<Output = Result<Vec<u8>, Error>> + Send;

    fn tv_display_size(&self) -> impl Future<Output = Result<(u32, u32), Error>> + Send;
}