~ubuntu-branches/debian/sid/stella/sid

« back to all changes in this revision

Viewing changes to src/emucore/EventHandler.cxx

  • Committer: Package Import Robot
  • Author(s): Stephen Kitt
  • Date: 2012-06-02 07:33:16 UTC
  • mfrom: (1.1.15)
  • Revision ID: package-import@ubuntu.com-20120602073316-20r4hr32t4oj36u9
Tags: 3.7-1
* New upstream version.
* Update description and documentation with new features in 3.7, notably
  Blargg TV filters (replacing the filters available in versions 3.4.1
  and earlier).
* Switch to debhelper compatibility level 9.

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
// See the file "License.txt" for information on usage and redistribution of
15
15
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
16
16
//
17
 
// $Id: EventHandler.cxx 2418 2012-03-16 17:57:23Z stephena $
 
17
// $Id: EventHandler.cxx 2501 2012-05-26 22:18:13Z stephena $
18
18
//============================================================================
19
19
 
20
20
#include <sstream>
329
329
        bool state = event.key.type == SDL_KEYDOWN;
330
330
        bool handled = true;
331
331
 
 
332
        // Immediately store the key state
 
333
        myEvent.setKey(key, state);
 
334
 
332
335
        // An attempt to speed up event processing
333
336
        // All SDL-specific event actions are accessed by either
334
337
        // Control or Alt/Cmd keys.  So we quickly check for those.
375
378
                myOSystem->console().changeYStart(-1);
376
379
                break;
377
380
 
 
381
              case KBDK_1:  // Alt-1 turns off NTSC filtering
 
382
                myOSystem->frameBuffer().setNTSC(NTSCFilter::PRESET_OFF);
 
383
                break;
 
384
 
 
385
              case KBDK_2:  // Alt-2 turns on 'composite' NTSC filtering
 
386
                myOSystem->frameBuffer().setNTSC(NTSCFilter::PRESET_COMPOSITE);
 
387
                break;
 
388
 
 
389
              case KBDK_3:  // Alt-3 turns on 'svideo' NTSC filtering
 
390
                myOSystem->frameBuffer().setNTSC(NTSCFilter::PRESET_SVIDEO);
 
391
                break;
 
392
 
 
393
              case KBDK_4:  // Alt-4 turns on 'rgb' NTSC filtering
 
394
                myOSystem->frameBuffer().setNTSC(NTSCFilter::PRESET_RGB);
 
395
                break;
 
396
 
 
397
              case KBDK_5:  // Alt-5 turns on 'bad' NTSC filtering
 
398
                myOSystem->frameBuffer().setNTSC(NTSCFilter::PRESET_BAD);
 
399
                break;
 
400
 
 
401
              case KBDK_6:  // Alt-6 turns on 'custom' NTSC filtering
 
402
                myOSystem->frameBuffer().setNTSC(NTSCFilter::PRESET_CUSTOM);
 
403
                break;
 
404
 
 
405
              case KBDK_7:  // Alt-7 changes scanline intensity for NTSC filtering
 
406
                if(mod & KMOD_SHIFT)
 
407
                  myOSystem->frameBuffer().setScanlineIntensity(-5);
 
408
                else
 
409
                  myOSystem->frameBuffer().setScanlineIntensity(+5);
 
410
                break;
 
411
 
 
412
              case KBDK_8:  // Alt-8 turns toggles scanline interpolation
 
413
                myOSystem->frameBuffer().toggleScanlineInterpolation();
 
414
                break;
 
415
 
 
416
              case KBDK_9:  // Alt-9 selects various custom adjustables for NTSC filtering
 
417
                if(myOSystem->frameBuffer().ntscEnabled())
 
418
                {
 
419
                  if(mod & KMOD_SHIFT)
 
420
                    myOSystem->frameBuffer().showMessage(
 
421
                      myOSystem->frameBuffer().ntsc().setPreviousAdjustable());
 
422
                  else
 
423
                    myOSystem->frameBuffer().showMessage(
 
424
                      myOSystem->frameBuffer().ntsc().setNextAdjustable());
 
425
                }
 
426
                break;
 
427
 
 
428
              case KBDK_0:  // Alt-0 changes custom adjustables for NTSC filtering
 
429
                if(myOSystem->frameBuffer().ntscEnabled())
 
430
                {
 
431
                  if(mod & KMOD_SHIFT)
 
432
                    myOSystem->frameBuffer().showMessage(
 
433
                      myOSystem->frameBuffer().ntsc().decreaseAdjustable());
 
434
                  else
 
435
                    myOSystem->frameBuffer().showMessage(
 
436
                      myOSystem->frameBuffer().ntsc().increaseAdjustable());
 
437
                }
 
438
                break;
 
439
 
378
440
              case KBDK_z:
379
441
                if(mod & KMOD_SHIFT)
380
442
                  myOSystem->console().toggleP0Collision();
427
489
 
428
490
              case KBDK_PERIOD:
429
491
                if(mod & KMOD_SHIFT)
430
 
                  myOSystem->console().enableCollisions(false);
431
 
                else
432
 
                  myOSystem->console().enableBits(false);
433
 
                break;
434
 
 
435
 
              case KBDK_SLASH:
436
 
                if(mod & KMOD_SHIFT)
437
 
                  myOSystem->console().enableCollisions(true);
438
 
                else
439
 
                  myOSystem->console().enableBits(true);
 
492
                  myOSystem->console().toggleCollisions();
 
493
                else
 
494
                  myOSystem->console().toggleBits();
440
495
                break;
441
496
 
442
497
              case KBDK_p:  // Alt-p toggles phosphor effect
447
502
                myOSystem->frameBuffer().toggleFrameStats();
448
503
                break;
449
504
 
450
 
              case KBDK_s:  // TODO - make this remappable
 
505
              case KBDK_s:
451
506
                if(myContSnapshotInterval == 0)
452
507
                {
453
508
                  ostringstream buf;
514
569
            {
515
570
              case KBDK_0:  // Ctrl-0 switches between mouse control modes
516
571
                if(myMouseControl)
517
 
                {
518
 
                  const string& message = myMouseControl->next();
519
 
                  myOSystem->frameBuffer().showMessage(message);
520
 
                }
 
572
                  myOSystem->frameBuffer().showMessage(myMouseControl->next());
521
573
                break;
522
574
 
523
575
              case KBDK_1:  // Ctrl-1 swaps Stelladaptor/2600-daptor ports
1025
1077
      if((myState == S_EMULATE || myState == S_CMDMENU ||
1026
1078
          myState == S_DEBUGGER) && state)
1027
1079
      {
1028
 
        myOSystem->settings().saveConfig();
1029
 
 
1030
1080
        // Go back to the launcher, or immediately quit
1031
 
        if(myOSystem->settings().getBool("uselauncher"))
 
1081
        if(myOSystem->settings().getBool("exitlauncher") ||
 
1082
           myOSystem->launcherUsed())
1032
1083
        {
1033
1084
          myOSystem->deleteConsole();
1034
1085
          myOSystem->createLauncher();
1043
1094
      {
1044
1095
        saveKeyMapping();
1045
1096
        saveJoyMapping();
1046
 
        myOSystem->settings().saveConfig();
1047
1097
        myOSystem->quit();
1048
1098
      }
1049
1099
      return;
1960
2010
}
1961
2011
 
1962
2012
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1963
 
void EventHandler::setMouseControllerMode(const string& mode)
 
2013
void EventHandler::setMouseControllerMode(bool enable)
1964
2014
{
1965
 
  delete myMouseControl;  myMouseControl = NULL;
1966
2015
  if(&myOSystem->console())
1967
2016
  {
1968
 
    const string& control = mode == "rom" ?
1969
 
      myOSystem->console().properties().get(Controller_MouseAxis) : mode;
 
2017
    delete myMouseControl;  myMouseControl = NULL;
 
2018
 
 
2019
    const string& control = enable ?
 
2020
      myOSystem->console().properties().get(Controller_MouseAxis) : "none";
1970
2021
 
1971
2022
    myMouseControl = new MouseControl(myOSystem->console(), control);
1972
2023
    myMouseControl->next();  // set first available mode