- if( keyCode == NX_KEYTYPE_REWIND && !b_justJumped )
- {
- if( keyState == 0 && keyRepeat == 0 )
- {
- var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_PREV );
- }
- else if( keyRepeat == 1 )
- {
- var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_JUMP_BACKWARD_SHORT );
- b_justJumped = YES;
- [self performSelector:@selector(resetJump)
- withObject: NULL
- afterDelay:0.25];
- }
- }
+- (void)sendEvent: (NSEvent*)event
+{
+ if( b_mediaKeySupport )
+ {
+ if( [event type] == NSSystemDefined && [event subtype] == 8 )
+ {
+ int keyCode = (([event data1] & 0xFFFF0000) >> 16);
+ int keyFlags = ([event data1] & 0x0000FFFF);
+ int keyState = (((keyFlags & 0xFF00) >> 8)) == 0xA;
+ int keyRepeat = (keyFlags & 0x1);
+
+ if( keyCode == NX_KEYTYPE_PLAY && keyState == 0 )
+ var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_PLAY_PAUSE );
+
+ if( keyCode == NX_KEYTYPE_FAST && !b_justJumped )
+ {
+ if( keyState == 0 && keyRepeat == 0 )
+ {
+ var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_NEXT );
+ }
+ else if( keyRepeat == 1 )
+ {
+ var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_JUMP_FORWARD_SHORT );
+ b_justJumped = YES;
+ [self performSelector:@selector(resetJump)
+ withObject: NULL
+ afterDelay:0.25];
+ }
+ }
+
+ if( keyCode == NX_KEYTYPE_REWIND && !b_justJumped )
+ {
+ if( keyState == 0 && keyRepeat == 0 )
+ {
+ var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_PREV );
+ }
+ else if( keyRepeat == 1 )
+ {
+ var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_JUMP_BACKWARD_SHORT );
+ b_justJumped = YES;
+ [self performSelector:@selector(resetJump)
+ withObject: NULL
+ afterDelay:0.25];
+ }
+ }
+ }