colorbarRGB.c
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:2k
源码类别:

DSP编程

开发平台:

C/C++

  1. /*
  2.  *  Copyright 2003 by Texas Instruments Incorporated.
  3.  *  All rights reserved. Property of Texas Instruments Incorporated.
  4.  *  Restricted rights to use, duplicate or disclose this code are
  5.  *  granted through contract.
  6.  *  
  7.  */
  8. /* "@(#) DDK 1.10.00.23 07-02-03 (ddk-b12)" */
  9. #include <std.h>
  10. #include <csl_cache.h>
  11. #include <fvid.h>
  12. #include <csl_dat.h>   
  13. #include "colorbarRGB.h"   
  14. /* static function declaration */
  15. static void generateColorBarRGB(Uint16* buf, Int lineSize);
  16. #define WHITE        0xBDF7
  17. #define YELLOW       0xC5E0
  18. #define CYAN         0x05F7
  19. #define GREEN        0x05E0
  20. #define MAGENTA      0xB818
  21. #define RED          0xB800
  22. #define BLUE         0x0017
  23. #define BLACK        0x0000
  24. static Uint16 imgLineRGB[1024 * 3];
  25. /*
  26.  * ======== fillFrmBufRGB ========
  27.  * This function fill a frame with color bar of RGB565 format.
  28.  */
  29. void FillFrmBufRGB(FVID_RawPFrame* frame, Int lineSz, Int numLines, Int offset)
  30. {
  31.     Int i;
  32.     Int id;
  33.     static Int init = 0; 
  34.     if(!init) {
  35.         generateColorBarRGB(imgLineRGB, lineSz);
  36.         CACHE_clean(CACHE_L2ALL, NULL, NULL);
  37.         init = 1;
  38.     }    
  39.     for(i = 0; i < numLines; i ++) {        
  40.         id = DAT_copy(imgLineRGB + offset * 8, frame->buf + (lineSz << 1) * i, 
  41.             (lineSz << 1));
  42.     }
  43.     DAT_wait(id);
  44. }          
  45. /*
  46.  * ======== generateColorBarRGB ========
  47.  * This function generates a line of color bar with RGB565 format.
  48.  */
  49. static void generateColorBarRGB(Uint16* buf, Int lineSize)
  50. {
  51.     Int i;   
  52.     Int fillSize = lineSize >> 3;
  53.     Int k;
  54.     
  55.     for(k = 0; k < 3; k ++) {
  56.         for(i = 0; i < fillSize; i ++) {
  57.             buf[i] = WHITE;
  58.             buf[fillSize * 1 + i] = YELLOW;
  59.             buf[fillSize * 2 + i] = CYAN;
  60.             buf[fillSize * 3 + i] = GREEN;     
  61.             buf[fillSize * 4 + i] = MAGENTA;     
  62.             buf[fillSize * 5 + i] = RED;     
  63.             buf[fillSize * 6 + i] = BLUE;     
  64.             buf[fillSize * 7 + i] = BLACK;     
  65.         }    
  66.         buf  += lineSize;
  67.     }
  68. }