/LXVolumeController

Under OSX programmatically control the master volume as well as register the volume change notification.

Primary LanguageObjective-C

LXVolumeController

Volume Control

Under OSX programmatically control the master volume as well as register the volume change notification.

##The API header file

#ifndef LXMasterVolume_h
#define LXMasterVolume_h

//set master volume
void setMasterVolume(CGFloat volume);//0.0~1.0

//get master volume
CGFloat getMasterVolume();//0.0~1.0

//volume change notification name is LXMasterVolumeChangedNotification
//[[NSNotificationCenter defaultCenter] addObserver:self
//                                         selector:@selector(volumeChanged:)
//                                             name:@"LXMasterVolumeChangedNotification"
//                                           object:nil];
//to get volume change notification
void startMasterVolumeChangeNotification();
void stopMasterVolumeChangeNotification();

#endif

##Get the system volume

CGFloat volume=getMasterVolume();//range 0.0~1.0 

##Set the system volume

setMasterVolume(volume);//range 0.0~1.0 

##Get volume change notification

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(volumeChanged:)
                                                 name:@"LXMasterVolumeChangedNotification"
                                               object:nil];
    startMasterVolumeChangeNotification();
}

- (void)volumeChanged:(NSNotification*)n
{
    CGFloat volume=getMasterVolume();
    //volume changed
}

##Stop volume change notification

stopMasterVolumeChangeNotification();  
[[NSNotificationCenter defaultCenter] removeObserver:self
												name:@"LXMasterVolumeChangedNotification"
											  object:nil];