diff ppl.c @ 165:3e8e0dc30711

Minor visual improvements.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 06 Oct 2012 08:11:47 +0300
parents a49d431ff40e
children e281663f04ba
line wrap: on
line diff
--- a/ppl.c	Sat Oct 06 08:00:34 2012 +0300
+++ b/ppl.c	Sat Oct 06 08:11:47 2012 +0300
@@ -249,7 +249,7 @@
 }
 
 
-void dmDisplayChn(SDL_Surface *screen, int x0, int y0, int x1, int y1, JSSChannel *chn)
+void dmDisplayChn(SDL_Surface *screen, int x0, int y0, int x1, int y1, int nchannel, JSSChannel *chn)
 {
     int yh = y1 - y0 - 2;
     if (yh < 10 || chn == NULL)
@@ -258,14 +258,15 @@
     int xc, ym = y0 + (y1 - y0) / 2, vol = FP_GETH(chn->chVolume);
     int pitch = screen->pitch / sizeof(Uint32);
     DMFixedPoint offs = chn->chPos;
-    Uint32 coln = dmCol(0.0, 0.8, 0.0);
+    Uint32 coln = dmCol(0.0, 0.8, 0.0), colx = dmCol(1.0, 0, 0);
     Uint32 *pix = screen->pixels;
     Sint16 *data = chn->chData;
 
 
     dmFillBox3D(screen, x0, y0, x1, y1,
         (chn->chMute ? dmCol(0.3,0.1,0.1) : dmCol(0,0,0)),
-        col.box2, col.box1);
+        nchannel == engine.actChannel ? colx : col.box2,
+        nchannel == engine.actChannel ? colx : col.box1);
 
     if (chn->chData == NULL || !chn->chPlaying)
         return;
@@ -310,14 +311,17 @@
     qwidth /= nwidth;
     qheight /= nheight;
         
-    for (nchannel = qy = 0; qy < nheight; qy++)
+    for (nchannel = qy = 0; qy < nheight && nchannel < jsetNChannels; qy++)
     {
-        for (qx = 0; qx < nwidth; qx++)
+        for (qx = 0; qx < nwidth && nchannel < jsetNChannels; qx++)
         {
             int xc = x0 + qx * qwidth,
                 yc = y0 + qy * qheight;
 
-            dmDisplayChn(screen, xc + 1, yc + 1, xc + qwidth - 1, yc + qheight - 1, &dev->channels[nchannel]);
+            dmDisplayChn(screen, xc + 1, yc + 1,
+                xc + qwidth - 1, yc + qheight - 1,
+                nchannel, &dev->channels[nchannel]);
+
             nchannel++;
         }
     }