Beispiel #1
0
save_kine()
{
 char base[128];
 int fmat=1;
 sprintf(base,"frame");
#ifdef NOGIF
#else
new_int("format:1-ppm,2-gif",&fmat);
#endif
 new_string("Base file name",base);
 if(strlen(base)>0)
   save_movie(base,fmat);
   
}
Beispiel #2
0
//
//  FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_COMMAND	- process the application menu
//  WM_PAINT	- Paint the main window
//  WM_DESTROY	- post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    static char dest[1024];
    int i,wmId,wmEvent;
    PAINTSTRUCT ps;
    HDC hdc;
    HMENU hMenu;

    switch (message)
    {
    case WM_COMMAND:
        wmId    = LOWORD(wParam);
        wmEvent = HIWORD(wParam);
        // Parse the menu selections:
        switch (wmId)
        {
        case ID_FILE_OPEN:
            file_open(hWnd);
            break;
        case ID_FILE_LOADPATCH:
            file_open_patch(hWnd);
            break;
        case ID_FILE_UNLOAD:
            emu_event(E_UNLOAD,0);
            break;
        case ID_NES_PAUSE:
            emu_event(E_TOGGLERUNNING,0);
            break;
        case ID_NES_SOFTRESET:
            emu_event(E_SOFTRESET,0);
            break;
        case ID_NES_HARDRESET:
            emu_event(E_HARDRESET,0);
            break;
        case ID_NES_LOADSTATE:
            emu_event(E_LOADSTATE,0);
            break;
        case ID_NES_SAVESTATE:
            emu_event(E_SAVESTATE,0);
            break;
        case ID_MOVIE_LOAD:
            load_movie(hWnd);
            break;
        case ID_MOVIE_SAVE:
            save_movie(hWnd);
            break;
        case ID_MOVIE_PLAY:
            emu_event(E_PLAYMOVIE,0);
            break;
        case ID_MOVIE_RECORD:
            emu_event(E_RECORDMOVIE,0);
            break;
        case ID_MOVIE_STOP:
            emu_event(E_STOPMOVIE,0);
            break;
        case ID_FDS_FLIPDISK:
            emu_event(E_FLIPDISK,0);
            break;
        case ID_VIEW_CONFIGURATION:
            ConfigurationPropertySheet(hWnd);
            break;
        case ID_VIEW_DEBUGGER:
            DialogBox(hInst,(LPCTSTR)IDD_DEBUGGER,hWnd,(DLGPROC)DebuggerDlg);
            break;
        case ID_VIEW_SEARCH:
            DialogBox(hInst,(LPCTSTR)IDD_CHEATSEARCH,hWnd,(DLGPROC)CheatSearchDlg);
            break;
        case ID_VIEW_CONSOLE:
            hMenu = GetMenu(hWnd);
            if(GetWindowLong(hConsole,GWL_USERDATA) == 0) {
                CheckMenuItem(hMenu,ID_VIEW_CONSOLE,MF_CHECKED);
                ShowWindow(hConsole,SW_SHOW);
                SetWindowLong(hConsole,GWL_USERDATA,1);
            }
            else {
                CheckMenuItem(hMenu,ID_VIEW_CONSOLE,MF_UNCHECKED);
                ShowWindow(hConsole,SW_HIDE);
                SetWindowLong(hConsole,GWL_USERDATA,0);
            }
            break;
        case IDM_ABOUT:
            DialogBox(hInst,(LPCTSTR)IDD_ABOUT,hWnd,(DLGPROC)AboutDlg);
            break;
        case ID_HELP_SUPPORTEDMAPPERS:
            DialogBox(hInst,(LPCTSTR)IDD_MAPPERS,hWnd,(DLGPROC)MappersDlg);
            break;
        case IDM_EXIT:
            if(config_get_bool("video.fullscreen") != 0)
                emu_event(E_WINDOWED,0);
            else
                DestroyWindow(hWnd);
            break;
        case ID_VIEW_FULLSCREEN:
            emu_event(E_TOGGLEFULLSCREEN,0);
            break;
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
        }
        break;
    case WM_ENTERMENULOOP:
        sound_pause();
        for(i=0; nesids[i] != -1; i++) {
            EnableMenuItem(GetMenu(hWnd),nesids[i],nes->cart ? MF_ENABLED : MF_GRAYED);
        }
        break;
    case WM_EXITMENULOOP:
        sound_play();
        break;
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        // TODO: Add any drawing code here...
        EndPaint(hWnd, &ps);
        break;
    case WM_DESTROY:
        quit++;
        if(hConsole)
            DestroyWindow(hConsole);
        PostQuitMessage(0);
        break;
    case WM_SIZE:
//		video_resize();
        break;
    case WM_DROPFILES:
        DragQueryFile((HDROP)wParam,0,dest,1024);
        DragFinish((HDROP)wParam);
        loadrom(dest);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}