Implemented fading up from pause, same key (shift-command-p) as fade down from play. Will clean code and move all audio components into the audioPlayer tomorrow, to fix the event* function names and consolidate all audio related methods.
This commit is contained in:
parent
abf2da423d
commit
6a915b458b
2 changed files with 44 additions and 7 deletions
|
@ -66,7 +66,8 @@
|
||||||
- (IBAction)fadeOut:(id)sender withTime:(double)time;
|
- (IBAction)fadeOut:(id)sender withTime:(double)time;
|
||||||
|
|
||||||
- (void)initDefaults;
|
- (void)initDefaults;
|
||||||
- (void)audioFader:(NSTimer *)audioTimer;
|
- (void)audioFadeDown:(NSTimer *)audioTimer;
|
||||||
|
- (void)audioFadeUp:(NSTimer *)audioTimer;
|
||||||
|
|
||||||
- (void)updateTimeField:(double)pos;
|
- (void)updateTimeField:(double)pos;
|
||||||
|
|
||||||
|
|
|
@ -98,6 +98,7 @@ double linearToLogarithmic(double linear)
|
||||||
- (IBAction)pause:(id)sender
|
- (IBAction)pause:(id)sender
|
||||||
{
|
{
|
||||||
[audioPlayer pause];
|
[audioPlayer pause];
|
||||||
|
playbackStatus = kCogStatusPaused;
|
||||||
|
|
||||||
if([[NSUserDefaults standardUserDefaults] boolForKey:@"enableAudioScrobbler"]) {
|
if([[NSUserDefaults standardUserDefaults] boolForKey:@"enableAudioScrobbler"]) {
|
||||||
[scrobbler pause];
|
[scrobbler pause];
|
||||||
|
@ -290,7 +291,7 @@ double linearToLogarithmic(double linear)
|
||||||
/* selector for NSTimer - gets passed the Timer object itself
|
/* selector for NSTimer - gets passed the Timer object itself
|
||||||
and the appropriate userInfo, which in this case is an NSNumber
|
and the appropriate userInfo, which in this case is an NSNumber
|
||||||
containing the current volume before we start fading. */
|
containing the current volume before we start fading. */
|
||||||
- (void)audioFader:(NSTimer *)audioTimer
|
- (void)audioFadeDown:(NSTimer *)audioTimer
|
||||||
{
|
{
|
||||||
double volume = [audioPlayer volume];
|
double volume = [audioPlayer volume];
|
||||||
double originalVolume = [[audioTimer userInfo] doubleValue];
|
double originalVolume = [[audioTimer userInfo] doubleValue];
|
||||||
|
@ -311,21 +312,56 @@ double linearToLogarithmic(double linear)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)audioFadeUp:(NSTimer *)audioTimer
|
||||||
|
{
|
||||||
|
double volume = [audioPlayer volume];
|
||||||
|
double originalVolume = [[audioTimer userInfo] doubleValue];
|
||||||
|
|
||||||
|
NSLog(@"VOLUME IS %lf", volume);
|
||||||
|
|
||||||
|
if (volume < originalVolume)
|
||||||
|
{
|
||||||
|
if ((volume + 5) > originalVolume)
|
||||||
|
[self volumeUp:(originalVolume - volume)];
|
||||||
|
else
|
||||||
|
[self volumeUp:5];
|
||||||
|
}
|
||||||
|
else // volume is at 0 or below, we are ready to release the timer and move on
|
||||||
|
{
|
||||||
|
[volumeSlider setDoubleValue: logarithmicToLinear(originalVolume)];
|
||||||
|
[audioTimer invalidate];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
- (IBAction)fadeOut:(id)sender withTime:(double)time
|
- (IBAction)fadeOut:(id)sender withTime:(double)time
|
||||||
{
|
{
|
||||||
// we can not allow multiple fade timers to be registered
|
// we can not allow multiple fade timers to be registered
|
||||||
if (playbackStatus != kCogStatusPlaying)
|
if (playbackStatus == kCogStatusFading)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
NSNumber *originalVolume = [NSNumber numberWithDouble: [audioPlayer volume]];
|
NSNumber *originalVolume = [NSNumber numberWithDouble: [audioPlayer volume]];
|
||||||
NSTimer *fadeTimer;
|
NSTimer *fadeTimer;
|
||||||
playbackStatus = kCogStatusFading;
|
|
||||||
|
|
||||||
fadeTimer = [NSTimer scheduledTimerWithTimeInterval:time
|
if (playbackStatus == kCogStatusPlaying)
|
||||||
|
fadeTimer = [NSTimer scheduledTimerWithTimeInterval:time
|
||||||
target:self
|
target:self
|
||||||
selector:@selector(audioFader:)
|
selector:@selector(audioFadeDown:)
|
||||||
userInfo:originalVolume
|
userInfo:originalVolume
|
||||||
repeats:YES];
|
repeats:YES];
|
||||||
|
else
|
||||||
|
{
|
||||||
|
[audioPlayer setVolume:0];
|
||||||
|
fadeTimer = [NSTimer scheduledTimerWithTimeInterval:time
|
||||||
|
target:self
|
||||||
|
selector:@selector(audioFadeUp:)
|
||||||
|
userInfo:originalVolume
|
||||||
|
repeats:YES];
|
||||||
|
[self pauseResume:self];
|
||||||
|
}
|
||||||
|
|
||||||
|
playbackStatus = kCogStatusFading;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)skipToNextAlbum:(id)sender
|
- (IBAction)skipToNextAlbum:(id)sender
|
||||||
|
|
Loading…
Reference in a new issue