diff ppl.c @ 179:b29c9a2fbeb5

Add full screen switching to PPL via 'f' key, and various other improvements.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 06 Oct 2012 12:28:53 +0300
parents dfe7e392ea7e
children 9024d249e47a
line wrap: on
line diff
--- a/ppl.c	Sat Oct 06 12:21:31 2012 +0300
+++ b/ppl.c	Sat Oct 06 12:28:53 2012 +0300
@@ -42,7 +42,7 @@
         optOutChannels = 2,
         optOutFreq = 48000,
         optMuteOChannels = -1,
-        optStartOrder = -1;
+        optStartOrder = 0;
 BOOL    optUsePlayTime = FALSE;
 size_t  optPlayTime;
 
@@ -227,6 +227,8 @@
 
 BOOL dmInitializeVideo()
 {
+    SDL_FreeSurface(engine.screen);
+
     engine.screen = SDL_SetVideoMode(
         engine.optScrWidth, engine.optScrHeight, engine.optScrDepth,
         engine.optVFlags | SDL_RESIZABLE | SDL_SWSURFACE | SDL_HWPALETTE);
@@ -655,7 +657,7 @@
     
     jvmSetCallback(engine.dev, jmpExec, engine.plr);
     jmpSetModule(engine.plr, engine.mod);
-    jmpPlayOrder(engine.plr, 0);
+    jmpPlayOrder(engine.plr, optStartOrder);
     jvmSetGlobalVol(engine.dev, 100);
 
     // Initialize video
@@ -728,6 +730,12 @@
                         force = TRUE;
                         break;
 
+                    case SDLK_f:
+                        engine.optVFlags ^= SDL_FULLSCREEN;
+                        if (!dmInitializeVideo())
+                            goto error_exit;
+                        break;
+
                     default:
                         break;
                 }
@@ -782,8 +790,9 @@
         {
             dmFillRect(engine.screen, 5, 5 + 12, engine.screen->w, 5 + 12 + 10, col.boxBg);
             dmDrawBMTextQ(engine.screen, font, DMD_TRANSPARENT, 5, 5 + 12,
-            "Tempo: %3d | Speed: %3d | Row: %3d | Order: %3d/%3d | Pattern: %3d/%3d",
-            engine.plr->tempo, engine.plr->speed, engine.plr->row,
+            "Tempo: %3d | Speed: %3d | Row: %3d/%-3d | Order: %3d/%-3d | Pattern: %3d/%-3d",
+            engine.plr->tempo, engine.plr->speed,
+            engine.plr->row, engine.plr->pattern->nrows,
             engine.plr->order, engine.mod->norders,
             engine.plr->npattern, engine.mod->npatterns);
         }