OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [mw/] [src/] [demos/] [mwin/] [muserfd.c] - Rev 1765

Compare with Previous | Blame | View Log

#include <windows.h>
#include <wintern.h>
#include <stdio.h>
#include <stdlib.h>
 
 
#if DOS_DJGPP | defined(__FreeBSD__)
#include <sys/types.h>
#endif
 
#define MAX_TEST_FD (500)
 
LRESULT CALLBACK wproc(HWND,UINT,WPARAM,LPARAM);
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   PSTR szCmdLine, int iCmdShow)
{
        static char szAppName[]="HolaWin";
        HWND hwnd;
        WNDCLASS wndclass;
        int random_fd[MAX_TEST_FD][2], fd, unreg_fd;
 
        wndclass.style          = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
        wndclass.lpfnWndProc    = (WNDPROC)wproc;
        wndclass.cbClsExtra     =0;
        wndclass.cbWndExtra     =0;
        wndclass.hInstance      =0;
        wndclass.hIcon          =0;
        wndclass.hCursor        =0;
        wndclass.hbrBackground  =(HBRUSH)GetStockObject(LTGRAY_BRUSH);
        wndclass.lpszMenuName   =NULL;
        wndclass.lpszClassName  = szAppName;
 
        RegisterClass(&wndclass);
        hwnd=CreateWindowEx(0L,
                          szAppName,
                          "Hola",
                          WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                          CW_USEDEFAULT,
                          CW_USEDEFAULT,
                          80,
                          80,
                          NULL,
                          NULL,
                          NULL,
                          NULL);
 
        /*
         * Create a random list of fd's to test the list
         * code.
         */
 
        printf ("Select a random list of fd's to test with.\n");
 
        for (fd = 0; fd < MAX_TEST_FD; fd++)
        {
          random_fd[fd][0] = random () % FD_SETSIZE;
          random_fd[fd][1] = random () % 3;
        }
 
        for (fd = 0; fd < MAX_TEST_FD; fd++)
        {
          switch (random_fd[fd][1])
          {
            case 0:
              MwRegisterFdInput (hwnd, random_fd[fd][0]);
              break;
 
            case 1:
              MwRegisterFdOutput (hwnd, random_fd[fd][0]);
              break;
 
            case 2:
              MwRegisterFdExcept (hwnd, random_fd[fd][0]);
              break;
 
            default:
 
              printf ("Bad fd type, fd index = %i, type = %i !\n",
                      fd, random_fd[fd][1]);
              return 1;
          }
        }
 
        unreg_fd = random () % MAX_TEST_FD;
 
        for (fd = 0; fd < MAX_TEST_FD; fd++)
        {
          switch (random_fd[unreg_fd][1])
          {
            case 0:
              MwUnregisterFdInput (hwnd, random_fd[unreg_fd][0]);
              break;
 
            case 1:
              MwUnregisterFdOutput (hwnd, random_fd[unreg_fd][0]);
              break;
 
            case 2:
              MwUnregisterFdExcept (hwnd, random_fd[unreg_fd][0]);
              break;
 
            default:
 
              printf ("Bad fd type !\n");
              return 1;
          }
 
          unreg_fd++;
          if (unreg_fd >= MAX_TEST_FD)
            unreg_fd = 0;
        }
 
 
        return 0;
}
 
LRESULT CALLBACK wproc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{       
        HDC hdc;
        PAINTSTRUCT ps;
        RECT rect;
 
        switch (iMsg) {
        case WM_CREATE:
                break;
        case WM_PAINT:
#if 0
        case WM_MOUSEFIRST:
#endif
                hdc=BeginPaint(hwnd,&ps);
                GetClientRect(hwnd,&rect);
                DrawText(hdc, "Hola, NOS", -1, &rect,
                         DT_SINGLELINE|DT_CENTER|DT_VCENTER);
                EndPaint(hwnd,&ps);
                break;
        case WM_DESTROY:
                PostQuitMessage(0);
                break;
        default:
                return DefWindowProc(hwnd,iMsg,wParam,lParam);
        }      
        return (0);
}
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.