Commit 0765875a authored by Pierre Baillet's avatar Pierre Baillet

Hello,

Some news things:

 . I am still going on modifiying the key event handling method to make it more flexible. I still have a few things to get what I'd like to
 . added a keystrokes.h include which contains a generic name of all the VLC keys binding
 . modified some of the core interface routines to allow the passing of an extra parameter with a keystroke (VLC_CHANNEL).
 . next step: move all the interface dependent parts (such as the getKey function) to the plugins.

Hope this will run on your boxes...
parent c48d981f
...@@ -7,6 +7,13 @@ ...@@ -7,6 +7,13 @@
# #
# Urgency values: Wishlist, Normal, Important, Critical # Urgency values: Wishlist, Normal, Important, Critical
Task: 0x36
Difficulty: Medium
Urgency: Normal
Description: Finish the new keyboard input interface to support
interfaces that allow modifiers. This will allow the SDL to run
properly.
Task: 0x35 Task: 0x35
Difficulty: Medium Difficulty: Medium
Urgency: Important Urgency: Important
......
...@@ -48,10 +48,17 @@ typedef int ( intf_sys_create_t ) ( p_intf_thread_t p_intf ); ...@@ -48,10 +48,17 @@ typedef int ( intf_sys_create_t ) ( p_intf_thread_t p_intf );
typedef void ( intf_sys_destroy_t ) ( p_intf_thread_t p_intf ); typedef void ( intf_sys_destroy_t ) ( p_intf_thread_t p_intf );
typedef void ( intf_sys_manage_t ) ( p_intf_thread_t p_intf ); typedef void ( intf_sys_manage_t ) ( p_intf_thread_t p_intf );
typedef struct _keyparam
{
int key;
int param;
} keyparm;
typedef struct _key typedef struct _key
{ {
int received_key; int received_key;
int forwarded_key; keyparm forwarded;
struct _key * next; struct _key * next;
} intf_key; } intf_key;
...@@ -81,6 +88,9 @@ typedef struct intf_thread_s ...@@ -81,6 +88,9 @@ typedef struct intf_thread_s
p_vout_thread_t p_vout; p_vout_thread_t p_vout;
p_input_thread_t p_input; p_input_thread_t p_input;
/* Specific functions */
keyparm (*p_intf_getKey)(struct intf_thread_s *p_intf, int r_key) ;
} intf_thread_t; } intf_thread_t;
/***************************************************************************** /*****************************************************************************
...@@ -93,9 +103,11 @@ void intf_Destroy ( intf_thread_t * p_intf ); ...@@ -93,9 +103,11 @@ void intf_Destroy ( intf_thread_t * p_intf );
int intf_SelectChannel ( intf_thread_t * p_intf, int i_channel ); int intf_SelectChannel ( intf_thread_t * p_intf, int i_channel );
int intf_ProcessKey ( intf_thread_t * p_intf, int i_key ); int intf_ProcessKey ( intf_thread_t * p_intf, int i_key );
void intf_AssignKey( intf_thread_t *p_intf, int r_key, int f_key); void intf_AssignKey( intf_thread_t *p_intf, int r_key, int f_key, int param);
void intf_AssignSKey( intf_thread_t *p_intf, int r_key, int f_key);
int intf_getKey( intf_thread_t *p_intf, int r_key); keyparm intf_getKey( intf_thread_t *p_intf, int r_key);
void intf_AssignNormalKeys( intf_thread_t *p_intf); void intf_AssignNormalKeys( intf_thread_t *p_intf);
#ifndef VLC_KEYS
#define VLC_KEYS
#define VLC_QUIT 0x01
#define VLC_CHANNEL 0x02
#define VLC_LOUDER 0x03
#define VLC_QUIETER 0x04
#define VLC_MUTE 0x05
#define VLC_LESS_GAMMA 0x06
#define VLC_MORE_GAMMA 0x07
#define VLC_GRAYSCALE 0x08
#define VLC_INTERFACE 0x09
#define VLC_INFO 0x0A
#define VLC_SCALING 0x0B
#define VLC_UNKNOWN 0x0C
//#define VLC_CHANNEL 0x0D
#endif
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
#include "interface.h" #include "interface.h"
#include "intf_msg.h" #include "intf_msg.h"
#include "keystrokes.h"
#include "main.h" #include "main.h"
...@@ -147,7 +148,7 @@ void intf_SDLManage( intf_thread_t *p_intf ) ...@@ -147,7 +148,7 @@ void intf_SDLManage( intf_thread_t *p_intf )
} }
break; break;
case SDL_QUIT: case SDL_QUIT:
intf_ProcessKey( p_intf, 'Q' ); intf_ProcessKey( p_intf, VLC_QUIT );
break; break;
default: default:
break; break;
...@@ -155,31 +156,34 @@ void intf_SDLManage( intf_thread_t *p_intf ) ...@@ -155,31 +156,34 @@ void intf_SDLManage( intf_thread_t *p_intf )
} }
} }
void intf_SDL_Keymap(intf_thread_t * p_intf ) void intf_SDL_Keymap(intf_thread_t * p_intf )
{ {
intf_AssignKey(p_intf, SDLK_q, 'Q'); p_intf->p_intf_getKey = intf_getKey;
intf_AssignKey(p_intf, SDLK_ESCAPE, 'Q'); intf_AssignSKey(p_intf, SDLK_q, VLC_QUIT);
intf_AssignSKey(p_intf, SDLK_ESCAPE, VLC_QUIT);
/* intf_AssignKey(p_intf,3,'Q'); */ /* intf_AssignKey(p_intf,3,'Q'); */
intf_AssignKey(p_intf, SDLK_0, '0'); intf_AssignKey(p_intf, SDLK_0, VLC_CHANNEL,0);
intf_AssignKey(p_intf, SDLK_1, '1'); intf_AssignKey(p_intf, SDLK_1, VLC_CHANNEL,1);
intf_AssignKey(p_intf, SDLK_2, '2'); intf_AssignKey(p_intf, SDLK_2, VLC_CHANNEL,2);
intf_AssignKey(p_intf, SDLK_3, '3'); intf_AssignKey(p_intf, SDLK_3, VLC_CHANNEL,3);
intf_AssignKey(p_intf, SDLK_4, '4'); intf_AssignKey(p_intf, SDLK_4, VLC_CHANNEL,4);
intf_AssignKey(p_intf, SDLK_5, '5'); intf_AssignKey(p_intf, SDLK_5, VLC_CHANNEL,5);
intf_AssignKey(p_intf, SDLK_6, '6'); intf_AssignKey(p_intf, SDLK_6, VLC_CHANNEL,6);
intf_AssignKey(p_intf, SDLK_7, '7'); intf_AssignKey(p_intf, SDLK_7, VLC_CHANNEL,7);
intf_AssignKey(p_intf, SDLK_8, '8'); intf_AssignKey(p_intf, SDLK_8, VLC_CHANNEL,8);
intf_AssignKey(p_intf, SDLK_9, '9'); intf_AssignKey(p_intf, SDLK_9, VLC_CHANNEL,9);
intf_AssignKey(p_intf, SDLK_PLUS, '+'); intf_AssignSKey(p_intf, SDLK_PLUS, VLC_LOUDER);
intf_AssignKey(p_intf, SDLK_MINUS, '-'); intf_AssignSKey(p_intf, SDLK_MINUS, VLC_QUIETER);
intf_AssignKey(p_intf, SDLK_m, 'M'); intf_AssignSKey(p_intf, SDLK_m, VLC_MUTE);
/* intf_AssignKey(p_intf,'M','M'); */ /* intf_AssignKey(p_intf,'M','M'); */
intf_AssignKey(p_intf, SDLK_g, 'g'); intf_AssignSKey(p_intf, SDLK_g, VLC_LESS_GAMMA);
/* intf_AssignKey(p_intf,'G','G'); */ /* intf_AssignKey(p_intf,'G','G'); */
intf_AssignKey(p_intf, SDLK_c, 'c'); intf_AssignSKey(p_intf, SDLK_c, VLC_GRAYSCALE);
intf_AssignKey(p_intf, SDLK_SPACE, ' '); intf_AssignSKey(p_intf, SDLK_SPACE, VLC_INTERFACE);
intf_AssignKey(p_intf, 'i', 'i'); intf_AssignSKey(p_intf, 'i', VLC_INFO);
intf_AssignKey(p_intf, SDLK_s, 's'); intf_AssignSKey(p_intf, SDLK_s, VLC_SCALING);
} }
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment