Add some audio control functions as the MediaPlayerAudioEx trait
							parent
							
								
									a0e9f5b41b
								
							
						
					
					
						commit
						f95dcd2376
					
				| 
						 | 
					@ -0,0 +1,40 @@
 | 
				
			||||||
 | 
					// Copyright (c) 2015 T. Okubo
 | 
				
			||||||
 | 
					// This file is part of vlc-rs.
 | 
				
			||||||
 | 
					// Licensed under the MIT license, see the LICENSE file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use ffi;
 | 
				
			||||||
 | 
					use ::MediaPlayer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pub trait MediaPlayerAudioEx {
 | 
				
			||||||
 | 
					    fn get_mute(&self) -> Option<bool>;
 | 
				
			||||||
 | 
					    fn set_mute(&self, bool);
 | 
				
			||||||
 | 
					    fn get_volume(&self) -> i32;
 | 
				
			||||||
 | 
					    fn set_volume(&self, volume: i32) -> Result<(), ()>;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					impl MediaPlayerAudioEx for MediaPlayer {
 | 
				
			||||||
 | 
					    fn get_mute(&self) -> Option<bool> {
 | 
				
			||||||
 | 
					        let r = unsafe{ ffi::libvlc_audio_get_mute(self.ptr) };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if r == 0 {
 | 
				
			||||||
 | 
					            Some(false)
 | 
				
			||||||
 | 
					        }else if r == -1 {
 | 
				
			||||||
 | 
					            None
 | 
				
			||||||
 | 
					        }else{
 | 
				
			||||||
 | 
					            Some(true)
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fn set_mute(&self, status: bool) {
 | 
				
			||||||
 | 
					        unsafe{ ffi::libvlc_audio_set_mute(self.ptr, if status { 1 }else{ 0 }) };
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fn get_volume(&self) -> i32 {
 | 
				
			||||||
 | 
					        unsafe{ ffi::libvlc_audio_get_volume(self.ptr) }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    fn set_volume(&self, volume: i32) -> Result<(), ()> {
 | 
				
			||||||
 | 
					        unsafe{
 | 
				
			||||||
 | 
					            if ffi::libvlc_audio_set_volume(self.ptr, volume) == 0 { Ok(()) }else{ Err(()) }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -14,6 +14,7 @@ mod media_list;
 | 
				
			||||||
mod media_library;
 | 
					mod media_library;
 | 
				
			||||||
mod enums;
 | 
					mod enums;
 | 
				
			||||||
mod video;
 | 
					mod video;
 | 
				
			||||||
 | 
					mod audio;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub use enums::*;
 | 
					pub use enums::*;
 | 
				
			||||||
pub use core::*;
 | 
					pub use core::*;
 | 
				
			||||||
| 
						 | 
					@ -22,3 +23,4 @@ pub use media_player::*;
 | 
				
			||||||
pub use media_list::*;
 | 
					pub use media_list::*;
 | 
				
			||||||
pub use media_library::*;
 | 
					pub use media_library::*;
 | 
				
			||||||
pub use video::*;
 | 
					pub use video::*;
 | 
				
			||||||
 | 
					pub use audio::*;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue