diff options
Diffstat (limited to 'uisimulator/win32')
-rw-r--r-- | uisimulator/win32/button.c | 138 |
1 files changed, 83 insertions, 55 deletions
diff --git a/uisimulator/win32/button.c b/uisimulator/win32/button.c index 3ecdca2b19..4fb4bd0612 100644 --- a/uisimulator/win32/button.c +++ b/uisimulator/win32/button.c | |||
@@ -50,61 +50,89 @@ int button_set_release(int newmask) | |||
50 | return oldmask; | 50 | return oldmask; |
51 | } | 51 | } |
52 | 52 | ||
53 | static int real_button_get(void) | ||
54 | { | ||
55 | if (bActive) | ||
56 | { | ||
57 | if (KEY (VK_NUMPAD4) || | ||
58 | KEY (VK_LEFT)) // left button | ||
59 | btn |= BUTTON_LEFT; | ||
60 | |||
61 | if (KEY (VK_NUMPAD6) || | ||
62 | KEY (VK_RIGHT)) | ||
63 | btn |= BUTTON_RIGHT; // right button | ||
64 | |||
65 | if (KEY (VK_NUMPAD8) || | ||
66 | KEY (VK_UP)) | ||
67 | btn |= BUTTON_UP; // up button | ||
68 | |||
69 | if (KEY (VK_NUMPAD2) || | ||
70 | KEY (VK_DOWN)) | ||
71 | btn |= BUTTON_DOWN; // down button | ||
72 | |||
73 | if (KEY (VK_ADD)) | ||
74 | btn |= BUTTON_ON; // on button | ||
75 | |||
76 | #ifdef HAVE_RECORDER_KEYPAD | ||
77 | if (KEY (VK_RETURN)) | ||
78 | btn |= BUTTON_OFF; // off button | ||
79 | |||
80 | if (KEY (VK_DIVIDE) || KEY(VK_F1)) | ||
81 | btn |= BUTTON_F1; // F1 button | ||
82 | |||
83 | if (KEY (VK_MULTIPLY) || KEY(VK_F2)) | ||
84 | btn |= BUTTON_F2; // F2 button | ||
85 | |||
86 | if (KEY (VK_SUBTRACT) || KEY(VK_F3)) | ||
87 | btn |= BUTTON_F3; // F3 button | ||
88 | |||
89 | if (KEY (VK_NUMPAD5) || | ||
90 | KEY (VK_SPACE)) | ||
91 | btn |= BUTTON_PLAY; // play button | ||
92 | #else | ||
93 | if (KEY (VK_RETURN)) | ||
94 | btn |= BUTTON_MENU; // menu button | ||
95 | #endif | ||
96 | |||
97 | if (btn != 0) { | ||
98 | last_key = 0 ; | ||
99 | } | ||
100 | } | ||
101 | |||
102 | return btn; | ||
103 | } | ||
104 | |||
53 | int button_get(bool block) | 105 | int button_get(bool block) |
54 | { | 106 | { |
55 | int btn = 0; | 107 | int btn; |
56 | do | 108 | do { |
57 | { | 109 | |
58 | if (bActive) | 110 | btn = real_button_get(); |
59 | { | 111 | |
60 | if (KEY (VK_NUMPAD4) || | 112 | if(!btn) |
61 | KEY (VK_LEFT)) // left button | 113 | /* prevent busy-looping */ |
62 | btn |= BUTTON_LEFT; | 114 | Sleep (50); /* ms */ |
63 | 115 | else | |
64 | if (KEY (VK_NUMPAD6) || | 116 | break; |
65 | KEY (VK_RIGHT)) | 117 | |
66 | btn |= BUTTON_RIGHT; // right button | 118 | } while (block); |
67 | 119 | ||
68 | if (KEY (VK_NUMPAD8) || | 120 | return btn; |
69 | KEY (VK_UP)) | 121 | } |
70 | btn |= BUTTON_UP; // up button | 122 | |
71 | 123 | int button_get_w_tmo(int ticks) | |
72 | if (KEY (VK_NUMPAD2) || | 124 | { |
73 | KEY (VK_DOWN)) | 125 | int btn; |
74 | btn |= BUTTON_DOWN; // down button | 126 | do { |
75 | 127 | btn = real_button_get(); | |
76 | if (KEY (VK_ADD)) | 128 | |
77 | btn |= BUTTON_ON; // on button | 129 | if(!btn) |
78 | 130 | /* prevent busy-looping */ | |
79 | #ifdef HAVE_RECORDER_KEYPAD | 131 | sleep(1); /* one tick! */ |
80 | if (KEY (VK_RETURN)) | 132 | else |
81 | btn |= BUTTON_OFF; // off button | 133 | break; |
82 | 134 | ||
83 | if (KEY (VK_DIVIDE) || KEY(VK_F1)) | 135 | } while (block); |
84 | btn |= BUTTON_F1; // F1 button | 136 | |
85 | 137 | return btn; | |
86 | if (KEY (VK_MULTIPLY) || KEY(VK_F2)) | ||
87 | btn |= BUTTON_F2; // F2 button | ||
88 | |||
89 | if (KEY (VK_SUBTRACT) || KEY(VK_F3)) | ||
90 | btn |= BUTTON_F3; // F3 button | ||
91 | |||
92 | if (KEY (VK_NUMPAD5) || | ||
93 | KEY (VK_SPACE)) | ||
94 | btn |= BUTTON_PLAY; // play button | ||
95 | #else | ||
96 | if (KEY (VK_RETURN)) | ||
97 | btn |= BUTTON_MENU; // menu button | ||
98 | #endif | ||
99 | |||
100 | if (btn != 0) { | ||
101 | last_key = 0 ; | ||
102 | } | ||
103 | } | ||
104 | } | ||
105 | while (btn == 0 && block); | ||
106 | |||
107 | Sleep (50); | ||
108 | |||
109 | return btn; | ||
110 | } | 138 | } |