]> git.sesse.net Git - vlc/blobdiff - modules/gui/macosx/AppleRemote.h
macosx: fix wrong size of playlist when using podcast and minimal view
[vlc] / modules / gui / macosx / AppleRemote.h
index 41719a1ce4948f1e848d8f75bae86ca603945cb5..fb84611e9883e28c021f580f116dea45dbfb9210 100644 (file)
@@ -3,10 +3,10 @@
  * AppleRemote
  * $Id$
  *
- * Created by Martin Kahr on 11.03.06 under a MIT-style license. 
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
  * Copyright (c) 2006 martinkahr.com. All rights reserved.
  *
- * Permission is hereby granted, free of charge, to any person obtaining a 
+ * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
  * to deal in the Software without restriction, including without limitation
  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
@@ -18,7 +18,7 @@
  *
  * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * Note that changes made by any members or contributors of the VideoLAN team
  * (i.e. changes that were checked in exclusively into one of VideoLAN's source code
  * repositories) are licensed under the GNU General Public License version 2,
- * or (at your option) any later version. 
+ * or (at your option) any later version.
  * Thus, the following statements apply to our changes:
  *
- * Copyright (C) 2006-2007 the VideoLAN team
+ * Copyright (C) 2006-2007 VLC authors and VideoLAN
  * Authors: Eric Petit <titer@m0k.org>
  *          Felix Kühne <fkuehne at videolan dot org>
  *
@@ -73,7 +73,12 @@ enum AppleRemoteEventIdentifier
     kRemoteButtonPlay_Sleep         =1<<10,
     kRemoteControl_Switched         =1<<11,
     kRemoteButtonVolume_Plus_Hold   =1<<12,
-    kRemoteButtonVolume_Minus_Hold  =1<<13
+    kRemoteButtonVolume_Minus_Hold  =1<<13,
+    k2009RemoteButtonPlay
+
+   =1<<14,
+    k2009RemoteButtonFullscreen
+ =1<<15
 };
 typedef enum AppleRemoteEventIdentifier AppleRemoteEventIdentifier;
 
@@ -84,37 +89,34 @@ The class is not thread safe
 @interface AppleRemote : NSObject {
     IOHIDDeviceInterface** hidDeviceInterface;
     IOHIDQueueInterface**  queue;
-    NSMutableArray*        allCookies;
-    NSMutableDictionary*   cookieToButtonMapping;
-    
-    BOOL openInExclusiveMode;
-    BOOL simulatePlusMinusHold;
-    BOOL processesBacklog;
-    
+    NSArray*        _allCookies;
+    NSDictionary*   _cookieToButtonMapping;
+    CFRunLoopSourceRef     eventSource;
+
+    BOOL _openInExclusiveMode;
+    BOOL _simulatePlusMinusHold;
+    BOOL _processesBacklog;
+
     /* state for simulating plus/minus hold */
     BOOL lastEventSimulatedHold;
     AppleRemoteEventIdentifier lastPlusMinusEvent;
     NSTimeInterval lastPlusMinusEventTime;
-    
+
     int remoteId;
-    unsigned int clickCountEnabledButtons;
-    NSTimeInterval maxClickTimeDifference;
-    NSTimeInterval lastClickCountEventTime; 
+    unsigned int _clickCountEnabledButtons;
+    NSTimeInterval _maxClickTimeDifference;
+    NSTimeInterval lastClickCountEventTime;
     AppleRemoteEventIdentifier lastClickCountEvent;
     unsigned int eventClickCount;
-    
-    IBOutlet id delegate;
-}
 
-- (int) remoteId;
-
-- (BOOL) isRemoteAvailable;
-
-- (BOOL) isListeningToRemote;
-- (void) setListeningToRemote: (BOOL) value;
+    id delegate;
+}
++ (AppleRemote *)sharedInstance;
 
-- (BOOL) isOpenInExclusiveMode;
-- (void) setOpenInExclusiveMode: (BOOL) value;
+@property (readonly) int remoteId;
+@property (readonly) BOOL remoteAvailable;
+@property (readwrite) BOOL listeningToRemote;
+@property (readwrite) BOOL openInExclusiveMode;
 
 /* click counting makes it possible to recognize if the user has pressed a button repeatedly
  * click counting does delay each event as it has to wait if there is another event (second click)
@@ -122,38 +124,31 @@ The class is not thread safe
  * of the user and the call of your delegate method
  * click counting can be enabled individually for specific buttons. Use the property clickCountEnableButtons
  * to set the buttons for which click counting shall be enabled */
-- (BOOL) clickCountingEnabled;
-- (void) setClickCountingEnabled: (BOOL) value;
+@property (readwrite) BOOL clickCountingEnabled;
 
-- (unsigned int) clickCountEnabledButtons;
-- (void) setClickCountEnabledButtons: (unsigned int)value;
+@property (readwrite) unsigned int clickCountEnabledButtons;
 
 /* the maximum time difference till which clicks are recognized as multi clicks */
-- (NSTimeInterval) maximumClickCountTimeDifference;
-- (void) setMaximumClickCountTimeDifference: (NSTimeInterval) timeDiff;
+@property (readwrite) NSTimeInterval maximumClickCountTimeDifference;
 
 /* When your application needs to much time on the main thread when processing an event other events
  * may already be received which are put on a backlog. As soon as your main thread
  * has some spare time this backlog is processed and may flood your delegate with calls.
  * Backlog processing is turned off by default. */
-- (BOOL) processesBacklog;
-- (void) setProcessesBacklog: (BOOL) value;
+@property (readwrite) BOOL processesBacklog;
 
 /* Sets an NSApplication delegate which starts listening when application is becoming active
- * and stops listening when application resigns being active. 
+ * and stops listening when application resigns being active.
  * If an NSApplication delegate has been already set all method calls will be forwarded to this delegate, too. */
-- (BOOL) listeningOnAppActivate;
-- (void) setListeningOnAppActivate: (BOOL) value;
+@property (readwrite) BOOL listeningOnAppActivate;
 
 /* Simulating plus/minus hold does deactivate sending of individual requests for plus/minus pressed down/released.
  * Instead special hold events are being triggered when the user is pressing and holding plus/minus for a small period.
  * With simulating enabled the plus/minus buttons do behave as the left/right buttons */
-- (BOOL) simulatesPlusMinusHold;
-- (void) setSimulatesPlusMinusHold: (BOOL) value;
+@property (readwrite) BOOL simulatesPlusMinusHold;
 
 /* Delegates are not retained */
-- (void) setDelegate: (id) delegate;
-- (id) delegate;
+@property (readwrite, assign) id delegate;
 
 - (IBAction) startListening: (id) sender;
 - (IBAction) stopListening: (id) sender;
@@ -172,15 +167,16 @@ The class is not thread safe
 
 @end
 
-@interface AppleRemote (PrivateMethods) 
+@interface AppleRemote (PrivateMethods)
+@property (readonly) NSDictionary * cookieToButtonMapping;
+
 - (void) setRemoteId: (int) aValue;
-- (NSDictionary*) cookieToButtonMapping;
 - (IOHIDQueueInterface**) queue;
 - (IOHIDDeviceInterface**) hidDeviceInterface;
-- (void) handleEventWithCookieString: (NSString*) cookieString sumOfValues: (SInt32) sumOfValues; 
+- (void) handleEventWithCookieString: (NSString*) cookieString sumOfValues: (SInt32) sumOfValues;
 @end
 
-@interface AppleRemote (IOKitMethods) 
+@interface AppleRemote (IOKitMethods)
 - (io_object_t) findAppleRemoteDevice;
 - (IOHIDDeviceInterface**) createInterfaceForDevice: (io_object_t) hidDevice;
 - (BOOL) initializeCookies;
@@ -196,4 +192,4 @@ The class is not thread safe
 
 - (id) initWithApplicationDelegate: (id) delegate;
 - (id) applicationDelegate;
-@end
\ No newline at end of file
+@end