diff --git a/NGVolumeControl/NGVolumeControl.xcodeproj/project.pbxproj b/NGVolumeControl/NGVolumeControl.xcodeproj/project.pbxproj index 285dd05..5827248 100644 --- a/NGVolumeControl/NGVolumeControl.xcodeproj/project.pbxproj +++ b/NGVolumeControl/NGVolumeControl.xcodeproj/project.pbxproj @@ -145,7 +145,7 @@ 9BCC745614FCCE8C004F30FF /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0500; + LastUpgradeCheck = 0600; ORGANIZATIONNAME = "NOUS Wissensmanagement GmbH"; }; buildConfigurationList = 9BCC745914FCCE8C004F30FF /* Build configuration list for PBXProject "NGVolumeControl" */; @@ -188,8 +188,10 @@ CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -222,8 +224,10 @@ CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; diff --git a/NGVolumeControl/NGVolumeControl/NGVolumeControl.m b/NGVolumeControl/NGVolumeControl/NGVolumeControl.m index 6e2e1bf..710d737 100644 --- a/NGVolumeControl/NGVolumeControl/NGVolumeControl.m +++ b/NGVolumeControl/NGVolumeControl/NGVolumeControl.m @@ -22,6 +22,7 @@ @interface NGVolumeControl () @property (nonatomic, strong) UIView *sliderView; @property (nonatomic, strong) NGVolumeSlider *slider; @property (nonatomic, assign) float systemVolume; +@property (nonatomic, assign) float currentSystemVolume; @property (nonatomic, readonly) BOOL sliderVisible; @property (nonatomic, assign) CGPoint touchStartPoint; @@ -101,6 +102,8 @@ - (id)initWithFrame:(CGRect)frame { CGPathRelease(path); } + + self.currentSystemVolume = self.systemVolume; // observe changes to system volume (volume buttons) [[NSNotificationCenter defaultCenter] addObserver:self @@ -388,7 +391,13 @@ - (void)customizeSlider:(UISlider *)slider { - (void)setSystemVolume:(float)systemVolume { MPMusicPlayerController *musicPlayer = [MPMusicPlayerController iPodMusicPlayer]; + + if ([self.volumeDelegate respondsToSelector:@selector(volumeControl:didChangeOldVolume:toNewVolume:)]) { + [self.volumeDelegate volumeControl:self didChangeOldVolume:musicPlayer.volume toNewVolume:systemVolume]; + } + musicPlayer.volume = systemVolume; + self.currentSystemVolume = systemVolume; } - (float)systemVolume { @@ -544,6 +553,11 @@ - (void)updateUI { - (void)systemVolumeChanged:(NSNotification *)notification { // we update the UI when the system volume changed (volume buttons) + if ([self.volumeDelegate respondsToSelector:@selector(volumeControl:didChangeOldVolume:toNewVolume:)]) { + float newVolume = [notification.userInfo[@"AVSystemController_AudioVolumeNotificationParameter"] floatValue]; + [self.volumeDelegate volumeControl:self didChangeOldVolume:self.currentSystemVolume toNewVolume:newVolume]; + self.currentSystemVolume = newVolume; + } [self updateUI]; } diff --git a/NGVolumeControl/NGVolumeControl/NGVolumeControlDelegate.h b/NGVolumeControl/NGVolumeControl/NGVolumeControlDelegate.h index 27683d1..560e598 100644 --- a/NGVolumeControl/NGVolumeControl/NGVolumeControlDelegate.h +++ b/NGVolumeControl/NGVolumeControl/NGVolumeControlDelegate.h @@ -20,5 +20,6 @@ - (void)volumeControlDidExpand:(NGVolumeControl *)volumeControl; - (void)volumeControlWillShrink:(NGVolumeControl *)volumeControl; - (void)volumeControlDidShrink:(NGVolumeControl *)volumeControl; +- (void)volumeControl:(NGVolumeControl *)volumeControl didChangeOldVolume:(float)oldVolume toNewVolume:(float)newVolume; @end