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 <[email protected]>
  *                  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


Reply via email to