OSDN Git Service

最初のコミット
[winaudioj/stedx.git] / sted_screen.h
1 /*
2   sted_screen.h
3   base class of screen driver
4
5   Made by Studio Breeze. 2002
6
7   Permission is hereby granted, free of charge, to any person obtaining a copy
8   of this software and associated documentation files (the "Software"), to deal
9   in the Software without restriction, including without limitation the rights
10   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11   copies of the Software, and to permit persons to whom the Software is
12   furnished to do so, subject to the following conditions:
13
14   The above copyright notice and this permission notice shall be included in
15   all copies or substantial portions of the Software.
16
17   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
20   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23   THE SOFTWARE.
24  */
25 #pragma once
26
27 #ifndef STED_SCREEN_H
28 #define STED_SCREEN_H
29
30 #include <stdio.h>
31
32 #ifndef __dosmode_t_defined__
33 #define __dosmode_t_defined__
34 typedef int dosmode_t;
35 #endif
36
37 enum {
38   EButtonLeft = 0,
39   EButtonRight
40 };
41
42 enum {
43   EButtonOff = 0,
44   EButtonOn
45 };
46
47 class CSTedScreenBase {
48  protected:
49   CSTedScreenBase();
50   void Construct(void);
51
52  public:
53   static CSTedScreenBase* New(void);
54   virtual ~CSTedScreenBase();
55   virtual void Tidy(void);
56
57   // window
58   virtual void InitWindow(void);
59   virtual void CloseWindow(void);
60   virtual void RepaintWindow(void);
61   virtual void UpdateWindow(void);
62   virtual void DisableUpdateWindow(void);
63
64   // color
65   virtual int SetGraphicsPalette(int in_pal, int in_color);
66   virtual int SetTextPalette(int in_pal, int in_color);
67   virtual int SetGraphicsColor(int in_color);
68   virtual int SetTextColor(int in_color);
69   
70   // cursor
71   virtual void SetCursor(int in_onoff);
72
73   // text
74   virtual void SetTextWindow(int in_y, int in_h);
75   virtual void Locate(int in_x, int in_y);
76   virtual void Puts(const char* in_str);
77   virtual void ClsEol(void);
78   virtual void ClsEd(void);
79   virtual void GraphicsPuts(int in_x, int in_y, const char* in_str);
80
81   // graphics
82   virtual void TextXBox(int in_x0, int in_y0, int in_x1, int in_y1, int in_page);
83   virtual void TextXXLine(int in_page, int in_x0, int in_y, int in_x1, int in_linestyle);
84   virtual void TextXYLine(int in_page, int in_x, int in_y0, int in_y1, int in_linestyle);
85   virtual void TextReverse(int in_x, int in_y, int in_width, int in_page);
86   virtual void TextReverseArea(int in_r_ad, int r_ln, int in_edit_scr);
87   virtual void TextFill(int in_page, int in_x, int in_y, int in_w, int in_h, int in_linestyle);
88   virtual void TextRasterCopy(int in_dst, int in_src, int in_line, int in_mode);
89   virtual void TextScroll(int in_x0, int in_y0, int in_xs, int in_ys, int in_x1, int in_y1);
90
91   virtual void GraphicsBox(int in_x0, int in_y0, int in_x1, int in_y1, unsigned int in_color, unsigned int in_linestyle);
92   virtual int GraphicsPoint(int in_x, int in_y);
93   virtual void GraphicsLine(int in_x0, int in_y0, int in_x1, int in_y1, int in_color, int in_linestyle);
94   virtual void GraphicsFill(int in_x0, int in_y0, int in_x1, int in_y1, int in_color);
95
96   virtual void CopyTextToGraphics(int in_editscreen);
97   virtual void CopyTextToGraphics2(int in_editscreen);
98
99   virtual void GraphicsHome(int in_currenthome);
100   virtual void ClsAll(void);
101   virtual void GraphicsClear(void);
102
103   // key
104   virtual int KeyInit(void);
105   virtual int KeyIn(int in_code);
106   virtual int KeyInp(void);
107   virtual int SftSense(void);
108   virtual int BitSense(int in_group);
109   virtual int KeySense(void);
110   virtual void KeyWait(void);
111   virtual void LedMode(int in_code, int in_onoff);
112   virtual void ClearKeyBuffer(void);
113   void SetFncKey(const char in_fnckey[12][6]);
114   void SetX68ScanCode(const int* in_codes);
115
116   // pointer
117   virtual void MouseInit(void);
118   virtual void SetMouseCursorVisible(int in_onoff);
119   virtual int GetMouseButtonState(void);
120   virtual int SetMouseMoveLimit(int in_x0, int in_y0, int in_x1, int in_y1);
121   virtual int GetMousePos(int *out_x, int *out_y);
122   virtual void MouseWait(void);
123
124   // midi devices
125   virtual int OpenMidiDevice(void);
126   virtual void CloseMidiDevice(void);
127   virtual int GetMidiData(void);
128   virtual int CanMidiRead(void);
129   virtual void PutMidiData(int in_data);
130   virtual void MidiWait(void);
131   virtual void MidiPlayerWait(void);
132
133   // midi players
134   virtual int StartMidiPlayer(unsigned char* in_data, int in_len);
135   virtual int StopMidiPlayer(void);
136   virtual int CloseMidiPlayer(int in_sig);
137
138   // file related
139   virtual dosmode_t FileChmod(const char* in_name, dosmode_t in_atr);
140   virtual int FileChdir(const char* in_name);
141   virtual int FileCurdir(int in_drive, char* out_buff);
142   virtual int FileCurdrv(void);
143   virtual int FileDelete(const char* in_name);
144   virtual int FileRename(const char* in_name, const char* in_newname);
145   virtual int FileFiles(struct _x68_filbuf *in_buff, const char *in_name, int in_atr);
146   virtual int FileNfiles(struct _x68_filbuf *in_buff);
147   virtual FILE* FileFopen(const char* in_name, const char* in_mode);
148
149   // misc functions
150   virtual int OnTime(void);
151   virtual int USleep(long in_usec);
152
153  protected:
154   bool fConstructed;
155   int fFncKey[12][6];
156   const int *fX68ScanCode;
157 };
158
159 /* accessor */
160  CSTedScreenBase* CreateScreenDriver(int in_size);
161 // void DestroyScreenDriver(CSTedScreenBase* in_driver);
162
163  CSTedScreenBase* GetDriver(void);
164
165 #endif /* STED_SCREEN_H */