Volume-Control/Sources/Controllers/AppDelegate.h

126 lines
4.0 KiB
Objective-C

//
// AppDelegate.h
// iTunes Volume Control
//
// Created by Andrea Alberti on 25.12.12.
// Copyright (c) 2012 Andrea Alberti. All rights reserved.
//
#import <Cocoa/Cocoa.h>
#import <QuartzCore/CoreAnimation.h>
#import <Sparkle/Sparkle.h>
#import "TahoeVolumeHUD.h"
#import "iTunes.h"
// #import "Music.h"
#import "Spotify.h"
#import "Doppler.h"
@class IntroWindowController, AccessibilityDialog, StatusBarItem, PlayerApplication, SystemApplication;
@interface AppDelegate : NSObject <NSApplicationDelegate, NSMenuItemValidation, SPUUpdaterDelegate, SPUStandardUserDriverDelegate, TahoeVolumeHUDDelegate> {
CALayer *volumeImageLayer;
CALayer *volumeBar[16];
NSImage *imgVolOn,*imgVolOff;
NSUserDefaults *preferences;
CABasicAnimation *fadeOutAnimation;
CABasicAnimation *fadeInAnimation;
CFMachPortRef eventTap;
CFRunLoopSourceRef runLoopSource;
bool menuIsVisible;
NSInteger oldVolumeSetting;
NSInteger osxVersion;
double increment;
id currentPlayer;
Class OSDManager;
NSSound* volumeSound;
@public
PlayerApplication* iTunes;
PlayerApplication* spotify;
SystemApplication* systemAudio;
PlayerApplication* doppler;
IntroWindowController *introWindowController;
AccessibilityDialog *accessibilityDialog;
}
@property (nonatomic, assign) IBOutlet NSMenu* statusMenu;
@property (nonatomic, assign) IBOutlet NSSliderCell* volumeIncrementsSlider;
@property (nonatomic, assign) IBOutlet NSButton* iTunesBtn;
@property (nonatomic, assign) IBOutlet NSButton* spotifyBtn;
@property (nonatomic, assign) IBOutlet NSButton* systemBtn;
@property (nonatomic, assign) IBOutlet NSButton* dopplerBtn;
@property (nonatomic, assign) IBOutlet NSTextField* iTunesPerc;
@property (nonatomic, assign) IBOutlet NSTextField* spotifyPerc;
@property (nonatomic, assign) IBOutlet NSTextField* systemPerc;
@property (nonatomic, assign) IBOutlet NSTextField* dopplerPerc;
@property (assign, nonatomic) IBOutlet SPUStandardUpdaterController* sparkle_updater;
@property (nonatomic, strong) NSStatusItem *statusBar;
@property (assign, nonatomic) NSInteger volumeInc;
@property (assign, nonatomic) bool AppleRemoteConnected;
@property (assign, nonatomic) bool StartAtLogin;
@property (assign, nonatomic) bool PlaySoundFeedback;
@property (assign, nonatomic) bool Tapping;
@property (assign, nonatomic) bool UseAppleCMDModifier;
@property (assign, nonatomic) bool LockSystemAndPlayerVolume;
@property (assign, nonatomic) bool AppleCMDModifierPressed;
@property (assign, nonatomic) bool AutomaticUpdates;
@property (assign, nonatomic) bool hideFromStatusBar;
@property (assign, nonatomic) bool hideVolumeWindow;
@property (assign, nonatomic) bool loadIntroAtStart;
- (IBAction)toggleUseAppleCMDModifier:(id)sender;
- (IBAction)toggleLockSystemAndPlayerVolume:(id)sender;
- (IBAction)toggleAutomaticUpdates:(id)sender;
- (IBAction)toggleHideFromStatusBar:(id)sender;
- (IBAction)toggleHideVolumeWindow:(id)sender;
- (IBAction)toggleStartAtLogin:(id)sender;
- (IBAction)togglePlaySoundFeedback:(id)sender;
- (IBAction)toggleTapping:(id)sender;
- (IBAction)aboutPanel:(id)sender;
- (IBAction)sliderValueChanged:(NSSliderCell*)slider;
//- (IBAction)showIntroWindow:(id)sender;
- (IBAction)terminate:(id)sender;
- (BOOL)tryCreateEventTap;
// - (void)appleRemoteButton: (AppleRemoteEventIdentifier)buttonIdentifier pressedDown: (BOOL) pressedDown clickCount: (unsigned int) count;
- (void)wasAuthorized;
- (void)handleAsynchronouslyTappedEventWithKeyCode:(int)keyCode
keyState:(BOOL)keyState
keyIsRepeat:(BOOL)keyIsRepeat
keyModifier:(CGEventFlags)keyModifier;
@end
@interface PlayerApplication : NSObject {
id musicPlayer;
}
- (BOOL) isRunning;
- (NSInteger) playerState;
@property (assign, nonatomic) double currentVolume;
@property (assign, nonatomic) double oldVolume;
@property (assign, nonatomic) double doubleVolume;
@property (assign, nonatomic) NSImage* icon;
@end