summaryrefslogtreecommitdiff
path: root/uisimulator
diff options
context:
space:
mode:
Diffstat (limited to 'uisimulator')
-rw-r--r--uisimulator/win32/lcd-win32.c24
-rw-r--r--uisimulator/win32/lcd-win32.h2
-rw-r--r--uisimulator/win32/main.cpp29
-rw-r--r--uisimulator/win32/uisw32.cpp260
-rw-r--r--uisimulator/win32/uisw32.h3
-rw-r--r--uisimulator/win32/uisw32.suobin10752 -> 10240 bytes
-rw-r--r--uisimulator/win32/uisw32.vcproj26
7 files changed, 35 insertions, 309 deletions
diff --git a/uisimulator/win32/lcd-win32.c b/uisimulator/win32/lcd-win32.c
index 4539696cef..2330d444c5 100644
--- a/uisimulator/win32/lcd-win32.c
+++ b/uisimulator/win32/lcd-win32.c
@@ -28,14 +28,14 @@
// varaibles
unsigned char display[LCD_WIDTH][LCD_HEIGHT/8]; // the display
-char bitmap[LCD_WIDTH][LCD_HEIGHT]; // the ui display
+char bitmap[LCD_HEIGHT][LCD_WIDTH]; // the ui display
BITMAPINFO2 bmi =
{
sizeof (BITMAPINFOHEADER),
LCD_WIDTH, -LCD_HEIGHT, 1, 8,
BI_RGB, 0, 0, 0, 2, 2,
- UI_LCD_COLOR, 0, // green background color
+ UI_LCD_BGCOLOR, 0, // green background color
UI_LCD_BLACK, 0 // black color
}; // bitmap information
@@ -63,4 +63,24 @@ void lcd_update()
// natural sleep :)
Sleep (50);
+}
+
+// lcd_backlight
+// set backlight state of lcd
+void lcd_backlight (
+ bool on // switch backlight on or off?
+ )
+{
+ if (on)
+ {
+ RGBQUAD blon = {UI_LCD_BGCOLORLIGHT, 0};
+ bmi.bmiColors[0] = blon;
+ }
+ else
+ {
+ RGBQUAD blon = {UI_LCD_BGCOLOR, 0};
+ bmi.bmiColors[0] = blon;
+ }
+
+ InvalidateRect (hGUIWnd, NULL, FALSE);
} \ No newline at end of file
diff --git a/uisimulator/win32/lcd-win32.h b/uisimulator/win32/lcd-win32.h
index e4b1e3bd8e..1836e40b02 100644
--- a/uisimulator/win32/lcd-win32.h
+++ b/uisimulator/win32/lcd-win32.h
@@ -39,7 +39,7 @@ extern unsigned char display[LCD_WIDTH][LCD_HEIGHT/8]; // the display
#endif
-extern char bitmap[LCD_WIDTH][LCD_HEIGHT]; // the ui display
+extern char bitmap[LCD_HEIGHT][LCD_WIDTH]; // the ui display
extern BITMAPINFO2 bmi; // bitmap information
diff --git a/uisimulator/win32/main.cpp b/uisimulator/win32/main.cpp
deleted file mode 100644
index 7c3c66f967..0000000000
--- a/uisimulator/win32/main.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-#include "uisw32.h"
-#include "lcd-win32.h"
-
-#define FS 6
-
-int main (void)
-{
- int x;
- lcd_init ();
-
- while (1)
- {
- for (x = 0; x < 10; x++)
- {
- lcd_clear_display ();
- lcd_position (x, 12, FS);
- lcd_string ("Hello World!");
- lcd_position (x, 32, FS);
- lcd_string ("From the");
- lcd_position (x, 40, FS);
- lcd_string (" Open Source ");
- lcd_position (x, 48, FS);
- lcd_string ("Jukebox Project");
- lcd_update ();
- }
- }
-
- return 0;
-} \ No newline at end of file
diff --git a/uisimulator/win32/uisw32.cpp b/uisimulator/win32/uisw32.cpp
deleted file mode 100644
index 529ecbfb4e..0000000000
--- a/uisimulator/win32/uisw32.cpp
+++ /dev/null
@@ -1,260 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2002 by Felix Arends
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include <windows.h>
-#include <process.h>
-#include "uisw32.h"
-#include "resource.h"
-
-// extern functions
-extern void main (void *); // mod entry point
-
-// variables
-HWND hGUIWnd; // the GUI window handle
-unsigned int uThreadID; // id of mod thread
-PBYTE lpKeys;
-
-// GUIWndProc
-// window proc for GUI simulator
-LRESULT GUIWndProc (
- HWND hWnd,
- UINT uMsg,
- WPARAM wParam,
- LPARAM lParam
- )
-{
- static HBITMAP hBkgnd;
- static lpBmp [UI_WIDTH * UI_HEIGHT * 3];
- static HDC hMemDc;
-
- switch (uMsg)
- {
- case WM_CREATE:
- // load background image
- hBkgnd = (HBITMAP)LoadImage (GetModuleHandle (NULL), MAKEINTRESOURCE(IDB_UI),
- IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
- hMemDc = CreateCompatibleDC (GetDC (hWnd));
- SelectObject (hMemDc, hBkgnd);
- return TRUE;
- case WM_SIZING:
- {
- LPRECT r = (LPRECT)lParam;
- RECT r2;
- char s[256];
- int v;
-
- switch (wParam)
- {
- case WMSZ_BOTTOM:
- v = (r->bottom - r->top) / (UI_HEIGHT / 5);
- r->bottom = r->top + v * UI_HEIGHT / 5;
- r->right = r->left + v * UI_WIDTH / 5;
- r->right += GetSystemMetrics (SM_CXSIZEFRAME) * 2;
- r->bottom += GetSystemMetrics (SM_CYSIZEFRAME) * 2 + GetSystemMetrics (SM_CYSMCAPTION);
- break;
- case WMSZ_RIGHT:
- v = (r->right - r->left) / (UI_WIDTH / 5);
- r->bottom = r->top + v * UI_HEIGHT / 5;
- r->right = r->left + v * UI_WIDTH / 5;
- r->right += GetSystemMetrics (SM_CXSIZEFRAME) * 2;
- r->bottom += GetSystemMetrics (SM_CYSIZEFRAME) * 2 + GetSystemMetrics (SM_CYSMCAPTION);
- break;
- case WMSZ_TOP:
- v = (r->bottom - r->top) / (UI_HEIGHT / 5);
- r->top = r->bottom - v * UI_HEIGHT / 5;
- r->right = r->left + v * UI_WIDTH / 5;
- r->right += GetSystemMetrics (SM_CXSIZEFRAME) * 2;
- r->top -= GetSystemMetrics (SM_CYSIZEFRAME) * 2 + GetSystemMetrics (SM_CYSMCAPTION);
- break;
- case WMSZ_LEFT:
- v = (r->right - r->left) / (UI_WIDTH / 5);
- r->bottom = r->top + v * UI_HEIGHT / 5;
- r->left = r->right - v * UI_WIDTH / 5;
- r->left -= GetSystemMetrics (SM_CXSIZEFRAME) * 2;
- r->bottom += GetSystemMetrics (SM_CYSIZEFRAME) * 2 + GetSystemMetrics (SM_CYSMCAPTION);
- break;
- case WMSZ_BOTTOMRIGHT:
- GetWindowRect (hWnd, &r2);
- if (abs(r2.right - r->right) > abs(r2.bottom - r->bottom))
- v = (r->right - r->left) / (UI_WIDTH / 5);
- else
- v = (r->bottom - r->top) / (UI_HEIGHT / 5);
- r->bottom = r->top + v * UI_HEIGHT / 5;
- r->right = r->left + v * UI_WIDTH / 5;
- r->right += GetSystemMetrics (SM_CXSIZEFRAME) * 2;
- r->bottom += GetSystemMetrics (SM_CYSIZEFRAME) * 2 + GetSystemMetrics (SM_CYSMCAPTION);
- break;
- case WMSZ_BOTTOMLEFT:
- GetWindowRect (hWnd, &r2);
- if (abs(r2.left - r->left) > abs(r2.bottom - r->bottom))
- v = (r->right - r->left) / (UI_WIDTH / 5);
- else
- v = (r->bottom - r->top) / (UI_HEIGHT / 5);
- r->bottom = r->top + v * UI_HEIGHT / 5;
- r->left = r->right - v * UI_WIDTH / 5;
- r->left -= GetSystemMetrics (SM_CXSIZEFRAME) * 2;
- r->bottom += GetSystemMetrics (SM_CYSIZEFRAME) * 2 + GetSystemMetrics (SM_CYSMCAPTION);
- break;
- case WMSZ_TOPRIGHT:
- GetWindowRect (hWnd, &r2);
- if (abs(r2.right - r->right) > abs(r2.top - r->top))
- v = (r->right - r->left) / (UI_WIDTH / 5);
- else
- v = (r->bottom - r->top) / (UI_HEIGHT / 5);
- r->top = r->bottom - v * UI_HEIGHT / 5;
- r->right = r->left + v * UI_WIDTH / 5;
- r->right += GetSystemMetrics (SM_CXSIZEFRAME) * 2;
- r->top -= GetSystemMetrics (SM_CYSIZEFRAME) * 2 + GetSystemMetrics (SM_CYSMCAPTION);
- break;
- case WMSZ_TOPLEFT:
- GetWindowRect (hWnd, &r2);
- if (abs(r2.left - r->left) > abs(r2.top - r->top))
- v = (r->right - r->left) / (UI_WIDTH / 5);
- else
- v = (r->bottom - r->top) / (UI_HEIGHT / 5);
- r->top = r->bottom - v * UI_HEIGHT / 5;
- r->left = r->right - v * UI_WIDTH / 5;
- r->left -= GetSystemMetrics (SM_CXSIZEFRAME) * 2;
- r->top -= GetSystemMetrics (SM_CYSIZEFRAME) * 2 + GetSystemMetrics (SM_CYSMCAPTION);
- break;
- }
-
- wsprintf (s, "RockBox Simulator @%d%%",
- (r->right - r->left - GetSystemMetrics (SM_CXSIZEFRAME) * 2)
- * 100 / UI_WIDTH);
- SetWindowText (hWnd, s);
-
- return TRUE;
- }
- case WM_ERASEBKGND:
- {
- PAINTSTRUCT ps;
- HDC hDc = BeginPaint (hWnd, &ps);
- RECT r;
-
- GetClientRect (hWnd, &r);
- // blit to screen
- StretchBlt (hDc, 0, 0, r.right, r.bottom,
- hMemDc, 0, 0, UI_WIDTH, UI_HEIGHT, SRCCOPY);
- EndPaint (hWnd, &ps);
- return TRUE;
- }
- case WM_PAINT:
- {
- PAINTSTRUCT ps;
- RECT r;
- HDC hDc = BeginPaint (hWnd, &ps);
-
- GetClientRect (hWnd, &r);
- // draw lcd screen
- StretchDIBits (hDc,
- UI_LCD_POSX * r.right / UI_WIDTH, UI_LCD_POSY * r.bottom / UI_HEIGHT,
- LCD_WIDTH * r.right / UI_WIDTH, LCD_HEIGHT * r.bottom / UI_HEIGHT,
- 0, 0, LCD_WIDTH, LCD_HEIGHT,
- bitmap, (BITMAPINFO *) &bmi, DIB_RGB_COLORS, SRCCOPY);
-
- EndPaint (hWnd, &ps);
- return TRUE;
- }
- case WM_CLOSE:
- // close simulator
- hGUIWnd = NULL;
- PostQuitMessage (0);
- break;
- }
-
- return DefWindowProc (hWnd, uMsg, wParam, lParam);
-}
-
-// GUIStartup
-// register window class, show window, init GUI
-BOOL GUIStartup ()
-{
- WNDCLASS wc;
-
- // create window class
- ZeroMemory (&wc, sizeof(wc));
- wc.hbrBackground = GetSysColorBrush (COLOR_WINDOW);
- wc.hCursor = LoadCursor (NULL, IDC_ARROW);
- wc.hInstance = GetModuleHandle (NULL);
- wc.lpfnWndProc = (WNDPROC)GUIWndProc;
- wc.lpszClassName = "RockBoxUISimulator";
- wc.style = CS_HREDRAW | CS_VREDRAW;
-
- if (RegisterClass (&wc) == 0)
- return FALSE;
-
- // create window
- hGUIWnd = CreateWindowEx (
- WS_EX_TOOLWINDOW | WS_EX_PALETTEWINDOW,
- "RockBoxUISimulator", "ARCHOS JukeBox",
- WS_VISIBLE | WS_SYSMENU | WS_OVERLAPPEDWINDOW,
- CW_USEDEFAULT, CW_USEDEFAULT,
- UI_WIDTH + GetSystemMetrics (SM_CXSIZEFRAME) * 2,
- UI_HEIGHT + GetSystemMetrics (SM_CYSIZEFRAME) * 2 + GetSystemMetrics (SM_CYSMCAPTION),
- NULL, NULL, GetModuleHandle (NULL), NULL);
-
- if (hGUIWnd == NULL)
- return FALSE;
-
- return TRUE;
-}
-
-// GUIDown
-// destroy window, unregister window class
-int GUIDown ()
-{
- DestroyWindow (hGUIWnd);
- _endthreadex (uThreadID);
- return 0;
-}
-
-// GUIMessageLoop
-// standard message loop for GUI window
-void GUIMessageLoop ()
-{
- MSG msg;
- while (GetMessage (&msg, hGUIWnd, 0, 0) && hGUIWnd != NULL)
- {
- TranslateMessage (&msg);
- DispatchMessage (&msg);
- }
-}
-
-
-// WinMain
-// program entry point
-int WINAPI WinMain (
- HINSTANCE hInstance, // current instance
- HINSTANCE hPrevInstance, // previous instance
- LPSTR lpCmd, // command line
- int nShowCmd // show command
- )
-{
- if (!GUIStartup ())
- return 0;
-
- uThreadID = _beginthread (main, 0, NULL);
- if (uThreadID == -0L)
- return MessageBox (NULL, "Error creating mod thread!", "Error", MB_OK);
-
- GUIMessageLoop ();
-
- return GUIDown ();
-} \ No newline at end of file
diff --git a/uisimulator/win32/uisw32.h b/uisimulator/win32/uisw32.h
index d168c8955e..162d925aca 100644
--- a/uisimulator/win32/uisw32.h
+++ b/uisimulator/win32/uisw32.h
@@ -25,7 +25,8 @@
#define UI_WIDTH 240 // width of GUI window
#define UI_HEIGHT 360 // height of GUI window
-#define UI_LCD_COLOR 46, 67, 49 // bkgnd color of LCD
+#define UI_LCD_BGCOLOR 46, 67, 49 // bkgnd color of LCD (no backlight)
+#define UI_LCD_BGCOLORLIGHT 56, 77, 59 // bkgnd color of LCD (backlight)
#define UI_LCD_BLACK 0, 0, 0 // black
#define UI_LCD_POSX 59 // x position of lcd
#define UI_LCD_POSY 95 // y position of lcd
diff --git a/uisimulator/win32/uisw32.suo b/uisimulator/win32/uisw32.suo
index 070ca781b2..31b4d3d464 100644
--- a/uisimulator/win32/uisw32.suo
+++ b/uisimulator/win32/uisw32.suo
Binary files differ
diff --git a/uisimulator/win32/uisw32.vcproj b/uisimulator/win32/uisw32.vcproj
index afc181d417..cde446b6ad 100644
--- a/uisimulator/win32/uisw32.vcproj
+++ b/uisimulator/win32/uisw32.vcproj
@@ -65,8 +65,8 @@
Optimization="2"
InlineFunctionExpansion="1"
OmitFramePointers="TRUE"
- AdditionalIncludeDirectories="&quot;C:\Programming\CVS Checkout\RockBox\firmware\drivers&quot;;&quot;C:\Programming\CVS Checkout\RockBox\firmware&quot;"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;ARCHOS_RECORDER;SIMULATOR"
+ AdditionalIncludeDirectories="&quot;C:\Programming\CVS Checkout\RockBox\firmware\drivers&quot;;&quot;C:\Programming\CVS Checkout\RockBox\firmware&quot;;&quot;C:\Programming\CVS Checkout\RockBox\firmware\common&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;ARCHOS_RECORDER;SIMULATOR;WIN32"
StringPooling="TRUE"
RuntimeLibrary="0"
EnableFunctionLevelLinking="TRUE"
@@ -113,6 +113,9 @@
RelativePath="..\..\firmware\chartables.c">
</File>
<File
+ RelativePath="file-win32.c">
+ </File>
+ <File
RelativePath="kernel.c">
</File>
<File
@@ -120,30 +123,21 @@
</File>
<File
RelativePath="..\..\firmware\drivers\lcd.c">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)/$(InputName)1.obj"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)/$(InputName)1.obj"/>
- </FileConfiguration>
</File>
<File
- RelativePath="tetris.c">
+ RelativePath="main.c">
</File>
<File
- RelativePath="uisw32.cpp">
+ RelativePath="uisw32.c">
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc">
<File
+ RelativePath="file-win32.h">
+ </File>
+ <File
RelativePath="lcd-win32.h">
</File>
<File