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 @@
#
# 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
Difficulty: Medium
Urgency: Important
......
......@@ -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_manage_t ) ( p_intf_thread_t p_intf );
typedef struct _keyparam
{
int key;
int param;
} keyparm;
typedef struct _key
{
int received_key;
int forwarded_key;
keyparm forwarded;
struct _key * next;
} intf_key;
......@@ -81,6 +88,9 @@ typedef struct intf_thread_s
p_vout_thread_t p_vout;
p_input_thread_t p_input;
/* Specific functions */
keyparm (*p_intf_getKey)(struct intf_thread_s *p_intf, int r_key) ;
} intf_thread_t;
/*****************************************************************************
......@@ -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_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);
#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 @@
#include "interface.h"
#include "intf_msg.h"
#include "keystrokes.h"
#include "main.h"
......@@ -147,7 +148,7 @@ void intf_SDLManage( intf_thread_t *p_intf )
}
break;
case SDL_QUIT:
intf_ProcessKey( p_intf, 'Q' );
intf_ProcessKey( p_intf, VLC_QUIT );
break;
default:
break;
......@@ -155,31 +156,34 @@ void intf_SDLManage( intf_thread_t *p_intf )
}
}
void intf_SDL_Keymap(intf_thread_t * p_intf )
{
intf_AssignKey(p_intf, SDLK_q, 'Q');
intf_AssignKey(p_intf, SDLK_ESCAPE, 'Q');
{
p_intf->p_intf_getKey = intf_getKey;
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, SDLK_0, '0');
intf_AssignKey(p_intf, SDLK_1, '1');
intf_AssignKey(p_intf, SDLK_2, '2');
intf_AssignKey(p_intf, SDLK_3, '3');
intf_AssignKey(p_intf, SDLK_4, '4');
intf_AssignKey(p_intf, SDLK_5, '5');
intf_AssignKey(p_intf, SDLK_6, '6');
intf_AssignKey(p_intf, SDLK_7, '7');
intf_AssignKey(p_intf, SDLK_8, '8');
intf_AssignKey(p_intf, SDLK_9, '9');
intf_AssignKey(p_intf, SDLK_PLUS, '+');
intf_AssignKey(p_intf, SDLK_MINUS, '-');
intf_AssignKey(p_intf, SDLK_m, 'M');
intf_AssignKey(p_intf, SDLK_0, VLC_CHANNEL,0);
intf_AssignKey(p_intf, SDLK_1, VLC_CHANNEL,1);
intf_AssignKey(p_intf, SDLK_2, VLC_CHANNEL,2);
intf_AssignKey(p_intf, SDLK_3, VLC_CHANNEL,3);
intf_AssignKey(p_intf, SDLK_4, VLC_CHANNEL,4);
intf_AssignKey(p_intf, SDLK_5, VLC_CHANNEL,5);
intf_AssignKey(p_intf, SDLK_6, VLC_CHANNEL,6);
intf_AssignKey(p_intf, SDLK_7, VLC_CHANNEL,7);
intf_AssignKey(p_intf, SDLK_8, VLC_CHANNEL,8);
intf_AssignKey(p_intf, SDLK_9, VLC_CHANNEL,9);
intf_AssignSKey(p_intf, SDLK_PLUS, VLC_LOUDER);
intf_AssignSKey(p_intf, SDLK_MINUS, VLC_QUIETER);
intf_AssignSKey(p_intf, SDLK_m, VLC_MUTE);
/* 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, SDLK_c, 'c');
intf_AssignKey(p_intf, SDLK_SPACE, ' ');
intf_AssignKey(p_intf, 'i', 'i');
intf_AssignKey(p_intf, SDLK_s, 's');
intf_AssignSKey(p_intf, SDLK_c, VLC_GRAYSCALE);
intf_AssignSKey(p_intf, SDLK_SPACE, VLC_INTERFACE);
intf_AssignSKey(p_intf, 'i', VLC_INFO);
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