2018-04-23 17:34:22 +00:00
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
2017-07-29 14:21:25 +00:00
// DO NOT EDIT
use ffi ;
2017-12-20 16:44:57 +00:00
use glib ;
2018-12-09 16:06:12 +00:00
use glib ::GString ;
2017-07-29 14:21:25 +00:00
use glib ::object ::IsA ;
use glib ::translate ::* ;
2018-03-15 08:39:12 +00:00
use std ;
2017-07-29 14:21:25 +00:00
use std ::ptr ;
glib_wrapper! {
2017-11-09 11:33:40 +00:00
pub struct Preset ( Object < ffi ::GstPreset , ffi ::GstPresetInterface > ) ;
2017-07-29 14:21:25 +00:00
match fn {
get_type = > | | ffi ::gst_preset_get_type ( ) ,
}
}
impl Preset {
2018-03-15 08:39:12 +00:00
pub fn get_app_dir ( ) -> Option < std ::path ::PathBuf > {
2017-07-29 14:21:25 +00:00
assert_initialized_main_thread! ( ) ;
unsafe {
from_glib_none ( ffi ::gst_preset_get_app_dir ( ) )
}
}
2018-03-15 08:39:12 +00:00
pub fn set_app_dir < P : AsRef < std ::path ::Path > > ( app_dir : P ) -> Result < ( ) , glib ::error ::BoolError > {
2017-07-29 14:21:25 +00:00
assert_initialized_main_thread! ( ) ;
unsafe {
2018-03-15 08:39:12 +00:00
glib ::error ::BoolError ::from_glib ( ffi ::gst_preset_set_app_dir ( app_dir . as_ref ( ) . to_glib_none ( ) . 0 ) , " Failed to set app preset directory " )
2017-07-29 14:21:25 +00:00
}
}
}
unsafe impl Send for Preset { }
unsafe impl Sync for Preset { }
2018-12-08 09:05:20 +00:00
pub trait PresetExt : 'static {
2017-12-20 16:47:04 +00:00
fn delete_preset ( & self , name : & str ) -> Result < ( ) , glib ::error ::BoolError > ;
2017-07-29 14:21:25 +00:00
2018-12-09 16:06:12 +00:00
fn get_meta ( & self , name : & str , tag : & str ) -> Option < GString > ;
2017-07-29 14:21:25 +00:00
2018-12-09 16:06:12 +00:00
fn get_preset_names ( & self ) -> Vec < GString > ;
2017-07-29 14:21:25 +00:00
2018-12-09 16:06:12 +00:00
fn get_property_names ( & self ) -> Vec < GString > ;
2017-07-29 14:21:25 +00:00
fn is_editable ( & self ) -> bool ;
2017-12-20 16:47:04 +00:00
fn load_preset ( & self , name : & str ) -> Result < ( ) , glib ::error ::BoolError > ;
2017-07-29 14:21:25 +00:00
2017-12-20 16:47:04 +00:00
fn rename_preset ( & self , old_name : & str , new_name : & str ) -> Result < ( ) , glib ::error ::BoolError > ;
2017-07-29 14:21:25 +00:00
2017-12-20 16:47:04 +00:00
fn save_preset ( & self , name : & str ) -> Result < ( ) , glib ::error ::BoolError > ;
2017-07-29 14:21:25 +00:00
2017-12-20 16:47:04 +00:00
fn set_meta < ' a , P : Into < Option < & ' a str > > > ( & self , name : & str , tag : & str , value : P ) -> Result < ( ) , glib ::error ::BoolError > ;
2017-07-29 14:21:25 +00:00
}
impl < O : IsA < Preset > > PresetExt for O {
2017-12-20 16:47:04 +00:00
fn delete_preset ( & self , name : & str ) -> Result < ( ) , glib ::error ::BoolError > {
2017-07-29 14:21:25 +00:00
unsafe {
2017-12-20 16:47:04 +00:00
glib ::error ::BoolError ::from_glib ( ffi ::gst_preset_delete_preset ( self . to_glib_none ( ) . 0 , name . to_glib_none ( ) . 0 ) , " Failed to delete preset " )
2017-07-29 14:21:25 +00:00
}
}
2018-12-09 16:06:12 +00:00
fn get_meta ( & self , name : & str , tag : & str ) -> Option < GString > {
2017-07-29 14:21:25 +00:00
unsafe {
let mut value = ptr ::null_mut ( ) ;
let ret = from_glib ( ffi ::gst_preset_get_meta ( self . to_glib_none ( ) . 0 , name . to_glib_none ( ) . 0 , tag . to_glib_none ( ) . 0 , & mut value ) ) ;
if ret { Some ( from_glib_full ( value ) ) } else { None }
}
}
2018-12-09 16:06:12 +00:00
fn get_preset_names ( & self ) -> Vec < GString > {
2017-07-29 14:21:25 +00:00
unsafe {
FromGlibPtrContainer ::from_glib_full ( ffi ::gst_preset_get_preset_names ( self . to_glib_none ( ) . 0 ) )
}
}
2018-12-09 16:06:12 +00:00
fn get_property_names ( & self ) -> Vec < GString > {
2017-07-29 14:21:25 +00:00
unsafe {
FromGlibPtrContainer ::from_glib_full ( ffi ::gst_preset_get_property_names ( self . to_glib_none ( ) . 0 ) )
}
}
fn is_editable ( & self ) -> bool {
unsafe {
from_glib ( ffi ::gst_preset_is_editable ( self . to_glib_none ( ) . 0 ) )
}
}
2017-12-20 16:47:04 +00:00
fn load_preset ( & self , name : & str ) -> Result < ( ) , glib ::error ::BoolError > {
2017-07-29 14:21:25 +00:00
unsafe {
2017-12-20 16:47:04 +00:00
glib ::error ::BoolError ::from_glib ( ffi ::gst_preset_load_preset ( self . to_glib_none ( ) . 0 , name . to_glib_none ( ) . 0 ) , " Failed to load preset " )
2017-07-29 14:21:25 +00:00
}
}
2017-12-20 16:47:04 +00:00
fn rename_preset ( & self , old_name : & str , new_name : & str ) -> Result < ( ) , glib ::error ::BoolError > {
2017-07-29 14:21:25 +00:00
unsafe {
2017-12-20 16:47:04 +00:00
glib ::error ::BoolError ::from_glib ( ffi ::gst_preset_rename_preset ( self . to_glib_none ( ) . 0 , old_name . to_glib_none ( ) . 0 , new_name . to_glib_none ( ) . 0 ) , " Failed to rename preset " )
2017-07-29 14:21:25 +00:00
}
}
2017-12-20 16:47:04 +00:00
fn save_preset ( & self , name : & str ) -> Result < ( ) , glib ::error ::BoolError > {
2017-07-29 14:21:25 +00:00
unsafe {
2017-12-20 16:47:04 +00:00
glib ::error ::BoolError ::from_glib ( ffi ::gst_preset_save_preset ( self . to_glib_none ( ) . 0 , name . to_glib_none ( ) . 0 ) , " Failed to save preset " )
2017-07-29 14:21:25 +00:00
}
}
2017-12-20 16:47:04 +00:00
fn set_meta < ' a , P : Into < Option < & ' a str > > > ( & self , name : & str , tag : & str , value : P ) -> Result < ( ) , glib ::error ::BoolError > {
2017-07-29 14:21:25 +00:00
let value = value . into ( ) ;
let value = value . to_glib_none ( ) ;
unsafe {
2017-12-20 16:47:04 +00:00
glib ::error ::BoolError ::from_glib ( ffi ::gst_preset_set_meta ( self . to_glib_none ( ) . 0 , name . to_glib_none ( ) . 0 , tag . to_glib_none ( ) . 0 , value . 0 ) , " Failed to set preset meta " )
2017-07-29 14:21:25 +00:00
}
}
}