Skip to content

Commit

Permalink
Clean up NJRQTMediaPopUpButton.
Browse files Browse the repository at this point in the history
Use AudioServicesPlayAlertSound for consistency with the alert.

Rename some instance variables and methods to reflect that the media may not be a movie, and we're not checking if it is audio, we're checking whether its volume can be adjusted.
  • Loading branch information
nriley committed Aug 29, 2013
1 parent dee9e6e commit 33a0fc8
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 13 deletions.
4 changes: 2 additions & 2 deletions Source/NJRQTMediaPopUpButton.h
Expand Up @@ -14,7 +14,7 @@ extern NSString * const NJRQTMediaPopUpButtonMovieChangedNotification;

@interface NJRQTMediaPopUpButton : NSPopUpButton <NSOpenSavePanelDelegate> {
IBOutlet QTMovieView *preview;
BOOL movieCanRepeat, movieHasAudio;
BOOL mediaCanRepeat, mediaCanAdjustVolume;
NSMenuItem *otherItem;
BDAlias *selectedAlias, *previousAlias;
NSMutableArray *recentMediaAliasData;
Expand All @@ -28,7 +28,7 @@ extern NSString * const NJRQTMediaPopUpButtonMovieChangedNotification;
- (void)setOutputVolume:(float)volume withPreview:(BOOL)doPreview;

- (BOOL)canRepeat;
- (BOOL)hasAudio;
- (BOOL)canAdjustVolume;

- (IBAction)stopSoundPreview:(id)sender;

Expand Down
24 changes: 14 additions & 10 deletions Source/NJRQTMediaPopUpButton.m
Expand Up @@ -12,6 +12,7 @@
#import "QTMovie-NJRExtensions.h"
#import "NSMenuItem-NJRExtensions.h"

#include <AudioToolbox/AudioToolbox.h>
#include <QuickTime/QuickTime.h>
#include <limits.h>

Expand Down Expand Up @@ -289,12 +290,12 @@ - (NSMenuItem *)_itemForAlias:(BDAlias *)alias;

- (BOOL)canRepeat;
{
return movieCanRepeat;
return mediaCanRepeat;
}

- (BOOL)hasAudio;
- (BOOL)canAdjustVolume;
{
return movieHasAudio;
return mediaCanAdjustVolume;
}

- (float)outputVolume;
Expand Down Expand Up @@ -329,9 +330,12 @@ - (void)_invalidateSelection;

- (void)_startSoundPreview;
{
if ([preview movie] == nil || outputVolume == kNoVolume)
return;
if ([preview movie] == nil)
return;

if (outputVolume == kNoVolume) {
[self _resetPreview];
return;
}

[[preview movie] setVolume: outputVolume];
Expand Down Expand Up @@ -368,16 +372,16 @@ - (BOOL)_validateWithPreview:(BOOL)doPreview;
[preview pause: self];
if (selectedAlias == nil) {
[preview setMovie: nil];
movieCanRepeat = YES;
movieHasAudio = NO; // XXX should be YES - this is broken, NSBeep() is asynchronous
mediaCanRepeat = YES;
mediaCanAdjustVolume = NO;
if (doPreview) {
NSBeep();
AudioServicesPlayAlertSound(kSystemSoundID_UserPreferredAlert);
}
} else {
NSError *error;
QTMovie *movie = [[QTMovie alloc] initWithFile: [selectedAlias fullPath] error: &error];
movieCanRepeat = ![movie NJR_isStatic];
if ((movieHasAudio = [movie NJR_hasAudio])) {
mediaCanRepeat = ![movie NJR_isStatic];
if ( (mediaCanAdjustVolume = [movie NJR_hasAudio])) {
[preview setMovie: doPreview ? movie : nil];
} else {
[self _resetPreview];
Expand Down
2 changes: 1 addition & 1 deletion Source/PSAlarmSetController.m
Expand Up @@ -385,7 +385,7 @@ - (IBAction)playSoundChanged:(id)sender;
BOOL canRepeat = playSoundSelected ? [sound canRepeat] : NO;
[sound setEnabled: playSoundSelected];
[soundRepetitions setEnabled: canRepeat];
[soundVolumeButton setEnabled: canRepeat && [sound hasAudio]];
[soundVolumeButton setEnabled: canRepeat && [sound canAdjustVolume]];
[soundRepetitionStepper setEnabled: canRepeat];
[soundRepetitionsLabel setTextColor: canRepeat ? [NSColor controlTextColor] : [NSColor disabledControlTextColor]];
if (playSoundSelected && sender != nil)
Expand Down

0 comments on commit 33a0fc8

Please sign in to comment.