]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Keyboard connected/disconnected update.
authorToni Wilen <twilen@winuae.net>
Sun, 4 Dec 2016 11:48:22 +0000 (13:48 +0200)
committerToni Wilen <twilen@winuae.net>
Sun, 4 Dec 2016 11:48:22 +0000 (13:48 +0200)
cia.cpp
custom.cpp
include/cia.h

diff --git a/cia.cpp b/cia.cpp
index 28800054dc45c83852ffe76c3c1d7b96dcc6f07e..fbc29e37584c56c2f61d94ab65a876bb789b8ea3 100644 (file)
--- a/cia.cpp
+++ b/cia.cpp
@@ -670,6 +670,8 @@ static void sendrw (void)
 
 int resetwarning_do (int canreset)
 {
+       if (!currprefs.keyboard_connected)
+               return 0;
        if (resetwarning_phase || regs.halted > 0) {
                /* just force reset if second reset happens during resetwarning */
                if (canreset) {
@@ -795,8 +797,13 @@ void CIAB_tod_handler (int hoffset)
        }
 }
 
-void keyboard_connected(void)
+void keyboard_connected(bool connect)
 {
+       if (connect) {
+               write_log(_T("Keyboard connected\n"));
+       } else {
+               write_log(_T("Keyboard disconnected\n"));
+       }
        kbstate = 0;
        kblostsynccnt = 0;
        resetwarning_phase = 0;
@@ -855,6 +862,10 @@ void CIA_hsync_posthandler (bool ciahsync, bool dotod)
                        if ((hsync_counter & 15) == 0)
                                check_keyboard();
                }
+       } else {
+               while (keys_available()) {
+                       get_next_key();
+               }
        }
 }
 
index 75394e15bca2a1018fbb0f65a20ce4d7d06832f0..f945ec6f9ea525ea211b85223ffd58ae1e662584 100644 (file)
@@ -9946,7 +9946,9 @@ void check_prefs_changed_custom (void)
        currprefs.collision_level = changed_prefs.collision_level;
        if (!currprefs.keyboard_connected && changed_prefs.keyboard_connected) {
                // send powerup sync
-               keyboard_connected();
+               keyboard_connected(true);
+       } else if (currprefs.keyboard_connected && !changed_prefs.keyboard_connected) {
+               keyboard_connected(false);
        }
        currprefs.keyboard_connected = changed_prefs.keyboard_connected;
 
index dc29ac9d492ccb476e41d4c3274a7277127572f3..46892d9d53ae7231a2b70322ec5801168aa94b16 100644 (file)
@@ -36,6 +36,6 @@ extern int parallel_direct_read_status (uae_u8*);
 
 extern void rtc_hardreset (void);
 
-extern void keyboard_connected(void);
+extern void keyboard_connected(bool);
 
 #endif /* UAE_CIA_H */