Annotation of uae/src/include/bebox.h, revision 1.1.1.1

1.1       root        1: /* 
                      2:  * UAE - The Un*x Amiga Emulator
                      3:  *
                      4:  * BeBox port specific stuff
                      5:  * 
                      6:  * (c) 1996 Christian Bauer
                      7:  * (c) 1996 Patrick Hanevold
                      8:  */
                      9: 
                     10: extern "C" {
                     11: #include "sysconfig.h"
                     12: #include "sysdeps.h"
                     13: #include "config.h"
                     14: #include "options.h"
                     15: #include "memory.h"
                     16: #include "custom.h"
                     17: #include "newcpu.h"
                     18: #include "disk.h"
                     19: #include "debug.h"
                     20: #include "xwin.h"
                     21: #include "os.h"
                     22: #include "filesys.h"
                     23: #include "keybuf.h"
                     24: #include "keyboard.h"
                     25: #include "gui.h"
                     26: extern void usage(void);
                     27: extern void parse_cmdline(int,char**);
                     28: extern unsigned long frametime,timeframes;
                     29: }
                     30: 
                     31: class UAEWindow;
                     32: class BitmapView;
                     33: class Emulator;
                     34: 
                     35: 
                     36: /*
                     37:  *  The BeOS application object
                     38:  */
                     39: 
                     40: class UAE : public BApplication {
                     41: public:
                     42:        UAE();
                     43:        virtual void ArgvReceived(int argc, char **argv);
                     44:        virtual void ReadyToRun(void);
                     45:        virtual bool QuitRequested(void);
                     46:        virtual void AboutRequested(void);
                     47: //     virtual void MessageReceived(BMessage*);
                     48:        virtual void RefsReceived(BMessage*);
                     49:        virtual void FilePanelClosed(BMessage*);
                     50:        void RequestFile(char*,int);
                     51: private:
                     52:        BBitmap *the_bitmap;
                     53:        UAEWindow *main_window;
                     54:        Emulator *the_emulator;
                     55: };
                     56: 
                     57: 
                     58: /*
                     59:  *  The window in which the Amiga graphics are displayed, handles I/O
                     60:  */
                     61: 
                     62: class UAEWindow : public BWindow {
                     63: public:
                     64:        UAEWindow(BRect frame, BBitmap *bitmap);
                     65:        virtual bool QuitRequested(void);
                     66:        virtual void WindowActivated(bool active);
                     67:        virtual void MessageReceived(BMessage*);
                     68: private:
                     69:        BitmapView *main_view;
                     70: };
                     71: 
                     72: /*
                     73:  *  A simple view class for blitting a bitmap on the screen
                     74:  */
                     75: 
                     76: class BitmapView : public BView {
                     77: public:
                     78:        BitmapView(BRect frame, BBitmap *bitmap);
                     79:        virtual void Draw(BRect update);
                     80:        virtual void KeyDown(ulong);
                     81:        void Draw(BRect from, BRect to);
                     82: private:
                     83:        BBitmap *the_bitmap;
                     84: };
                     85: 
                     86: /*
                     87:  *     LED
                     88:  */
                     89: 
                     90: struct Color{
                     91:        int     R;
                     92:        int     G;
                     93:        int     B;
                     94: };
                     95: 
                     96: class LEDView : public BView {
                     97: public:
                     98:        LEDView(BRect,int,int,int,int,int,int);
                     99:        virtual void AttachedToWindow(void);
                    100:        virtual void Draw(BRect);
                    101:        void    SetState(bool);
                    102: private:
                    103:        void    Refresh(void);
                    104:        BRect   bounds;
                    105:        Color   ActiveColor;
                    106:        Color   IdleColor;
                    107:        bool    State;
                    108: };
                    109: 
                    110: /*
                    111:  *     Meter
                    112:  */
                    113: 
                    114: class MeterView : public BView {
                    115: public:
                    116:        MeterView(BRect);
                    117:        virtual void AttachedToWindow(void);
                    118:        virtual void Draw(BRect);
                    119:        virtual void Pulse(void);
                    120: private:
                    121:        void    Refresh(void);
                    122:        BRect   bounds;
                    123: };
                    124: 
                    125: /*
                    126:  *  For running the emulation in its own thread
                    127:  */
                    128: 
                    129: class Emulator {
                    130: public:
                    131:        Emulator() {thread_running = FALSE;}
                    132:        void Run(void);
                    133:        void Quit(void);
                    134: 
                    135: private:
                    136:        static long thread_invoc(void*); //Emulator *obj);
                    137:        void thread_func(void);
                    138: 
                    139:        thread_id the_thread;
                    140:        bool thread_running;
                    141: };
                    142: 
                    143: 
                    144: // Keyboard and mouse
                    145: int buttonstate[3];
                    146: int newmousecounters;
                    147: int lastmx, lastmy;
                    148: 
                    149: key_info old_key_info;
                    150: bool inwindow;
                    151: bool window_open;
                    152: 
                    153: struct Event{
                    154:        Event   *Next;
                    155:        int             Age;
                    156:        char    Key;
                    157: };
                    158: 
                    159: Event *CurentEvent,*LastEvent;
                    160: 
                    161: // Color map and bitmap
                    162: xcolnr xcolors[4096];
                    163: struct vidbuf_description gfxvidinfo;
                    164: 
                    165: int vsize, hsize, hpixels;
                    166: 
                    167: BitmapView *bitmap_view;
                    168: UAEWindow *bitmap_window;
                    169: 
                    170: 
                    171: // Array for converting Be keycodes to Amiga keycodes
                    172: int keycode2amiga[128] = {
                    173:        -1, AK_ESC, AK_F1, AK_F2, AK_F3, AK_F4, AK_F5, AK_F6,
                    174:        AK_F7, AK_F8, AK_F9, AK_F10, AK_LALT, AK_mousestuff, AK_RALT, -1,
                    175: 
                    176:        -1, AK_BACKQUOTE, AK_1, AK_2, AK_3, AK_4, AK_5, AK_6,
                    177:        AK_7, AK_8, AK_9, AK_0, AK_MINUS, AK_EQUAL, AK_BS, AK_HELP,
                    178: 
                    179:        AK_NPLPAREN, AK_RAMI, AK_NPLPAREN, AK_NPDIV, AK_NPMUL, AK_NPSUB, AK_TAB, AK_Q,
                    180:        AK_W, AK_E, AK_R, AK_T, AK_Y, AK_U, AK_I, AK_O,
                    181: 
                    182:        AK_P, AK_LBRACKET, AK_RBRACKET, AK_BACKSLASH, AK_DEL, AK_NPRPAREN, AK_LAMI, AK_NP7,
                    183:        AK_NP8, AK_NP9, AK_NPADD, AK_CAPSLOCK, AK_A, AK_S, AK_D, AK_F,
                    184: 
                    185:        AK_G, AK_H, AK_J, AK_K, AK_L, AK_SEMICOLON, AK_QUOTE, AK_RET,
                    186:        AK_NP4, AK_NP5, AK_NP6, AK_LSH, AK_Z, AK_X, AK_C, AK_V,
                    187: 
                    188:        AK_B, AK_N, AK_M, AK_COMMA, AK_PERIOD, AK_SLASH, AK_RSH, AK_UP,
                    189:        AK_NP1, AK_NP2, AK_NP3, AK_ENT, AK_CTRL, AK_LAMI, AK_SPC, AK_RAMI,
                    190: 
                    191:        AK_RALT, AK_LF, AK_DN, AK_RT, AK_NP0, AK_NPDEL, AK_LALT, AK_RALT,
                    192:        AK_LTGT, -1, -1, -1, -1, -1, -1, -1,
                    193: 
                    194:        -1, -1, -1, -1, -1, -1, -1, -1,
                    195:        -1, -1, -1, -1, -1, -1, -1, -1
                    196: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.