From 2007f717e4267786dc959dd2389f25ae4bcea5dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ju=CC=88rgen=20Falb?= Date: Wed, 15 Oct 2014 13:36:50 +0200 Subject: [PATCH 1/2] Updated project settings --- NGVolumeControl/NGVolumeControl.xcodeproj/project.pbxproj | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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; From efe6924d797ae2df3e0cd59e624d78f77ffe1b86 Mon Sep 17 00:00:00 2001 From: kampfgnu Date: Tue, 21 Oct 2014 13:06:21 +0200 Subject: [PATCH 2/2] send changing volume to delegate, if possible --- NGVolumeControl/NGVolumeControl/NGVolumeControl.m | 14 ++++++++++++++ .../NGVolumeControl/NGVolumeControlDelegate.h | 1 + 2 files changed, 15 insertions(+) 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