[ros-diffs] [sir_richard] 45524: [FREELDR]: Remove C++ style indirected "UI" component from FreeLDR ARM, for several reasons that ought to be considered on x86 too: - It redraws the screen in two different ways (zero memory and character-by-character fill) over 15 times for a single boot. You notice these things on a little ARM chip! - It keeps coping data from/to an "off-screen buffer" way too much, instead of only when the video needs to be synced. - It makes assumptions about all Video Buffers supporting Character-Mode VGA. - It can be configured to draw cyan/yellow ponies, instead of a normal NT boot menu. The ARM build now uses a "directui.c" implementation which fixes all these issues and is efficient and to the point. It presents a normal Windows boot selection menu on ARM. [FREELDR]: Do not build any of the video routines, or the UI routines, on ARM.

sir_richard at svn.reactos.org sir_richard at svn.reactos.org
Tue Feb 9 03:53:45 CET 2010


Author: sir_richard
Date: Tue Feb  9 03:53:45 2010
New Revision: 45524

URL: http://svn.reactos.org/svn/reactos?rev=45524&view=rev
Log:
[FREELDR]: Remove C++ style indirected "UI" component from FreeLDR ARM, for several reasons that ought to be considered on x86 too:
    - It redraws the screen in two different ways (zero memory and character-by-character fill) over 15 times for a single boot. You notice these things on a little ARM chip!
    - It keeps coping data from/to an "off-screen buffer" way too much, instead of only when the video needs to be synced.
    - It makes assumptions about all Video Buffers supporting Character-Mode VGA.
    - It can be configured to draw cyan/yellow ponies, instead of a normal NT boot menu.
    The ARM build now uses a "directui.c" implementation which fixes all these issues and is efficient and to the point. It presents a normal Windows boot selection menu on ARM.
[FREELDR]: Do not build any of the video routines, or the UI routines, on ARM.

Added:
    trunk/reactos/boot/freeldr/freeldr/ui/directui.c   (with props)
Modified:
    trunk/reactos/boot/freeldr/freeldr/ui/gui.c
    trunk/reactos/boot/freeldr/freeldr/ui/minitui.c
    trunk/reactos/boot/freeldr/freeldr/ui/noui.c
    trunk/reactos/boot/freeldr/freeldr/ui/tui.c
    trunk/reactos/boot/freeldr/freeldr/ui/tuimenu.c
    trunk/reactos/boot/freeldr/freeldr/ui/ui.c
    trunk/reactos/boot/freeldr/freeldr/video/fade.c
    trunk/reactos/boot/freeldr/freeldr/video/palette.c
    trunk/reactos/boot/freeldr/freeldr/video/video.c

Added: trunk/reactos/boot/freeldr/freeldr/ui/directui.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/ui/directui.c?rev=45524&view=auto
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/ui/directui.c (added)
+++ trunk/reactos/boot/freeldr/freeldr/ui/directui.c [iso-8859-1] Tue Feb  9 03:53:45 2010
@@ -1,0 +1,574 @@
+/*
+ * PROJECT:         ReactOS Boot Loader
+ * LICENSE:         BSD - See COPYING.ARM in the top level directory
+ * FILE:            boot/freeldr/freeldr/ui/directui.c
+ * PURPOSE:         FreeLDR UI Routines
+ * PROGRAMMERS:     ReactOS Portable Systems Group
+ */
+#ifdef _M_ARM
+
+/* INCLUDES *******************************************************************/
+
+#include <freeldr.h>
+#include <debug.h>
+
+/* GLOBALS ********************************************************************/
+
+/* FUNCTIONS ******************************************************************/
+
+ULONG UiScreenWidth;
+ULONG UiScreenHeight;
+UCHAR UiMenuFgColor = COLOR_GRAY;
+UCHAR UiMenuBgColor = COLOR_BLACK;
+UCHAR UiTextColor = COLOR_GRAY;
+UCHAR UiSelectedTextColor = COLOR_BLACK;
+UCHAR UiSelectedTextBgColor = COLOR_GRAY;
+CHAR UiTimeText[260] = "Seconds until highlighted choice will be started automatically:   ";
+
+INT
+TuiPrintf(const char *Format,
+          ...)
+{
+	int i;
+	int Length;
+	va_list ap;
+	CHAR Buffer[512];
+
+	va_start(ap, Format);
+	Length = _vsnprintf(Buffer, sizeof(Buffer), Format, ap);
+	va_end(ap);
+
+	if (Length == -1) Length = sizeof(Buffer);
+
+	for (i = 0; i < Length; i++)
+	{
+		MachConsPutChar(Buffer[i]);
+	}
+
+	return Length;
+}
+
+BOOLEAN
+UiInitialize(IN BOOLEAN ShowGui)
+{
+	ULONG Depth;
+    
+    /* Nothing to do */
+    if (!ShowGui) return TRUE;
+
+    /* Set mode and query size */
+	MachVideoSetDisplayMode(NULL, TRUE);
+	MachVideoGetDisplaySize(&UiScreenWidth, &UiScreenHeight, &Depth);
+	return TRUE;
+}
+
+VOID
+UiUnInitialize(IN PCSTR BootText)
+{
+    /* Nothing to do */
+    return;
+}
+
+VOID
+UiDrawBackdrop(VOID)
+{
+	/* Clear the screen */
+	MachVideoClearScreen(ATTR(COLOR_WHITE, COLOR_BLACK));
+}
+
+VOID
+UiDrawText(IN ULONG X,
+           IN ULONG Y,
+           IN PCSTR Text,
+           IN UCHAR Attr)
+{
+	ULONG i, j;
+
+    /* Draw the text character by character, but don't exceed the width */
+	for (i = X, j = 0; Text[j] && i < UiScreenWidth; i++, j++)
+	{
+	    /* Write the character */
+        MachVideoPutChar(Text[j], Attr, i, Y);
+	}
+}
+
+VOID
+UiDrawCenteredText(IN ULONG Left,
+                   IN ULONG Top,
+                   IN ULONG Right,
+                   IN ULONG Bottom,
+                   IN PCSTR TextString,
+                   IN UCHAR Attr)
+{
+	ULONG TextLength, BoxWidth, BoxHeight, LineBreakCount, Index, LastIndex;
+	ULONG RealLeft, RealTop, X, Y;
+	CHAR Temp[2];
+
+    /* Query text length */
+	TextLength = strlen(TextString);
+
+    /* Count the new lines and the box width */
+	LineBreakCount = 0;
+	BoxWidth = 0;
+	LastIndex = 0;
+	for (Index=0; Index < TextLength; Index++)
+	{
+	    /* Scan for new lines */
+		if (TextString[Index] == '\n')
+		{
+		    /* Remember the new line */
+			LastIndex = Index;
+			LineBreakCount++;
+		}
+		else
+		{
+		    /* Check for new larger box width */
+			if ((Index - LastIndex) > BoxWidth)
+			{
+			    /* Update it */
+				BoxWidth = (Index - LastIndex);
+			}
+		}
+	}
+
+    /* Base the box height on the number of lines */
+	BoxHeight = LineBreakCount + 1;
+
+    /* Create the centered coordinates */
+	RealLeft = (((Right - Left) - BoxWidth) / 2) + Left;
+	RealTop = (((Bottom - Top) - BoxHeight) / 2) + Top;
+
+    /* Now go for a second scan */
+	LastIndex = 0;
+	for (Index=0; Index < TextLength; Index++)
+	{
+	    /* Look for new lines again */
+		if (TextString[Index] == '\n')
+		{
+		    /* Update where the text should start */
+			RealTop++;
+			LastIndex = 0;
+		}
+		else
+		{
+		    /* We've got a line of text to print, do it */
+			X = RealLeft + LastIndex;
+			Y = RealTop;
+			LastIndex++;
+			Temp[0] = TextString[Index];
+			Temp[1] = 0;
+			UiDrawText(X, Y, Temp, Attr);
+		}
+	}
+}
+
+VOID
+UiDrawStatusText(IN PCSTR StatusText)
+{
+    return;
+}
+
+VOID
+UiInfoBox(IN PCSTR MessageText)
+{
+    TuiPrintf(MessageText);
+}
+
+VOID
+UiMessageBox(IN PCSTR MessageText)
+{
+    TuiPrintf(MessageText);
+}
+
+VOID
+UiMessageBoxCritical(IN PCSTR MessageText)
+{
+    TuiPrintf(MessageText);
+}
+
+VOID
+UiDrawProgressBarCenter(IN ULONG Position,
+                        IN ULONG Range,
+                        IN PCHAR ProgressText)
+{
+    ULONG Left, Top, Right, Bottom, Width, Height;
+
+	/* Build the coordinates and sizes */
+	Height = 2;
+	Width = UiScreenWidth;
+	Left = 0;
+	Right = (Left + Width) - 1;
+	Top = UiScreenHeight - Height - 4;
+	Bottom = Top + Height + 1;
+
+    /* Draw the progress bar */
+	UiDrawProgressBar(Left, Top, Right, Bottom, Position, Range, ProgressText);
+}
+
+VOID
+UiDrawProgressBar(IN ULONG Left,
+                  IN ULONG Top,
+                  IN ULONG Right,
+                  IN ULONG Bottom, 
+                  IN ULONG Position,
+                  IN ULONG Range,
+                  IN PCHAR ProgressText)
+{
+    ULONG i, ProgressBarWidth;
+	
+	/* Calculate the width of the bar proper */
+	ProgressBarWidth = (Right - Left) - 3;
+
+	/* First make sure the progress bar text fits */
+	UiTruncateStringEllipsis(ProgressText, ProgressBarWidth - 4);
+	if (Position > Range) Position = Range;
+
+	/* Draw the "Loading..." text */
+	UiDrawCenteredText(Left + 2, Top + 1, Right - 2, Top + 1, ProgressText, ATTR(7, 0));
+
+	/* Draw the percent complete */
+	for (i = 0; i < (Position * ProgressBarWidth) / Range; i++)
+	{
+	    /* Use the fill character */
+		UiDrawText(Left + 2 + i, Top + 2, "\xDB", ATTR(UiTextColor, UiMenuBgColor));
+	}
+}
+
+VOID
+UiShowMessageBoxesInSection(IN PCSTR SectionName)
+{
+    return;
+}
+
+VOID
+UiTruncateStringEllipsis(IN PCHAR StringText,
+                         IN ULONG MaxChars)
+{
+    /* If it's too large, just add some ellipsis past the maximum */
+	if (strlen(StringText) > MaxChars) strcpy(&StringText[MaxChars - 3], "...");
+}
+
+VOID
+NTAPI
+UiDrawMenuBox(IN PUI_MENU_INFO MenuInfo)
+{
+    CHAR MenuLineText[80], TempString[80];
+    ULONG i;
+
+    /* If there is a timeout draw the time remaining */
+    if (MenuInfo->MenuTimeRemaining >= 0)
+    {
+        /* Copy the integral time text string, and remove the last 2 chars */
+        strcpy(TempString, UiTimeText);
+        i = strlen(TempString);
+        TempString[i - 2] = 0;
+
+        /* Display the first part of the string and the remaining time */
+        strcpy(MenuLineText, TempString);
+        _itoa(MenuInfo->MenuTimeRemaining, TempString, 10);
+        strcat(MenuLineText, TempString);
+
+        /* Add the last 2 chars */
+        strcat(MenuLineText, &UiTimeText[i - 2]);
+
+        /* Display under the menu directly */
+        UiDrawText(0,
+                   MenuInfo->Bottom + 3,
+                   MenuLineText,
+                   ATTR(UiMenuFgColor, UiMenuBgColor));
+    }
+    else
+    {
+        /* Erase the timeout string with spaces, and 0-terminate for sure */
+        for (i=0; i<sizeof(MenuLineText)-1; i++)
+        {
+            MenuLineText[i] = ' ';
+        }
+        MenuLineText[sizeof(MenuLineText)-1] = 0;
+
+        /* Draw this "empty" string to erase */
+        UiDrawText(0,
+                   MenuInfo->Bottom + 3,
+                   MenuLineText,
+                   ATTR(UiMenuFgColor, UiMenuBgColor));
+    }
+
+    /* Loop each item */
+    for (i = 0; i < MenuInfo->MenuItemCount; i++)
+    {
+        /* Check if it's a separator */
+        if (!(_stricmp(MenuInfo->MenuItemList[i], "SEPARATOR")))
+        {
+            /* Draw the separator line */
+            UiDrawText(MenuInfo->Left,
+                       MenuInfo->Top + i + 1,
+                       "\xC7",
+                       ATTR(UiMenuFgColor, UiMenuBgColor));
+            UiDrawText(MenuInfo->Right,
+                       MenuInfo->Top + i + 1,
+                       "\xB6",
+                       ATTR(UiMenuFgColor, UiMenuBgColor));
+        }
+    }
+}
+
+VOID
+NTAPI
+UiDrawMenuItem(IN PUI_MENU_INFO MenuInfo,
+               IN ULONG MenuItemNumber)
+{
+    CHAR MenuLineText[80];
+    UCHAR Attribute = ATTR(UiTextColor, UiMenuBgColor);
+
+    /* Simply left-align it */
+    MenuLineText[0] = '\0';
+    strcat(MenuLineText, "    ");
+
+    /* Now append the text string */
+    strcat(MenuLineText, MenuInfo->MenuItemList[MenuItemNumber]);
+
+    /* If it is a separator */
+    if (!(_stricmp(MenuInfo->MenuItemList[MenuItemNumber], "SEPARATOR")))
+    {
+        /* Make it a separator line and use menu colors */
+        memset(MenuLineText, 0, 80);
+        memset(MenuLineText, 0xC4, (MenuInfo->Right - MenuInfo->Left - 1));
+        Attribute = ATTR(UiMenuFgColor, UiMenuBgColor);
+    }
+    else if (MenuItemNumber == MenuInfo->SelectedMenuItem)
+    {
+        /*  If this is the selected item, use the selected colors */
+        Attribute = ATTR(UiSelectedTextColor, UiSelectedTextBgColor);
+    }
+
+    /* Draw the item */
+    UiDrawText(MenuInfo->Left + 1,
+               MenuInfo->Top + 1 + MenuItemNumber,
+               MenuLineText,
+               Attribute);
+}
+
+VOID
+UiDrawMenu(IN PUI_MENU_INFO MenuInfo)
+{
+    ULONG i;
+
+    /* No GUI status bar text, just minimal text. first to tell the user to choose */
+    UiDrawText(0,
+               MenuInfo->Top - 2,
+               "Please select the operating system to start:",
+               ATTR(UiMenuFgColor, UiMenuBgColor));
+
+    /* Now tell him how to choose */
+    UiDrawText(0,
+               MenuInfo->Bottom + 1,
+               "Use the up and down arrow keys to move the highlight to "
+               "your choice.",
+               ATTR(UiMenuFgColor, UiMenuBgColor));
+    UiDrawText(0,
+               MenuInfo->Bottom + 2,
+               "Press ENTER to choose.",
+               ATTR(UiMenuFgColor, UiMenuBgColor));
+
+    /* And offer F8 options */
+    UiDrawText(0,
+               UiScreenHeight - 4,
+               "For troubleshooting and advanced startup options for "
+               "ReactOS, press F8.",
+               ATTR(UiMenuFgColor, UiMenuBgColor));
+
+    /* Draw the menu box */
+    UiDrawMenuBox(MenuInfo);
+
+    /* Draw each line of the menu */
+    for (i = 0; i < MenuInfo->MenuItemCount; i++) UiDrawMenuItem(MenuInfo, i);
+}
+
+ULONG
+NTAPI
+UiProcessMenuKeyboardEvent(IN PUI_MENU_INFO MenuInfo,
+                           IN UiMenuKeyPressFilterCallback KeyPressFilter)
+{
+    ULONG KeyEvent = 0, Selected, Count;
+
+    /* Check for a keypress */
+    if (MachConsKbHit())
+    {
+        /* Check if the timeout is not already complete */
+        if (MenuInfo->MenuTimeRemaining != -1)
+        {
+            //
+            // Cancel it and remove it
+            //
+            MenuInfo->MenuTimeRemaining = -1;
+            UiDrawMenuBox(MenuInfo);
+        }
+
+        /* Get the key */
+        KeyEvent = MachConsGetCh();
+
+        /* Is it extended? Then get the extended key */
+        if (!KeyEvent) KeyEvent = MachConsGetCh();
+
+        /* Call the supplied key filter callback function to see if it is going to handle this keypress. */
+        if ((KeyPressFilter) && (KeyPressFilter(KeyEvent)))
+        {
+            /* It processed the key character, so redraw and exit */
+            UiDrawMenu(MenuInfo);
+            return 0;
+        }
+
+        /* Process the key */
+        if ((KeyEvent == KEY_UP) || (KeyEvent == KEY_DOWN))
+        {
+            /* Get the current selected item and count */
+            Selected = MenuInfo->SelectedMenuItem;
+            Count = MenuInfo->MenuItemCount - 1;
+
+            /* Check if this was a key up and there's a selected menu item */
+            if ((KeyEvent == KEY_UP) && (Selected))
+            {
+                /* Update the menu (Deselect previous item) */
+                MenuInfo->SelectedMenuItem--;
+                UiDrawMenuItem(MenuInfo, Selected);
+                Selected--;
+
+                /* Skip past any separators */
+                if ((Selected) &&
+                    !(_stricmp(MenuInfo->MenuItemList[Selected], "SEPARATOR")))
+                {
+                    MenuInfo->SelectedMenuItem--;
+                }
+            }
+            else if ((KeyEvent == KEY_DOWN) && (Selected < Count))
+            {
+                /* Update the menu (deselect previous item) */
+                MenuInfo->SelectedMenuItem++;
+                UiDrawMenuItem(MenuInfo, Selected);
+                Selected++;
+
+                /* Skip past any separators */
+                if ((Selected < Count) &&
+                    !(_stricmp(MenuInfo->MenuItemList[Selected], "SEPARATOR")))
+                {
+                    MenuInfo->SelectedMenuItem++;
+                }
+            }
+
+            /* Select new item and update video buffer */
+            UiDrawMenuItem(MenuInfo, MenuInfo->SelectedMenuItem);
+        }
+    }
+
+    /*  Return the pressed key */
+    return KeyEvent;
+}
+
+VOID
+NTAPI
+UiCalcMenuBoxSize(IN PUI_MENU_INFO MenuInfo)
+{
+    ULONG i, Width = 0, Height, Length;
+
+    /* Height is the menu item count plus 2 (top border & bottom border) */
+    Height = MenuInfo->MenuItemCount + 2;
+    Height -= 1; // Height is zero-based
+
+    /* Loop every item */
+    for (i = 0; i < MenuInfo->MenuItemCount; i++)
+    {
+        /* Get the string length and make it become the new width if necessary */
+        Length = strlen(MenuInfo->MenuItemList[i]);
+        if (Length > Width) Width = Length;
+    }
+
+    /* Allow room for left & right borders, plus 8 spaces on each side */
+    Width += 18;
+
+    /* Put the menu in the default left-corner position */
+    MenuInfo->Left = -1;
+    MenuInfo->Top = 4;
+
+    /* The other margins are the same */
+    MenuInfo->Right = (MenuInfo->Left) + Width;
+    MenuInfo->Bottom = (MenuInfo->Top) + Height;
+}
+
+BOOLEAN
+UiDisplayMenu(IN PCSTR MenuItemList[],
+              IN ULONG MenuItemCount,
+              IN ULONG DefaultMenuItem,
+              IN LONG MenuTimeOut,
+              OUT PULONG SelectedMenuItem,
+              IN BOOLEAN CanEscape,
+              IN UiMenuKeyPressFilterCallback KeyPressFilter)
+{
+    UI_MENU_INFO MenuInformation;
+    ULONG LastClockSecond;
+    ULONG CurrentClockSecond;
+    ULONG KeyPress;
+
+    /* Check if there's no timeout */
+    if (!MenuTimeOut)
+    {
+        /* Return the default selected item */
+        if (SelectedMenuItem) *SelectedMenuItem = DefaultMenuItem;
+        return TRUE;
+    }
+
+    /* Setup the MENU_INFO structure */
+    MenuInformation.MenuItemList = MenuItemList;
+    MenuInformation.MenuItemCount = MenuItemCount;
+    MenuInformation.MenuTimeRemaining = MenuTimeOut;
+    MenuInformation.SelectedMenuItem = DefaultMenuItem;
+
+    /* Calculate the size of the menu box */
+    UiCalcMenuBoxSize(&MenuInformation);
+
+    /* Draw the menu */
+    UiDrawMenu(&MenuInformation);
+
+    /* Get the current second of time */
+    LastClockSecond = ArcGetTime()->Second;
+
+    /* Process keys */
+    while (TRUE)
+    {
+        /* Process key presses */
+        KeyPress = UiProcessMenuKeyboardEvent(&MenuInformation,
+                                              KeyPressFilter);
+
+        /* Check for ENTER or ESC */
+        if (KeyPress == KEY_ENTER) break;
+        if (CanEscape && KeyPress == KEY_ESC) return FALSE;
+
+        /* Check if there is a countdown */
+        if (MenuInformation.MenuTimeRemaining)
+        {
+            /* Get the updated time, seconds only */
+            CurrentClockSecond = ArcGetTime()->Second;
+
+            /* Check if more then a second has now elapsed */
+            if (CurrentClockSecond != LastClockSecond)
+            {
+                /* Update the time information */
+                LastClockSecond = CurrentClockSecond;
+                MenuInformation.MenuTimeRemaining--;
+
+                /* Update the menu */
+                UiDrawMenuBox(&MenuInformation);
+            }
+        }
+        else
+        {
+            /* A time out occurred, exit this loop and return default OS */
+            break;
+        }
+    }
+
+    /* Return the selected item */
+    if (SelectedMenuItem) *SelectedMenuItem = MenuInformation.SelectedMenuItem;
+    return TRUE;
+}
+
+#endif

Propchange: trunk/reactos/boot/freeldr/freeldr/ui/directui.c
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: trunk/reactos/boot/freeldr/freeldr/ui/gui.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/ui/gui.c?rev=45524&r1=45523&r2=45524&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/ui/gui.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/ui/gui.c [iso-8859-1] Tue Feb  9 03:53:45 2010
@@ -17,6 +17,7 @@
  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
+#ifndef _M_ARM
 #include <freeldr.h>
 
 VOID GuiDrawBackdrop(VOID)
@@ -103,3 +104,4 @@
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL
 };
+#endif

Modified: trunk/reactos/boot/freeldr/freeldr/ui/minitui.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/ui/minitui.c?rev=45524&r1=45523&r2=45524&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/ui/minitui.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/ui/minitui.c [iso-8859-1] Tue Feb  9 03:53:45 2010
@@ -6,7 +6,7 @@
  * PROGRAMMERS:     Brian Palmer <brianp at sginet.com>
  *                  Hervé Poussineau
  */
-
+#ifndef _M_ARM
 #include <freeldr.h>
 
 VOID MiniTuiDrawBackdrop(VOID)
@@ -154,3 +154,4 @@
 	TuiDisplayMenu,
 	MiniTuiDrawMenu,
 };
+#endif

Modified: trunk/reactos/boot/freeldr/freeldr/ui/noui.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/ui/noui.c?rev=45524&r1=45523&r2=45524&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/ui/noui.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/ui/noui.c [iso-8859-1] Tue Feb  9 03:53:45 2010
@@ -5,7 +5,7 @@
  * PURPOSE:         No Text UI interface
  * PROGRAMMERS:     Hervé Poussineau
  */
-
+#ifndef _M_ARM
 #include <freeldr.h>
 
 BOOLEAN NoUiInitialize(VOID)
@@ -118,3 +118,4 @@
 VOID NoUiDrawMenu(PUI_MENU_INFO MenuInfo)
 {
 }
+#endif

Modified: trunk/reactos/boot/freeldr/freeldr/ui/tui.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/ui/tui.c?rev=45524&r1=45523&r2=45524&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/ui/tui.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/ui/tui.c [iso-8859-1] Tue Feb  9 03:53:45 2010
@@ -16,7 +16,7 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
-
+#ifndef _M_ARM
 #include <freeldr.h>
 
 PVOID	TextVideoBuffer = NULL;
@@ -325,13 +325,8 @@
 	// Draw the text
 	for (i=X, j=0; Text[j]  && i<UiScreenWidth; i++,j++)
 	{
-#ifndef _ARM_
 		ScreenMemory[((Y*2)*UiScreenWidth)+(i*2)] = (UCHAR)Text[j];
 		ScreenMemory[((Y*2)*UiScreenWidth)+(i*2)+1] = Attr;
-#else
-        UNREFERENCED_PARAMETER(ScreenMemory);
-        MachVideoPutChar(Text[j], Attr, i, Y);
-#endif
 	}
 }
 
@@ -985,3 +980,4 @@
 	TuiDisplayMenu,
 	TuiDrawMenu,
 };
+#endif

Modified: trunk/reactos/boot/freeldr/freeldr/ui/tuimenu.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/ui/tuimenu.c?rev=45524&r1=45523&r2=45524&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/ui/tuimenu.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/ui/tuimenu.c [iso-8859-1] Tue Feb  9 03:53:45 2010
@@ -8,7 +8,7 @@
  */
 
 /* INCLUDES ******************************************************************/
-
+#ifndef _M_ARM
 #include <freeldr.h>
 
 /* FUNCTIONS *****************************************************************/
@@ -530,3 +530,4 @@
     //
     return KeyEvent;
 }
+#endif

Modified: trunk/reactos/boot/freeldr/freeldr/ui/ui.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/ui/ui.c?rev=45524&r1=45523&r2=45524&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/ui/ui.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/ui/ui.c [iso-8859-1] Tue Feb  9 03:53:45 2010
@@ -16,7 +16,7 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
-
+#ifndef _M_ARM
 #include <freeldr.h>
 #include <debug.h>
 
@@ -496,3 +496,4 @@
 {
 	return UiVtbl.EditBox(MessageText, EditTextBuffer, Length);
 }
+#endif

Modified: trunk/reactos/boot/freeldr/freeldr/video/fade.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/video/fade.c?rev=45524&r1=45523&r2=45524&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/video/fade.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/video/fade.c [iso-8859-1] Tue Feb  9 03:53:45 2010
@@ -16,7 +16,7 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
-
+#ifndef _M_ARM
 #include <freeldr.h>
 
 #define RGB_MAX						64
@@ -130,3 +130,4 @@
 		}
 	}
 }
+#endif

Modified: trunk/reactos/boot/freeldr/freeldr/video/palette.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/video/palette.c?rev=45524&r1=45523&r2=45524&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/video/palette.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/video/palette.c [iso-8859-1] Tue Feb  9 03:53:45 2010
@@ -16,9 +16,8 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
-
+#ifndef _M_ARM
 #include <freeldr.h>
-
 VOID VideoSavePaletteState(PPALETTE_ENTRY Palette, ULONG ColorCount)
 {
 	ULONG		Color;
@@ -40,3 +39,4 @@
 		MachVideoSetPaletteColor(Color, Palette[Color].Red, Palette[Color].Green, Palette[Color].Blue);
 	}
 }
+#endif

Modified: trunk/reactos/boot/freeldr/freeldr/video/video.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/video/video.c?rev=45524&r1=45523&r2=45524&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/video/video.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/video/video.c [iso-8859-1] Tue Feb  9 03:53:45 2010
@@ -16,7 +16,7 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
-
+#ifndef _M_ARM
 #include <freeldr.h>
 
 PVOID	VideoOffScreenBuffer = NULL;
@@ -42,3 +42,4 @@
 {
 	MachVideoCopyOffScreenBufferToVRAM(VideoOffScreenBuffer);
 }
+#endif




More information about the Ros-diffs mailing list