framesmith 0.1.0

A Rust library for controlling Samsung Frame TVs over the local network
Documentation
use crate::Error;
use crate::types::{
    ArtImage, ArtImageThumbnail, DeviceInfo, DisplayBrightness, DisplayColorTemp, DisplayRotation,
    Matte, MotionSensitivity, MotionTimer, PhotoFilter, SlideshowConfig, UploadedArtImage,
};

pub(crate) trait FrameTvApi {
    // Art Image Queries
    fn get_uploaded_art_images(
        &self,
    ) -> impl std::future::Future<Output = Result<Vec<UploadedArtImage>, Error>> + Send;

    fn get_art_image_info(
        &self,
        content_id: &str,
    ) -> impl std::future::Future<Output = Result<UploadedArtImage, Error>> + Send;

    fn get_selected_art_image(
        &self,
    ) -> impl std::future::Future<Output = Result<UploadedArtImage, Error>> + Send;

    fn select_art_image_by_id(
        &self,
        content_id: &str,
    ) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    // Art Image Upload
    fn upload_art_image(
        &self,
        image: ArtImage,
    ) -> impl std::future::Future<Output = Result<UploadedArtImage, Error>> + Send;

    fn upload_and_select_art_image(
        &self,
        image: ArtImage,
    ) -> impl std::future::Future<Output = Result<UploadedArtImage, Error>> + Send;

    // Art Image Management
    fn delete_uploaded_art_images(
        &self,
        content_ids: &[&str],
    ) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    fn get_art_image_thumbnail(
        &self,
        content_id: &str,
    ) -> impl std::future::Future<Output = Result<ArtImageThumbnail, Error>> + Send;

    fn set_art_image_favorite(
        &self,
        content_id: &str,
        favorite: bool,
    ) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    fn get_available_mattes(
        &self,
    ) -> impl std::future::Future<Output = Result<Vec<Matte>, Error>> + Send;

    fn set_art_image_matte(
        &self,
        content_id: &str,
        matte_id: &str,
        portrait_matte_id: Option<&str>,
    ) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    fn get_available_photo_filters(
        &self,
    ) -> impl std::future::Future<Output = Result<Vec<PhotoFilter>, Error>> + Send;

    fn set_art_image_photo_filter(
        &self,
        content_id: &str,
        filter_id: &str,
    ) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    // Art Mode
    fn enable_artmode(&self) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    fn disable_artmode(&self) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    fn is_artmode_enabled(&self) -> impl std::future::Future<Output = Result<bool, Error>> + Send;

    // Slideshow
    fn enable_slideshow(
        &self,
        config: Option<SlideshowConfig>,
    ) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    fn disable_slideshow(&self) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    fn set_slideshow_config(
        &self,
        config: SlideshowConfig,
    ) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    fn is_slideshow_enabled(&self)
    -> impl std::future::Future<Output = Result<bool, Error>> + Send;

    fn get_slideshow_config(
        &self,
    ) -> impl std::future::Future<Output = Result<SlideshowConfig, Error>> + Send;

    // Display Settings
    fn set_display_brightness(
        &self,
        brightness: DisplayBrightness,
    ) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    fn set_display_color_temp(
        &self,
        color_temp: DisplayColorTemp,
    ) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    fn get_display_brightness(
        &self,
    ) -> impl std::future::Future<Output = Result<DisplayBrightness, Error>> + Send;

    fn get_display_color_temp(
        &self,
    ) -> impl std::future::Future<Output = Result<DisplayColorTemp, Error>> + Send;

    fn get_display_rotation(
        &self,
    ) -> impl std::future::Future<Output = Result<DisplayRotation, Error>> + Send;

    fn enable_auto_brightness(&self)
    -> impl std::future::Future<Output = Result<(), Error>> + Send;

    fn disable_auto_brightness(
        &self,
    ) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    fn set_motion_timer(
        &self,
        timer: MotionTimer,
    ) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    fn set_motion_sensitivity(
        &self,
        sensitivity: MotionSensitivity,
    ) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    // Remote Control
    fn press_remote_control_button(
        &self,
        button: crate::types::RemoteControlButton,
    ) -> impl std::future::Future<Output = Result<(), Error>> + Send;

    // Device Info
    fn get_device_info(
        &self,
    ) -> impl std::future::Future<Output = Result<DeviceInfo, Error>> + Send;
}