fixed some method return error types
							parent
							
								
									1c9c665a7a
								
							
						
					
					
						commit
						0107178024
					
				| 
						 | 
					@ -45,6 +45,7 @@ impl MediaPlayerAudioEx for MediaPlayer {
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fn get_audio_track_description(&self) -> Option<Vec<TrackDescription>> {
 | 
					    fn get_audio_track_description(&self) -> Option<Vec<TrackDescription>> {
 | 
				
			||||||
        unsafe {
 | 
					        unsafe {
 | 
				
			||||||
            let p0 = sys::libvlc_audio_get_track_description(self.ptr);
 | 
					            let p0 = sys::libvlc_audio_get_track_description(self.ptr);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										22
									
								
								src/core.rs
								
								
								
								
							
							
						
						
									
										22
									
								
								src/core.rs
								
								
								
								
							| 
						 | 
					@ -53,7 +53,7 @@ impl Instance {
 | 
				
			||||||
    /// Create and initialize a libvlc instance with specified args.
 | 
					    /// Create and initialize a libvlc instance with specified args.
 | 
				
			||||||
    /// Note: args.len() has to be less or equal to i32::MAX
 | 
					    /// Note: args.len() has to be less or equal to i32::MAX
 | 
				
			||||||
    /// Note: libvlc discourages using arguments as these are not guaranteed to be stable between different versions of libvlc
 | 
					    /// Note: libvlc discourages using arguments as these are not guaranteed to be stable between different versions of libvlc
 | 
				
			||||||
    pub fn with_args(args: Option<Vec<String>>) -> Option<Instance> {
 | 
					    pub fn with_args(args: Option<Vec<String>>) -> Result<Instance, InternalError> {
 | 
				
			||||||
        let args_c_ptr: Vec<*const c_char>;
 | 
					        let args_c_ptr: Vec<*const c_char>;
 | 
				
			||||||
        let args_c: Vec<CString>;
 | 
					        let args_c: Vec<CString>;
 | 
				
			||||||
        if let Some(argv) = args {
 | 
					        if let Some(argv) = args {
 | 
				
			||||||
| 
						 | 
					@ -74,15 +74,15 @@ impl Instance {
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if p.is_null() {
 | 
					            if p.is_null() {
 | 
				
			||||||
                return None;
 | 
					                Err(InternalError)
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                Ok(Instance { ptr: p })
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					 | 
				
			||||||
            Some(Instance { ptr: p })
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// Create and initialize a libvlc instance.
 | 
					    /// Create and initialize a libvlc instance.
 | 
				
			||||||
    pub fn new() -> Option<Instance> {
 | 
					    pub fn new() -> Result<Instance, InternalError> {
 | 
				
			||||||
        Instance::with_args(None)
 | 
					        Instance::with_args(None)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -125,25 +125,25 @@ impl Instance {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// Returns a list of audio filters that are available.
 | 
					    /// Returns a list of audio filters that are available.
 | 
				
			||||||
    pub fn audio_filter_list_get(&self) -> Option<ModuleDescriptionList> {
 | 
					    pub fn audio_filter_list_get(&self) -> Result<ModuleDescriptionList, InternalError> {
 | 
				
			||||||
        unsafe {
 | 
					        unsafe {
 | 
				
			||||||
            let p = sys::libvlc_audio_filter_list_get(self.ptr);
 | 
					            let p = sys::libvlc_audio_filter_list_get(self.ptr);
 | 
				
			||||||
            if p.is_null() {
 | 
					            if p.is_null() {
 | 
				
			||||||
                None
 | 
					                Err(InternalError)
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                Some(ModuleDescriptionList { ptr: p })
 | 
					                Ok(ModuleDescriptionList { ptr: p })
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// Returns a list of video filters that are available.
 | 
					    /// Returns a list of video filters that are available.
 | 
				
			||||||
    pub fn video_filter_list_get(&self) -> Option<ModuleDescriptionList> {
 | 
					    pub fn video_filter_list_get(&self) -> Result<ModuleDescriptionList, InternalError> {
 | 
				
			||||||
        unsafe {
 | 
					        unsafe {
 | 
				
			||||||
            let p = sys::libvlc_video_filter_list_get(self.ptr);
 | 
					            let p = sys::libvlc_video_filter_list_get(self.ptr);
 | 
				
			||||||
            if p.is_null() {
 | 
					            if p.is_null() {
 | 
				
			||||||
                None
 | 
					                Err(InternalError)
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                Some(ModuleDescriptionList { ptr: p })
 | 
					                Ok(ModuleDescriptionList { ptr: p })
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,7 @@
 | 
				
			||||||
// Licensed under the MIT license, see the LICENSE file.
 | 
					// Licensed under the MIT license, see the LICENSE file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::{Instance, InternalError, MediaList};
 | 
					use crate::{Instance, InternalError, MediaList};
 | 
				
			||||||
 | 
					use std::fmt;
 | 
				
			||||||
use vlc_sys as sys;
 | 
					use vlc_sys as sys;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub struct MediaLibrary {
 | 
					pub struct MediaLibrary {
 | 
				
			||||||
| 
						 | 
					@ -11,13 +12,13 @@ pub struct MediaLibrary {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
impl MediaLibrary {
 | 
					impl MediaLibrary {
 | 
				
			||||||
    /// Create an new Media Library object.
 | 
					    /// Create an new Media Library object.
 | 
				
			||||||
    pub fn new(instance: &Instance) -> Option<MediaLibrary> {
 | 
					    pub fn new(instance: &Instance) -> Result<MediaLibrary, InternalError> {
 | 
				
			||||||
        unsafe {
 | 
					        unsafe {
 | 
				
			||||||
            let p = sys::libvlc_media_library_new(instance.ptr);
 | 
					            let p = sys::libvlc_media_library_new(instance.ptr);
 | 
				
			||||||
            if p.is_null() {
 | 
					            if p.is_null() {
 | 
				
			||||||
                None
 | 
					                Err(InternalError)
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                Some(MediaLibrary { ptr: p })
 | 
					                Ok(MediaLibrary { ptr: p })
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,13 +11,13 @@ pub struct MediaList {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
impl MediaList {
 | 
					impl MediaList {
 | 
				
			||||||
    /// Create an empty media list.
 | 
					    /// Create an empty media list.
 | 
				
			||||||
    pub fn new(instance: &Instance) -> Option<MediaList> {
 | 
					    pub fn new(instance: &Instance) -> Result<MediaList, InternalError> {
 | 
				
			||||||
        unsafe {
 | 
					        unsafe {
 | 
				
			||||||
            let p = sys::libvlc_media_list_new(instance.ptr);
 | 
					            let p = sys::libvlc_media_list_new(instance.ptr);
 | 
				
			||||||
            if p.is_null() {
 | 
					            if p.is_null() {
 | 
				
			||||||
                None
 | 
					                Err(InternalError)
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                Some(MediaList { ptr: p })
 | 
					                Ok(MediaList { ptr: p })
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -45,6 +45,7 @@ impl MediaList {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// Add media instance to media list.
 | 
					    /// Add media instance to media list.
 | 
				
			||||||
    /// The MediaList::lock should be held upon entering this function.
 | 
					    /// The MediaList::lock should be held upon entering this function.
 | 
				
			||||||
 | 
					    // TODO: use specific error type since documentation says "-1 if the media list is read-only"
 | 
				
			||||||
    pub fn add_media(&self, md: &Media) -> Result<(), InternalError> {
 | 
					    pub fn add_media(&self, md: &Media) -> Result<(), InternalError> {
 | 
				
			||||||
        unsafe {
 | 
					        unsafe {
 | 
				
			||||||
            if sys::libvlc_media_list_add_media(self.ptr, md.ptr) == 0 {
 | 
					            if sys::libvlc_media_list_add_media(self.ptr, md.ptr) == 0 {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue