mirror of
https://code.videolan.org/videolan/vlc
synced 2024-09-28 23:09:59 +02:00
Add support for the new Apple Remote introduced in 2009
Signed-off-by: Felix Paul Kühne <fkuehne@videolan.org>
This commit is contained in:
parent
ddb9216b27
commit
d848d8fdd6
@ -73,7 +73,9 @@ enum AppleRemoteEventIdentifier
|
|||||||
kRemoteButtonPlay_Sleep =1<<10,
|
kRemoteButtonPlay_Sleep =1<<10,
|
||||||
kRemoteControl_Switched =1<<11,
|
kRemoteControl_Switched =1<<11,
|
||||||
kRemoteButtonVolume_Plus_Hold =1<<12,
|
kRemoteButtonVolume_Plus_Hold =1<<12,
|
||||||
kRemoteButtonVolume_Minus_Hold =1<<13
|
kRemoteButtonVolume_Minus_Hold =1<<13,
|
||||||
|
k2009RemoteButtonPlay =1<<14,
|
||||||
|
k2009RemoteButtonMiddlePlay =1<<15
|
||||||
};
|
};
|
||||||
typedef enum AppleRemoteEventIdentifier AppleRemoteEventIdentifier;
|
typedef enum AppleRemoteEventIdentifier AppleRemoteEventIdentifier;
|
||||||
|
|
||||||
|
@ -92,17 +92,19 @@ const NSTimeInterval HOLD_RECOGNITION_TIME_INTERVAL=0.4;
|
|||||||
{
|
{
|
||||||
/* current Snow Leopard cookies */
|
/* current Snow Leopard cookies */
|
||||||
msg_Dbg( VLCIntf, "using Snow Leopard AR cookies" );
|
msg_Dbg( VLCIntf, "using Snow Leopard AR cookies" );
|
||||||
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonVolume_Plus] forKey:@"33_31_30_21_20_2_"];
|
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonVolume_Plus] forKey:@"33_31_30_21_20_2_"];
|
||||||
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonVolume_Minus] forKey:@"33_32_30_21_20_2_"];
|
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonVolume_Minus] forKey:@"33_32_30_21_20_2_"];
|
||||||
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMenu] forKey:@"33_22_21_20_2_33_22_21_20_2_"];
|
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMenu] forKey:@"33_22_21_20_2_33_22_21_20_2_"];
|
||||||
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlay] forKey:@"33_23_21_20_2_33_23_21_20_2_"];
|
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlay] forKey:@"33_23_21_20_2_33_23_21_20_2_"];
|
||||||
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonRight] forKey:@"33_24_21_20_2_33_24_21_20_2_"];
|
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonRight] forKey:@"33_24_21_20_2_33_24_21_20_2_"];
|
||||||
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonLeft] forKey:@"33_25_21_20_2_33_25_21_20_2_"];
|
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonLeft] forKey:@"33_25_21_20_2_33_25_21_20_2_"];
|
||||||
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonRight_Hold] forKey:@"33_21_20_14_12_2_"];
|
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonRight_Hold] forKey:@"33_21_20_14_12_2_"];
|
||||||
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonLeft_Hold] forKey:@"33_21_20_13_12_2_"];
|
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonLeft_Hold] forKey:@"33_21_20_13_12_2_"];
|
||||||
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMenu_Hold] forKey:@"33_21_20_2_33_21_20_2_"];
|
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMenu_Hold] forKey:@"33_21_20_2_33_21_20_2_"];
|
||||||
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlay_Sleep] forKey:@"37_33_21_20_2_37_33_21_20_2_"];
|
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlay_Sleep] forKey:@"37_33_21_20_2_37_33_21_20_2_"];
|
||||||
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteControl_Switched] forKey:@"42_33_21_20_14_12_2_"];
|
[cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteControl_Switched] forKey:@"19_"];
|
||||||
|
[cookieToButtonMapping setObject:[NSNumber numberWithInt:k2009RemoteButtonPlay] forKey:@"33_21_20_8_2_33_21_20_8_2_"];
|
||||||
|
[cookieToButtonMapping setObject:[NSNumber numberWithInt:k2009RemoteButtonMiddlePlay] forKey:@"33_21_20_3_2_33_21_20_3_2_"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -171,7 +173,7 @@ const NSTimeInterval HOLD_RECOGNITION_TIME_INTERVAL=0.4;
|
|||||||
}
|
}
|
||||||
- (void) setClickCountingEnabled: (BOOL) value {
|
- (void) setClickCountingEnabled: (BOOL) value {
|
||||||
if (value) {
|
if (value) {
|
||||||
[self setClickCountEnabledButtons: kRemoteButtonVolume_Plus | kRemoteButtonVolume_Minus | kRemoteButtonPlay | kRemoteButtonLeft | kRemoteButtonRight | kRemoteButtonMenu];
|
[self setClickCountEnabledButtons: kRemoteButtonVolume_Plus | kRemoteButtonVolume_Minus | kRemoteButtonPlay | kRemoteButtonLeft | kRemoteButtonRight | kRemoteButtonMenu | k2009RemoteButtonPlay | k2009RemoteButtonMiddlePlay];
|
||||||
} else {
|
} else {
|
||||||
[self setClickCountEnabledButtons: 0];
|
[self setClickCountEnabledButtons: 0];
|
||||||
}
|
}
|
||||||
@ -448,10 +450,18 @@ static AppleRemote* sharedInstance=nil;
|
|||||||
cookieString = [previousRemainingCookieString stringByAppendingString: cookieString];
|
cookieString = [previousRemainingCookieString stringByAppendingString: cookieString];
|
||||||
NSLog(@"New cookie string is %@", cookieString);
|
NSLog(@"New cookie string is %@", cookieString);
|
||||||
[previousRemainingCookieString release], previousRemainingCookieString=nil;
|
[previousRemainingCookieString release], previousRemainingCookieString=nil;
|
||||||
}*/
|
}*/
|
||||||
if (cookieString == nil || [cookieString length] == 0) return;
|
if (cookieString == nil || [cookieString length] == 0) return;
|
||||||
NSNumber* buttonId = [[self cookieToButtonMapping] objectForKey: cookieString];
|
NSNumber* buttonId = [[self cookieToButtonMapping] objectForKey: cookieString];
|
||||||
if (buttonId != nil) {
|
if (buttonId != nil) {
|
||||||
|
switch ([buttonId intValue]) {
|
||||||
|
case k2009RemoteButtonPlay:
|
||||||
|
case k2009RemoteButtonMiddlePlay:
|
||||||
|
buttonId = [NSNumber numberWithInt:kRemoteButtonPlay];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
[self sendRemoteButtonEvent: [buttonId intValue] pressedDown: (sumOfValues>0)];
|
[self sendRemoteButtonEvent: [buttonId intValue] pressedDown: (sumOfValues>0)];
|
||||||
} else {
|
} else {
|
||||||
// let's see if a number of events are stored in the cookie string. this does
|
// let's see if a number of events are stored in the cookie string. this does
|
||||||
|
Loading…
Reference in New Issue
Block a user