Changeset 4016

Show
Ignore:
Timestamp:
08/24/07 00:26:26 (1 year ago)
Author:
hverkuil
Message:

Add ivtv-fb-colormap-test

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • ivtv/trunk/test/Makefile

    r4012 r4016  
    55        mpeg-read-test mpeg-freq-test mpeg-read-sleep-test \ 
    66        mpeg-enc-stop-start-test ivtv-yuv-dma-test \ 
    7         ivtv-osd-dma-test 
     7        ivtv-osd-dma-test ivtv-fb-colormap-test 
    88 
    99CFLAGS = -I../driver -I../utils -D_GNU_SOURCE -O2 -Wall 
  • ivtv/trunk/test/ivtv-fb-colormap-test.c

    r4011 r4016  
    77#include <linux/videodev2.h> 
    88#include <linux/fb.h> 
     9#include <linux/matroxfb.h> 
     10#include "media/ivtv-fb.h" 
     11 
     12#define W 720 
     13#define H 576 
     14 
     15static unsigned char osd[720*576]; 
    916 
    1017int main(int argc, char **argv) 
     
    1320        __u16 red[256], green[256], blue[256], transp[256]; 
    1421        struct fb_cmap cmap; 
     22        struct fb_var_screeninfo vi; 
     23        struct ivtvfb_dma_frame df; 
    1524        int fd; 
    1625        int i; 
     
    2433                exit(-1); 
    2534        } 
     35 
     36        ioctl(fd, FBIOGET_VSCREENINFO, &vi); 
     37        vi.nonstd = 0; 
     38        vi.bits_per_pixel = 8; 
     39        vi.xres = W; 
     40        vi.yres = H; 
     41        vi.xres_virtual = W; 
     42        vi.yres_virtual = H; 
     43        vi.xoffset = 0; 
     44        vi.yoffset = 0; 
     45        ioctl(fd, FBIOPUT_VSCREENINFO, &vi); 
    2646 
    2747        cmap.red = red; 
     
    3858        } 
    3959 
     60        memset(osd, 0x10, sizeof(osd)); 
     61        df.source = osd; 
     62        df.dest_offset = 0; 
     63        df.count = sizeof(osd); 
     64        ioctl(fd, IVTVFB_IOC_DMA_FRAME, &df); 
     65 
     66        cmap.transp[0x10] = 0xffff; 
     67        // go from black to white (opaque) 
     68        for (i = 0; i < 256; i++) { 
     69                cmap.red[0x10] = i << 8; 
     70                cmap.blue[0x10] = i << 8; 
     71                cmap.green[0x10] = i << 8; 
     72                ioctl(fd, FBIOPUTCMAP, &cmap); 
     73                ioctl(fd, FBIO_WAITFORVSYNC, 0); 
     74        } 
     75        // go from opaque to transparent 
     76        for (i = 255; i >= 0; i--) { 
     77                cmap.transp[0x10] = i << 8; 
     78                ioctl(fd, FBIOPUTCMAP, &cmap); 
     79                ioctl(fd, FBIO_WAITFORVSYNC, 0); 
     80        } 
     81 
    4082        return 0; 
    4183}