Author: hbelusca
Date: Sat May  3 01:59:28 2014
New Revision: 63123

URL: http://svn.reactos.org/svn/reactos?rev=63123&view=rev
Log:
[CONSRV]
Terminals are for consoles, and frontends for a given win32 terminal.
Start to clarify this situation in the code. Work in progress.

Modified:
    branches/condrv_restructure/win32ss/user/winsrv/consrv/condrv/console.c
    branches/condrv_restructure/win32ss/user/winsrv/consrv/condrv/dummyterm.c
    branches/condrv_restructure/win32ss/user/winsrv/consrv/console.c
    branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/terminal.c
    branches/condrv_restructure/win32ss/user/winsrv/consrv/include/conio.h
    
branches/condrv_restructure/win32ss/user/winsrv/consrv/include/conio_winsrv.h
    branches/condrv_restructure/win32ss/user/winsrv/consrv/include/console.h
    branches/condrv_restructure/win32ss/user/winsrv/consrv/include/term.h

Modified: 
branches/condrv_restructure/win32ss/user/winsrv/consrv/condrv/console.c
URL: 
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user/winsrv/consrv/condrv/console.c?rev=63123&r1=63122&r2=63123&view=diff
==============================================================================
--- branches/condrv_restructure/win32ss/user/winsrv/consrv/condrv/console.c     
[iso-8859-1] (original)
+++ branches/condrv_restructure/win32ss/user/winsrv/consrv/condrv/console.c     
[iso-8859-1] Sat May  3 01:59:28 2014
@@ -187,11 +187,10 @@
 }
 
 
-/* For resetting the frontend - defined in dummyfrontend.c */
-VOID ResetFrontEnd(IN PCONSOLE Console);
-
-
 /* PRIVATE FUNCTIONS 
**********************************************************/
+
+/* For resetting the terminal - defined in dummyterm.c */
+VOID ResetTerminal(IN PCONSOLE Console);
 
 VOID NTAPI
 ConDrvPause(PCONSOLE Console)
@@ -417,12 +416,12 @@
     Console->ReferenceCount = 0;
     InitializeCriticalSection(&Console->Lock);
 
-    /* Initialize the frontend interface */
-    ResetFrontEnd(Console);
+    /* Initialize the terminal interface */
+    ResetTerminal(Console);
 
     memcpy(Console->Colors, ConsoleInfo->Colors, sizeof(ConsoleInfo->Colors));
     Console->ConsoleSize = ConsoleInfo->ConsoleSize;
-    Console->FixedSize   = FALSE; // Value by default; is reseted by the 
front-ends if needed.
+    Console->FixedSize   = FALSE; // Value by default; is reseted by the 
terminals if needed.
 
     /*
      * Initialize the input buffer
@@ -538,63 +537,63 @@
 }
 
 NTSTATUS NTAPI
-ConDrvRegisterFrontEnd(IN PCONSOLE Console,
-                       IN PFRONTEND FrontEnd)
+ConDrvRegisterTerminal(IN PCONSOLE Console,
+                       IN PTERMINAL Terminal)
 {
     NTSTATUS Status;
 
-    if (Console == NULL || FrontEnd == NULL)
+    if (Console == NULL || Terminal == NULL)
         return STATUS_INVALID_PARAMETER;
 
     /* FIXME: Lock the console before ?? */
 
     /*
-     * Attach the frontend to the console. Use now the FrontEndIFace of the 
console,
-     * and not the user-defined temporary FrontEnd pointer.
-     */
-    Console->FrontEndIFace = *FrontEnd;
-    Console->FrontEndIFace.Console = Console;
-
-    /* Initialize the frontend AFTER having attached it to the console */
-    DPRINT("Finish initialization of frontend\n");
-    Status = 
Console->FrontEndIFace.Vtbl->InitFrontEnd(&Console->FrontEndIFace, Console);
+     * Attach the terminal to the console. Use now the TermIFace of the 
console,
+     * and not the user-defined temporary Terminal pointer.
+     */
+    Console->TermIFace = *Terminal;
+    Console->TermIFace.Console = Console;
+
+    /* Initialize the terminal AFTER having attached it to the console */
+    DPRINT("Finish initialization of terminal\n");
+    Status = Console->TermIFace.Vtbl->InitTerminal(&Console->TermIFace, 
Console);
     if (!NT_SUCCESS(Status))
     {
-        DPRINT1("FrontEnd initialization failed, Status = 0x%08lx\n", Status);
-
-        /* We failed, detach the frontend from the console */
-        FrontEnd->Console = NULL; // For the caller
-        ResetFrontEnd(Console);
+        DPRINT1("Terminal initialization failed, Status = 0x%08lx\n", Status);
+
+        /* We failed, detach the terminal from the console */
+        Terminal->Console = NULL; // For the caller
+        ResetTerminal(Console);
 
         return Status;
     }
 
     /* Copy buffer contents to screen */
-    // FrontEnd.Draw();
+    // Terminal.Draw();
     // ConioDrawConsole(Console);
     DPRINT("Console drawn\n");
 
-    DPRINT("Terminal FrontEnd initialization done\n");
+    DPRINT("Terminal initialization done\n");
     return STATUS_SUCCESS;
 }
 
 NTSTATUS NTAPI
-ConDrvDeregisterFrontEnd(IN PCONSOLE Console)
+ConDrvDeregisterTerminal(IN PCONSOLE Console)
 {
     if (Console == NULL) return STATUS_INVALID_PARAMETER;
 
     /* FIXME: Lock the console before ?? */
 
-    /* Deinitialize the frontend BEFORE detaching it from the console */
-    Console->FrontEndIFace.Vtbl->DeinitFrontEnd(&Console->FrontEndIFace/*, 
Console*/);
-
-    /*
-     * Detach the frontend from the console:
-     * reinitialize the frontend interface.
-     */
-    ResetFrontEnd(Console);
-
-    DPRINT("Terminal FrontEnd unregistered\n");
+    /* Deinitialize the terminal BEFORE detaching it from the console */
+    Console->TermIFace.Vtbl->DeinitTerminal(&Console->TermIFace/*, Console*/);
+
+    /*
+     * Detach the terminal from the console:
+     * reinitialize the terminal interface.
+     */
+    ResetTerminal(Console);
+
+    DPRINT("Terminal unregistered\n");
     return STATUS_SUCCESS;
 }
 
@@ -643,7 +642,7 @@
 
     /* Cleanup the UI-oriented part */
     DPRINT("Deregister console\n");
-    ConDrvDeregisterFrontEnd(Console);
+    ConDrvDeregisterTerminal(Console);
     DPRINT("Console deregistered\n");
 
     /***

Modified: 
branches/condrv_restructure/win32ss/user/winsrv/consrv/condrv/dummyterm.c
URL: 
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user/winsrv/consrv/condrv/dummyterm.c?rev=63123&r1=63122&r2=63123&view=diff
==============================================================================
--- branches/condrv_restructure/win32ss/user/winsrv/consrv/condrv/dummyterm.c   
[iso-8859-1] (original)
+++ branches/condrv_restructure/win32ss/user/winsrv/consrv/condrv/dummyterm.c   
[iso-8859-1] Sat May  3 01:59:28 2014
@@ -14,27 +14,25 @@
 /* DUMMY TERMINAL INTERFACE 
***************************************************/
 
 static NTSTATUS NTAPI
-DummyInitFrontEnd(IN OUT PFRONTEND This,
+DummyInitTerminal(IN OUT PTERMINAL This,
                   IN PCONSOLE Console)
 {
-    /* Load some settings ?? */
     return STATUS_SUCCESS;
 }
 
 static VOID NTAPI
-DummyDeinitFrontEnd(IN OUT PFRONTEND This)
+DummyDeinitTerminal(IN OUT PTERMINAL This)
 {
-    /* Free some settings ?? */
 }
 
 static VOID NTAPI
-DummyDrawRegion(IN OUT PFRONTEND This,
+DummyDrawRegion(IN OUT PTERMINAL This,
                 SMALL_RECT* Region)
 {
 }
 
 static VOID NTAPI
-DummyWriteStream(IN OUT PFRONTEND This,
+DummyWriteStream(IN OUT PTERMINAL This,
                  SMALL_RECT* Region,
                  SHORT CursorStartX,
                  SHORT CursorStartY,
@@ -45,15 +43,15 @@
 }
 
 static BOOL NTAPI
-DummySetCursorInfo(IN OUT PFRONTEND This,
-                   PCONSOLE_SCREEN_BUFFER Buff)
+DummySetCursorInfo(IN OUT PTERMINAL This,
+                   PCONSOLE_SCREEN_BUFFER ScreenBuffer)
 {
     return TRUE;
 }
 
 static BOOL NTAPI
-DummySetScreenInfo(IN OUT PFRONTEND This,
-                   PCONSOLE_SCREEN_BUFFER Buff,
+DummySetScreenInfo(IN OUT PTERMINAL This,
+                   PCONSOLE_SCREEN_BUFFER ScreenBuffer,
                    SHORT OldCursorX,
                    SHORT OldCursorY)
 {
@@ -61,122 +59,60 @@
 }
 
 static VOID NTAPI
-DummyResizeTerminal(IN OUT PFRONTEND This)
+DummyResizeTerminal(IN OUT PTERMINAL This)
 {
 }
 
 static VOID NTAPI
-DummySetActiveScreenBuffer(IN OUT PFRONTEND This)
+DummySetActiveScreenBuffer(IN OUT PTERMINAL This)
 {
 }
 
 static VOID NTAPI
-DummyReleaseScreenBuffer(IN OUT PFRONTEND This,
+DummyReleaseScreenBuffer(IN OUT PTERMINAL This,
                          IN PCONSOLE_SCREEN_BUFFER ScreenBuffer)
 {
 }
 
-static BOOL NTAPI
-DummyProcessKeyCallback(IN OUT PFRONTEND This,
-                        MSG* msg,
-                        BYTE KeyStateMenu,
-                        DWORD ShiftState,
-                        UINT VirtualKeyCode,
-                        BOOL Down)
-{
-    return FALSE;
-}
-
 static VOID NTAPI
-DummyRefreshInternalInfo(IN OUT PFRONTEND This)
+DummyChangeTitle(IN OUT PTERMINAL This)
 {
 }
 
 static VOID NTAPI
-DummyChangeTitle(IN OUT PFRONTEND This)
-{
-}
-
-static BOOL NTAPI
-DummyChangeIcon(IN OUT PFRONTEND This,
-                HICON IconHandle)
-{
-    return TRUE;
-}
-
-static HWND NTAPI
-DummyGetConsoleWindowHandle(IN OUT PFRONTEND This)
-{
-    return NULL;
-}
-
-static VOID NTAPI
-DummyGetLargestConsoleWindowSize(IN OUT PFRONTEND This,
+DummyGetLargestConsoleWindowSize(IN OUT PTERMINAL This,
                                  PCOORD pSize)
 {
 }
 
+/*
 static BOOL NTAPI
-DummyGetSelectionInfo(IN OUT PFRONTEND This,
+DummyGetSelectionInfo(IN OUT PTERMINAL This,
                       PCONSOLE_SELECTION_INFO pSelectionInfo)
 {
     return TRUE;
 }
+*/
 
 static BOOL NTAPI
-DummySetPalette(IN OUT PFRONTEND This,
+DummySetPalette(IN OUT PTERMINAL This,
                 HPALETTE PaletteHandle,
                 UINT PaletteUsage)
 {
     return TRUE;
 }
 
-static ULONG NTAPI
-DummyGetDisplayMode(IN OUT PFRONTEND This)
-{
-    return 0;
-}
-
-static BOOL NTAPI
-DummySetDisplayMode(IN OUT PFRONTEND This,
-                    ULONG NewMode)
-{
-    return TRUE;
-}
-
 static INT NTAPI
-DummyShowMouseCursor(IN OUT PFRONTEND This,
+DummyShowMouseCursor(IN OUT PTERMINAL This,
                      BOOL Show)
 {
     return 0;
 }
 
-static BOOL NTAPI
-DummySetMouseCursor(IN OUT PFRONTEND This,
-                    HCURSOR CursorHandle)
+static TERMINAL_VTBL DummyVtbl =
 {
-    return TRUE;
-}
-
-static HMENU NTAPI
-DummyMenuControl(IN OUT PFRONTEND This,
-                 UINT CmdIdLow,
-                 UINT CmdIdHigh)
-{
-    return NULL;
-}
-
-static BOOL NTAPI
-DummySetMenuClose(IN OUT PFRONTEND This,
-                  BOOL Enable)
-{
-    return TRUE;
-}
-
-static FRONTEND_VTBL DummyVtbl =
-{
-    DummyInitFrontEnd,
-    DummyDeinitFrontEnd,
+    DummyInitTerminal,
+    DummyDeinitTerminal,
     DummyDrawRegion,
     DummyWriteStream,
     DummySetCursorInfo,
@@ -184,30 +120,21 @@
     DummyResizeTerminal,
     DummySetActiveScreenBuffer,
     DummyReleaseScreenBuffer,
-    DummyProcessKeyCallback,
-    DummyRefreshInternalInfo,
     DummyChangeTitle,
-    DummyChangeIcon,
-    DummyGetConsoleWindowHandle,
     DummyGetLargestConsoleWindowSize,
-    DummyGetSelectionInfo,
+    // DummyGetSelectionInfo,
     DummySetPalette,
-    DummyGetDisplayMode,
-    DummySetDisplayMode,
     DummyShowMouseCursor,
-    DummySetMouseCursor,
-    DummyMenuControl,
-    DummySetMenuClose,
 };
 
 VOID
-ResetFrontEnd(IN PCONSOLE Console)
+ResetTerminal(IN PCONSOLE Console)
 {
     if (!Console) return;
 
-    /* Reinitialize the frontend interface */
-    RtlZeroMemory(&Console->FrontEndIFace, sizeof(Console->FrontEndIFace));
-    Console->FrontEndIFace.Vtbl = &DummyVtbl;
+    /* Reinitialize the terminal interface */
+    RtlZeroMemory(&Console->TermIFace, sizeof(Console->TermIFace));
+    Console->TermIFace.Vtbl = &DummyVtbl;
 }
 
 /* EOF */

Modified: branches/condrv_restructure/win32ss/user/winsrv/consrv/console.c
URL: 
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user/winsrv/consrv/console.c?rev=63123&r1=63122&r2=63123&view=diff
==============================================================================
--- branches/condrv_restructure/win32ss/user/winsrv/consrv/console.c    
[iso-8859-1] (original)
+++ branches/condrv_restructure/win32ss/user/winsrv/consrv/console.c    
[iso-8859-1] Sat May  3 01:59:28 2014
@@ -82,13 +82,13 @@
 }
 
 
-/* static */ NTSTATUS
-ConSrvLoadFrontEnd(IN OUT PFRONTEND FrontEnd,
+NTSTATUS NTAPI
+ConSrvInitTerminal(IN OUT PTERMINAL Terminal,
                    IN OUT PCONSOLE_INFO ConsoleInfo,
                    IN OUT PVOID ExtraConsoleInfo,
                    IN ULONG ProcessId);
-/* static */ NTSTATUS
-ConSrvUnloadFrontEnd(IN PFRONTEND FrontEnd);
+NTSTATUS NTAPI
+ConSrvDeinitTerminal(IN OUT PTERMINAL Terminal);
 
 NTSTATUS NTAPI
 ConSrvInitConsole(OUT PHANDLE NewConsoleHandle,
@@ -102,7 +102,7 @@
     CONSOLE_INFO ConsoleInfo;
     SIZE_T Length = 0;
 
-    FRONTEND FrontEnd;
+    TERMINAL Terminal; /* The ConSrv terminal for this console */
 
     if (NewConsole == NULL || ConsoleStartInfo == NULL)
         return STATUS_INVALID_PARAMETER;
@@ -122,7 +122,6 @@
     wcsncpy(ConsoleInfo.ConsoleTitle, ConsoleStartInfo->ConsoleTitle, Length);
     ConsoleInfo.ConsoleTitle[Length] = L'\0';
 
-#if 0
     /* 3. Initialize the ConSrv terminal */
     Status = ConSrvInitTerminal(&Terminal,
                                 &ConsoleInfo,
@@ -134,18 +133,6 @@
         return Status;
     }
     DPRINT("CONSRV: Terminal initialized\n");
-#else
-    Status = ConSrvLoadFrontEnd(&FrontEnd,
-                                &ConsoleInfo,
-                                ConsoleStartInfo,
-                                ConsoleLeaderProcessId);
-    if (!NT_SUCCESS(Status))
-    {
-        DPRINT1("CONSRV: Failed to initialize a frontend, Status = 0x%08lx\n", 
Status);
-        return Status;
-    }
-    DPRINT("CONSRV: Frontend initialized\n");
-#endif
 
     /*
      * 4. Load the remaining console settings via the registry.
@@ -190,7 +177,7 @@
     if (!NT_SUCCESS(Status))
     {
         DPRINT1("Creating a new console failed, Status = 0x%08lx\n", Status);
-        ConSrvUnloadFrontEnd(&FrontEnd);
+        ConSrvDeinitTerminal(&Terminal);
         return Status;
     }
 
@@ -212,15 +199,15 @@
     Console->QuickEdit = ConsoleInfo.QuickEdit;
 
     /* Attach the ConSrv terminal to the console */
-    Status = ConDrvRegisterFrontEnd(Console, &FrontEnd);
+    Status = ConDrvRegisterTerminal(Console, &Terminal);
     if (!NT_SUCCESS(Status))
     {
-        DPRINT1("Failed to register frontend to the given console, Status = 
0x%08lx\n", Status);
+        DPRINT1("Failed to register terminal to the given console, Status = 
0x%08lx\n", Status);
         ConDrvDeleteConsole(Console);
-        ConSrvUnloadFrontEnd(&FrontEnd);
+        ConSrvDeinitTerminal(&Terminal);
         return Status;
     }
-    DPRINT("FrontEnd registered\n");
+    DPRINT("Terminal registered\n");
 
     /* Return the newly created console to the caller and a success code too */
     *NewConsoleHandle = ConsoleHandle;
@@ -233,7 +220,7 @@
 {
     DPRINT("ConSrvDeleteConsole\n");
 
-    /* Just call the driver. ConSrvDeregisterFrontEnd is called on-demand. */
+    /* Just call the driver. ConDrvDeregisterTerminal is called on-demand. */
     ConDrvDeleteConsole(Console);
 }
 

Modified: 
branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/terminal.c
URL: 
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/terminal.c?rev=63123&r1=63122&r2=63123&view=diff
==============================================================================
--- branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/terminal.c 
[iso-8859-1] (original)
+++ branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/terminal.c 
[iso-8859-1] Sat May  3 01:59:28 2014
@@ -10,6 +10,7 @@
 
 #include <consrv.h>
 
+// #include "frontends/gui/guiterm.h"
 #ifdef TUITERM_COMPILE
 #include "frontends/tui/tuiterm.h"
 #endif
@@ -81,8 +82,7 @@
 //  {"Not found", 0, NULL}
 };
 
-
-/* static */ NTSTATUS
+static NTSTATUS
 ConSrvLoadFrontEnd(IN OUT PFRONTEND FrontEnd,
                    IN OUT PCONSOLE_INFO ConsoleInfo,
                    IN OUT PVOID ExtraConsoleInfo,
@@ -121,7 +121,7 @@
     return Status;
 }
 
-/* static */ NTSTATUS
+static NTSTATUS
 ConSrvUnloadFrontEnd(IN PFRONTEND FrontEnd)
 {
     if (FrontEnd == NULL) return STATUS_INVALID_PARAMETER;
@@ -129,33 +129,105 @@
     return FrontEnd->UnloadFrontEnd(FrontEnd);
 }
 
-
-/* DUMMY FRONTEND INTERFACE 
***************************************************/
-
-#if 0
+// See after...
+static TERMINAL_VTBL ConSrvTermVtbl;
+
+NTSTATUS NTAPI
+ConSrvInitTerminal(IN OUT PTERMINAL Terminal,
+                   IN OUT PCONSOLE_INFO ConsoleInfo,
+                   IN OUT PVOID ExtraConsoleInfo,
+                   IN ULONG ProcessId)
+{
+    NTSTATUS Status;
+    PFRONTEND FrontEnd;
+
+    /* Load a suitable frontend for the ConSrv terminal */
+    FrontEnd = ConsoleAllocHeap(HEAP_ZERO_MEMORY, sizeof(*FrontEnd));
+    if (!FrontEnd) return STATUS_NO_MEMORY;
+
+    Status = ConSrvLoadFrontEnd(FrontEnd,
+                                ConsoleInfo,
+                                ExtraConsoleInfo,
+                                ProcessId);
+    if (!NT_SUCCESS(Status))
+    {
+        DPRINT1("CONSRV: Failed to initialize a frontend, Status = 0x%08lx\n", 
Status);
+        ConsoleFreeHeap(FrontEnd);
+        return Status;
+    }
+    DPRINT("CONSRV: Frontend initialized\n");
+
+    /* Initialize the ConSrv terminal */
+    Terminal->Vtbl = &ConSrvTermVtbl;
+    // Terminal->Console will be initialized by ConDrvRegisterTerminal
+    Terminal->Data = FrontEnd; /* We store the frontend pointer in the 
terminal private data */
+
+    return STATUS_SUCCESS;
+}
+
+NTSTATUS NTAPI
+ConSrvDeinitTerminal(IN OUT PTERMINAL Terminal)
+{
+    NTSTATUS Status = STATUS_SUCCESS;
+    PFRONTEND FrontEnd = Terminal->Data;
+
+    /* Reset the ConSrv terminal */
+    Terminal->Data = NULL;
+    Terminal->Vtbl = NULL;
+
+    /* Unload the frontend */
+    if (FrontEnd != NULL)
+    {
+        Status = ConSrvUnloadFrontEnd(FrontEnd);
+        ConsoleFreeHeap(FrontEnd);
+    }
+
+    return Status;
+}
+
+
+/* CONSRV TERMINAL INTERFACE 
**************************************************/
 
 static NTSTATUS NTAPI
-DummyInitFrontEnd(IN OUT PFRONTEND This,
+ConSrvTermInitTerminal(IN OUT PTERMINAL This,
                   IN PCONSOLE Console)
 {
-    /* Load some settings ?? */
-    return STATUS_SUCCESS;
-}
-
-static VOID NTAPI
-DummyDeinitFrontEnd(IN OUT PFRONTEND This)
-{
-    /* Free some settings ?? */
-}
-
-static VOID NTAPI
-DummyDrawRegion(IN OUT PFRONTEND This,
+    NTSTATUS Status;
+    PFRONTEND FrontEnd = This->Data;
+
+    /* Initialize the console pointer for our frontend */
+    FrontEnd->Console = Console;
+
+    /** HACK HACK!! Copy FrontEnd into the console!! **/
+    DPRINT1("Using FrontEndIFace HACK(1), should be removed after proper 
implementation!\n");
+    Console->FrontEndIFace = *FrontEnd;
+
+    Status = FrontEnd->Vtbl->InitFrontEnd(FrontEnd, FrontEnd->Console);
+
+    /** HACK HACK!! Be sure FrontEndIFace is correctly updated in the 
console!! **/
+    DPRINT1("Using FrontEndIFace HACK(2), should be removed after proper 
implementation!\n");
+    Console->FrontEndIFace = *FrontEnd;
+
+    return Status;
+}
+
+static VOID NTAPI
+ConSrvTermDeinitTerminal(IN OUT PTERMINAL This)
+{
+    PFRONTEND FrontEnd = This->Data;
+    FrontEnd->Vtbl->DeinitFrontEnd(FrontEnd);
+}
+
+static VOID NTAPI
+ConSrvTermDrawRegion(IN OUT PTERMINAL This,
                 SMALL_RECT* Region)
 {
-}
-
-static VOID NTAPI
-DummyWriteStream(IN OUT PFRONTEND This,
+    PFRONTEND FrontEnd = This->Data;
+    FrontEnd->Vtbl->DrawRegion(FrontEnd, Region);
+}
+
+static VOID NTAPI
+ConSrvTermWriteStream(IN OUT PTERMINAL This,
                  SMALL_RECT* Region,
                  SHORT CursorStartX,
                  SHORT CursorStartY,
@@ -163,164 +235,120 @@
                  PWCHAR Buffer,
                  UINT Length)
 {
+    PFRONTEND FrontEnd = This->Data;
+    FrontEnd->Vtbl->WriteStream(FrontEnd,
+                                Region,
+                                CursorStartX,
+                                CursorStartY,
+                                ScrolledLines,
+                                Buffer,
+                                Length);
 }
 
 static BOOL NTAPI
-DummySetCursorInfo(IN OUT PFRONTEND This,
-                   PCONSOLE_SCREEN_BUFFER Buff)
-{
-    return TRUE;
+ConSrvTermSetCursorInfo(IN OUT PTERMINAL This,
+                   PCONSOLE_SCREEN_BUFFER ScreenBuffer)
+{
+    PFRONTEND FrontEnd = This->Data;
+    return FrontEnd->Vtbl->SetCursorInfo(FrontEnd, ScreenBuffer);
 }
 
 static BOOL NTAPI
-DummySetScreenInfo(IN OUT PFRONTEND This,
-                   PCONSOLE_SCREEN_BUFFER Buff,
+ConSrvTermSetScreenInfo(IN OUT PTERMINAL This,
+                   PCONSOLE_SCREEN_BUFFER ScreenBuffer,
                    SHORT OldCursorX,
                    SHORT OldCursorY)
 {
-    return TRUE;
-}
-
-static VOID NTAPI
-DummyResizeTerminal(IN OUT PFRONTEND This)
-{
-}
-
-static VOID NTAPI
-DummySetActiveScreenBuffer(IN OUT PFRONTEND This)
-{
-}
-
-static VOID NTAPI
-DummyReleaseScreenBuffer(IN OUT PFRONTEND This,
+    PFRONTEND FrontEnd = This->Data;
+    return FrontEnd->Vtbl->SetScreenInfo(FrontEnd,
+                                         ScreenBuffer,
+                                         OldCursorX,
+                                         OldCursorY);
+}
+
+static VOID NTAPI
+ConSrvTermResizeTerminal(IN OUT PTERMINAL This)
+{
+    PFRONTEND FrontEnd = This->Data;
+    FrontEnd->Vtbl->ResizeTerminal(FrontEnd);
+}
+
+static VOID NTAPI
+ConSrvTermSetActiveScreenBuffer(IN OUT PTERMINAL This)
+{
+    PFRONTEND FrontEnd = This->Data;
+    FrontEnd->Vtbl->SetActiveScreenBuffer(FrontEnd);
+}
+
+static VOID NTAPI
+ConSrvTermReleaseScreenBuffer(IN OUT PTERMINAL This,
                          IN PCONSOLE_SCREEN_BUFFER ScreenBuffer)
 {
-}
-
+    PFRONTEND FrontEnd = This->Data;
+    FrontEnd->Vtbl->ReleaseScreenBuffer(FrontEnd, ScreenBuffer);
+}
+
+static VOID NTAPI
+ConSrvTermChangeTitle(IN OUT PTERMINAL This)
+{
+    PFRONTEND FrontEnd = This->Data;
+    FrontEnd->Vtbl->ChangeTitle(FrontEnd);
+}
+
+static VOID NTAPI
+ConSrvTermGetLargestConsoleWindowSize(IN OUT PTERMINAL This,
+                                 PCOORD pSize)
+{
+    PFRONTEND FrontEnd = This->Data;
+    FrontEnd->Vtbl->GetLargestConsoleWindowSize(FrontEnd, pSize);
+}
+
+/*
 static BOOL NTAPI
-DummyProcessKeyCallback(IN OUT PFRONTEND This,
-                        MSG* msg,
-                        BYTE KeyStateMenu,
-                        DWORD ShiftState,
-                        UINT VirtualKeyCode,
-                        BOOL Down)
-{
-    return FALSE;
-}
-
-static VOID NTAPI
-DummyRefreshInternalInfo(IN OUT PFRONTEND This)
-{
-}
-
-static VOID NTAPI
-DummyChangeTitle(IN OUT PFRONTEND This)
-{
-}
+ConSrvTermGetSelectionInfo(IN OUT PTERMINAL This,
+                      PCONSOLE_SELECTION_INFO pSelectionInfo)
+{
+    PFRONTEND FrontEnd = This->Data;
+    return FrontEnd->Vtbl->GetSelectionInfo(FrontEnd, pSelectionInfo);
+}
+*/
 
 static BOOL NTAPI
-DummyChangeIcon(IN OUT PFRONTEND This,
-                HICON IconHandle)
-{
-    return TRUE;
-}
-
-static HWND NTAPI
-DummyGetConsoleWindowHandle(IN OUT PFRONTEND This)
-{
-    return NULL;
-}
-
-static VOID NTAPI
-DummyGetLargestConsoleWindowSize(IN OUT PFRONTEND This,
-                                 PCOORD pSize)
-{
-}
-
-static BOOL NTAPI
-DummyGetSelectionInfo(IN OUT PFRONTEND This,
-                      PCONSOLE_SELECTION_INFO pSelectionInfo)
-{
-    return TRUE;
-}
-
-static BOOL NTAPI
-DummySetPalette(IN OUT PFRONTEND This,
+ConSrvTermSetPalette(IN OUT PTERMINAL This,
                 HPALETTE PaletteHandle,
                 UINT PaletteUsage)
 {
-    return TRUE;
-}
-
-static ULONG NTAPI
-DummyGetDisplayMode(IN OUT PFRONTEND This)
-{
-    return 0;
-}
-
-static BOOL NTAPI
-DummySetDisplayMode(IN OUT PFRONTEND This,
-                    ULONG NewMode)
-{
-    return TRUE;
+    PFRONTEND FrontEnd = This->Data;
+    return FrontEnd->Vtbl->SetPalette(FrontEnd, PaletteHandle, PaletteUsage);
 }
 
 static INT NTAPI
-DummyShowMouseCursor(IN OUT PFRONTEND This,
+ConSrvTermShowMouseCursor(IN OUT PTERMINAL This,
                      BOOL Show)
 {
-    return 0;
-}
-
-static BOOL NTAPI
-DummySetMouseCursor(IN OUT PFRONTEND This,
-                    HCURSOR CursorHandle)
-{
-    return TRUE;
-}
-
-static HMENU NTAPI
-DummyMenuControl(IN OUT PFRONTEND This,
-                 UINT CmdIdLow,
-                 UINT CmdIdHigh)
-{
-    return NULL;
-}
-
-static BOOL NTAPI
-DummySetMenuClose(IN OUT PFRONTEND This,
-                  BOOL Enable)
-{
-    return TRUE;
-}
-
-static FRONTEND_VTBL DummyVtbl =
-{
-    DummyInitFrontEnd,
-    DummyDeinitFrontEnd,
-    DummyDrawRegion,
-    DummyWriteStream,
-    DummySetCursorInfo,
-    DummySetScreenInfo,
-    DummyResizeTerminal,
-    DummySetActiveScreenBuffer,
-    DummyReleaseScreenBuffer,
-    DummyProcessKeyCallback,
-    DummyRefreshInternalInfo,
-    DummyChangeTitle,
-    DummyChangeIcon,
-    DummyGetConsoleWindowHandle,
-    DummyGetLargestConsoleWindowSize,
-    DummyGetSelectionInfo,
-    DummySetPalette,
-    DummyGetDisplayMode,
-    DummySetDisplayMode,
-    DummyShowMouseCursor,
-    DummySetMouseCursor,
-    DummyMenuControl,
-    DummySetMenuClose,
+    PFRONTEND FrontEnd = This->Data;
+    return FrontEnd->Vtbl->ShowMouseCursor(FrontEnd, Show);
+}
+
+static TERMINAL_VTBL ConSrvTermVtbl =
+{
+    ConSrvTermInitTerminal,
+    ConSrvTermDeinitTerminal,
+    ConSrvTermDrawRegion,
+    ConSrvTermWriteStream,
+    ConSrvTermSetCursorInfo,
+    ConSrvTermSetScreenInfo,
+    ConSrvTermResizeTerminal,
+    ConSrvTermSetActiveScreenBuffer,
+    ConSrvTermReleaseScreenBuffer,
+    ConSrvTermChangeTitle,
+    ConSrvTermGetLargestConsoleWindowSize,
+    // ConSrvTermGetSelectionInfo,
+    ConSrvTermSetPalette,
+    ConSrvTermShowMouseCursor,
 };
 
+#if 0
 VOID
 ResetFrontEnd(IN PCONSOLE Console)
 {
@@ -328,9 +356,8 @@
 
     /* Reinitialize the frontend interface */
     RtlZeroMemory(&Console->FrontEndIFace, sizeof(Console->FrontEndIFace));
-    Console->FrontEndIFace.Vtbl = &DummyVtbl;
-}
-
+    Console->FrontEndIFace.Vtbl = &ConSrvTermVtbl;
+}
 #endif
 
 /* EOF */

Modified: branches/condrv_restructure/win32ss/user/winsrv/consrv/include/conio.h
URL: 
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user/winsrv/consrv/include/conio.h?rev=63123&r1=63122&r2=63123&view=diff
==============================================================================
--- branches/condrv_restructure/win32ss/user/winsrv/consrv/include/conio.h      
[iso-8859-1] (original)
+++ branches/condrv_restructure/win32ss/user/winsrv/consrv/include/conio.h      
[iso-8859-1] Sat May  3 01:59:28 2014
@@ -186,16 +186,16 @@
     /*
      * Internal interface (functions called by the console server only)
      */
-    NTSTATUS (NTAPI *InitFrontEnd)(IN OUT PTERMINAL This,
+    NTSTATUS (NTAPI *InitTerminal)(IN OUT PTERMINAL This,
                                    IN struct _CONSOLE* Console);
-    VOID (NTAPI *DeinitFrontEnd)(IN OUT PTERMINAL This);
+    VOID (NTAPI *DeinitTerminal)(IN OUT PTERMINAL This);
 
     /* Interface used for both text-mode and graphics screen buffers */
     VOID (NTAPI *DrawRegion)(IN OUT PTERMINAL This,
                              SMALL_RECT* Region);
     /* Interface used only for text-mode screen buffers */
     VOID (NTAPI *WriteStream)(IN OUT PTERMINAL This,
-                              SMALL_RECT* Block,
+                              SMALL_RECT* Region,
                               SHORT CursorStartX,
                               SHORT CursorStartY,
                               UINT ScrolledLines,
@@ -211,47 +211,27 @@
     VOID (NTAPI *SetActiveScreenBuffer)(IN OUT PTERMINAL This);
     VOID (NTAPI *ReleaseScreenBuffer)(IN OUT PTERMINAL This,
                                       IN PCONSOLE_SCREEN_BUFFER ScreenBuffer);
-    BOOL (NTAPI *ProcessKeyCallback)(IN OUT PTERMINAL This,
-                                     MSG* msg,
-                                     BYTE KeyStateMenu,
-                                     DWORD ShiftState,
-                                     UINT VirtualKeyCode,
-                                     BOOL Down);
-    VOID (NTAPI *RefreshInternalInfo)(IN OUT PTERMINAL This);
 
     /*
      * External interface (functions corresponding to the Console API)
      */
     VOID (NTAPI *ChangeTitle)(IN OUT PTERMINAL This);
-    BOOL (NTAPI *ChangeIcon)(IN OUT PTERMINAL This,
-                             HICON IconHandle);
-    HWND (NTAPI *GetConsoleWindowHandle)(IN OUT PTERMINAL This);
     VOID (NTAPI *GetLargestConsoleWindowSize)(IN OUT PTERMINAL This,
                                               PCOORD pSize);
-    BOOL (NTAPI *GetSelectionInfo)(IN OUT PTERMINAL This,
-                                   PCONSOLE_SELECTION_INFO pSelectionInfo);
+    // BOOL (NTAPI *GetSelectionInfo)(IN OUT PTERMINAL This,
+                                   // PCONSOLE_SELECTION_INFO pSelectionInfo);
     BOOL (NTAPI *SetPalette)(IN OUT PTERMINAL This,
                              HPALETTE PaletteHandle,
                              UINT PaletteUsage);
-    ULONG (NTAPI *GetDisplayMode)(IN OUT PTERMINAL This);
-    BOOL  (NTAPI *SetDisplayMode)(IN OUT PTERMINAL This,
-                                  ULONG NewMode);
     INT   (NTAPI *ShowMouseCursor)(IN OUT PTERMINAL This,
                                    BOOL Show);
-    BOOL  (NTAPI *SetMouseCursor)(IN OUT PTERMINAL This,
-                                  HCURSOR CursorHandle);
-    HMENU (NTAPI *MenuControl)(IN OUT PTERMINAL This,
-                               UINT CmdIdLow,
-                               UINT CmdIdHigh);
-    BOOL  (NTAPI *SetMenuClose)(IN OUT PTERMINAL This,
-                                BOOL Enable);
 
 #if 0 // Possible future front-end interface
-    BOOL (NTAPI *GetFrontEndProperty)(IN OUT PTERMINAL This,
+    BOOL (NTAPI *GetTerminalProperty)(IN OUT PTERMINAL This,
                                       ULONG Flag,
                                       PVOID Info,
                                       ULONG Size);
-    BOOL (NTAPI *SetFrontEndProperty)(IN OUT PTERMINAL This,
+    BOOL (NTAPI *SetTerminalProperty)(IN OUT PTERMINAL This,
                                       ULONG Flag,
                                       PVOID Info /*,
                                       ULONG Size */);

Modified: 
branches/condrv_restructure/win32ss/user/winsrv/consrv/include/conio_winsrv.h
URL: 
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user/winsrv/consrv/include/conio_winsrv.h?rev=63123&r1=63122&r2=63123&view=diff
==============================================================================
--- 
branches/condrv_restructure/win32ss/user/winsrv/consrv/include/conio_winsrv.h   
    [iso-8859-1] (original)
+++ 
branches/condrv_restructure/win32ss/user/winsrv/consrv/include/conio_winsrv.h   
    [iso-8859-1] Sat May  3 01:59:28 2014
@@ -30,7 +30,7 @@
                              SMALL_RECT* Region);
     /* Interface used only for text-mode screen buffers */
     VOID (NTAPI *WriteStream)(IN OUT PFRONTEND This,
-                              SMALL_RECT* Block,
+                              SMALL_RECT* Region,
                               SHORT CursorStartX,
                               SHORT CursorStartY,
                               UINT ScrolledLines,

Modified: 
branches/condrv_restructure/win32ss/user/winsrv/consrv/include/console.h
URL: 
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user/winsrv/consrv/include/console.h?rev=63123&r1=63122&r2=63123&view=diff
==============================================================================
--- branches/condrv_restructure/win32ss/user/winsrv/consrv/include/console.h    
[iso-8859-1] (original)
+++ branches/condrv_restructure/win32ss/user/winsrv/consrv/include/console.h    
[iso-8859-1] Sat May  3 01:59:28 2014
@@ -17,10 +17,10 @@
                   IN PCONSOLE_INFO ConsoleInfo,
                   IN ULONG ConsoleLeaderProcessId);
 NTSTATUS NTAPI
-ConDrvRegisterFrontEnd(IN PCONSOLE Console,
-                       IN PFRONTEND FrontEnd);
+ConDrvRegisterTerminal(IN PCONSOLE Console,
+                       IN PTERMINAL Terminal);
 NTSTATUS NTAPI
-ConDrvDeregisterFrontEnd(IN PCONSOLE Console);
+ConDrvDeregisterTerminal(IN PCONSOLE Console);
 VOID NTAPI
 ConDrvDeleteConsole(IN PCONSOLE Console);
 

Modified: branches/condrv_restructure/win32ss/user/winsrv/consrv/include/term.h
URL: 
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user/winsrv/consrv/include/term.h?rev=63123&r1=63122&r2=63123&view=diff
==============================================================================
--- branches/condrv_restructure/win32ss/user/winsrv/consrv/include/term.h       
[iso-8859-1] (original)
+++ branches/condrv_restructure/win32ss/user/winsrv/consrv/include/term.h       
[iso-8859-1] Sat May  3 01:59:28 2014
@@ -11,43 +11,43 @@
 /* Macros used to call functions in the FRONTEND_VTBL virtual table */
 
 #define TermDrawRegion(Console, Region) \
-    (Console)->FrontEndIFace.Vtbl->DrawRegion(&(Console)->FrontEndIFace, 
(Region))
-#define TermWriteStream(Console, Block, CurStartX, CurStartY, ScrolledLines, 
Buffer, Length) \
-    (Console)->FrontEndIFace.Vtbl->WriteStream(&(Console)->FrontEndIFace, 
(Block), (CurStartX), (CurStartY), \
+    (Console)->TermIFace.Vtbl->DrawRegion(&(Console)->TermIFace, (Region))
+#define TermWriteStream(Console, Region, CurStartX, CurStartY, ScrolledLines, 
Buffer, Length) \
+    (Console)->TermIFace.Vtbl->WriteStream(&(Console)->TermIFace, (Region), 
(CurStartX), (CurStartY), \
                                            (ScrolledLines), (Buffer), (Length))
 #define TermSetCursorInfo(Console, ScreenBuffer) \
-    (Console)->FrontEndIFace.Vtbl->SetCursorInfo(&(Console)->FrontEndIFace, 
(ScreenBuffer))
+    (Console)->TermIFace.Vtbl->SetCursorInfo(&(Console)->TermIFace, 
(ScreenBuffer))
 #define TermSetScreenInfo(Console, ScreenBuffer, OldCursorX, OldCursorY) \
-    (Console)->FrontEndIFace.Vtbl->SetScreenInfo(&(Console)->FrontEndIFace, 
(ScreenBuffer), (OldCursorX), (OldCursorY))
+    (Console)->TermIFace.Vtbl->SetScreenInfo(&(Console)->TermIFace, 
(ScreenBuffer), (OldCursorX), (OldCursorY))
 #define TermResizeTerminal(Console) \
-    (Console)->FrontEndIFace.Vtbl->ResizeTerminal(&(Console)->FrontEndIFace)
+    (Console)->TermIFace.Vtbl->ResizeTerminal(&(Console)->TermIFace)
 #define TermSetActiveScreenBuffer(Console) \
-    
(Console)->FrontEndIFace.Vtbl->SetActiveScreenBuffer(&(Console)->FrontEndIFace)
+    (Console)->TermIFace.Vtbl->SetActiveScreenBuffer(&(Console)->TermIFace)
 #define TermReleaseScreenBuffer(Console, ScreenBuffer) \
-    
(Console)->FrontEndIFace.Vtbl->ReleaseScreenBuffer(&(Console)->FrontEndIFace, 
(ScreenBuffer))
+    (Console)->TermIFace.Vtbl->ReleaseScreenBuffer(&(Console)->TermIFace, 
(ScreenBuffer))
 #define TermProcessKeyCallback(Console, Msg, KeyStateMenu, ShiftState, 
VirtualKeyCode, Down) \
     
(Console)->FrontEndIFace.Vtbl->ProcessKeyCallback(&(Console)->FrontEndIFace, 
(Msg), (KeyStateMenu), (ShiftState), (VirtualKeyCode), (Down))
 #define TermRefreshInternalInfo(Console) \
     
(Console)->FrontEndIFace.Vtbl->RefreshInternalInfo(&(Console)->FrontEndIFace)
 
 #define TermChangeTitle(Console) \
-    (Console)->FrontEndIFace.Vtbl->ChangeTitle(&(Console)->FrontEndIFace)
+    (Console)->TermIFace.Vtbl->ChangeTitle(&(Console)->TermIFace)
 #define TermChangeIcon(Console, IconHandle) \
     (Console)->FrontEndIFace.Vtbl->ChangeIcon(&(Console)->FrontEndIFace, 
(IconHandle))
 #define TermGetConsoleWindowHandle(Console) \
     
(Console)->FrontEndIFace.Vtbl->GetConsoleWindowHandle(&(Console)->FrontEndIFace)
 #define TermGetLargestConsoleWindowSize(Console, pSize) \
-    
(Console)->FrontEndIFace.Vtbl->GetLargestConsoleWindowSize(&(Console)->FrontEndIFace,
 (pSize))
+    
(Console)->TermIFace.Vtbl->GetLargestConsoleWindowSize(&(Console)->TermIFace, 
(pSize))
 #define TermGetSelectionInfo(Console, pSelectionInfo) \
     (Console)->FrontEndIFace.Vtbl->GetSelectionInfo(&(Console)->FrontEndIFace, 
(pSelectionInfo))
 #define TermSetPalette(Console, PaletteHandle, PaletteUsage) \
-    (Console)->FrontEndIFace.Vtbl->SetPalette(&(Console)->FrontEndIFace, 
(PaletteHandle), (PaletteUsage))
+    (Console)->TermIFace.Vtbl->SetPalette(&(Console)->TermIFace, 
(PaletteHandle), (PaletteUsage))
 #define TermGetDisplayMode(Console) \
     (Console)->FrontEndIFace.Vtbl->GetDisplayMode(&(Console)->FrontEndIFace)
 #define TermSetDisplayMode(Console, NewMode) \
     (Console)->FrontEndIFace.Vtbl->SetDisplayMode(&(Console)->FrontEndIFace, 
(NewMode))
 #define TermShowMouseCursor(Console, Show) \
-    (Console)->FrontEndIFace.Vtbl->ShowMouseCursor(&(Console)->FrontEndIFace, 
(Show))
+    (Console)->TermIFace.Vtbl->ShowMouseCursor(&(Console)->TermIFace, (Show))
 #define TermSetMouseCursor(Console, CursorHandle) \
     (Console)->FrontEndIFace.Vtbl->SetMouseCursor(&(Console)->FrontEndIFace, 
(CursorHandle))
 #define TermMenuControl(Console, CmdIdLow, CmdIdHigh) \


Reply via email to