linux/include/uapi/linux/dvb/osd.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */
   2/*
   3 * osd.h - DEPRECATED On Screen Display API
   4 *
   5 * NOTE: should not be used on future drivers
   6 *
   7 * Copyright (C) 2001 Ralph  Metzler <ralph@convergence.de>
   8 *                  & Marcus Metzler <marcus@convergence.de>
   9 *                    for convergence integrated media GmbH
  10 *
  11 * This program is free software; you can redistribute it and/or
  12 * modify it under the terms of the GNU General Lesser Public License
  13 * as published by the Free Software Foundation; either version 2.1
  14 * of the License, or (at your option) any later version.
  15 *
  16 * This program is distributed in the hope that it will be useful,
  17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19 * GNU General Public License for more details.
  20 *
  21 * You should have received a copy of the GNU Lesser General Public License
  22 * along with this program; if not, write to the Free Software
  23 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  24 *
  25 */
  26
  27#ifndef _DVBOSD_H_
  28#define _DVBOSD_H_
  29
  30#include <linux/compiler.h>
  31
  32typedef enum {
  33        /* All functions return -2 on "not open" */
  34        OSD_Close = 1,  /* () */
  35        /*
  36         * Disables OSD and releases the buffers
  37         * returns 0 on success
  38         */
  39        OSD_Open,       /* (x0,y0,x1,y1,BitPerPixel[2/4/8](color&0x0F),mix[0..15](color&0xF0)) */
  40        /*
  41         * Opens OSD with this size and bit depth
  42         * returns 0 on success, -1 on DRAM allocation error, -2 on "already open"
  43         */
  44        OSD_Show,       /* () */
  45        /*
  46         * enables OSD mode
  47         * returns 0 on success
  48         */
  49        OSD_Hide,       /* () */
  50        /*
  51         * disables OSD mode
  52         * returns 0 on success
  53         */
  54        OSD_Clear,      /* () */
  55        /*
  56         * Sets all pixel to color 0
  57         * returns 0 on success
  58         */
  59        OSD_Fill,       /* (color) */
  60        /*
  61         * Sets all pixel to color <col>
  62         * returns 0 on success
  63         */
  64        OSD_SetColor,   /* (color,R{x0},G{y0},B{x1},opacity{y1}) */
  65        /*
  66         * set palette entry <num> to <r,g,b>, <mix> and <trans> apply
  67         * R,G,B: 0..255
  68         * R=Red, G=Green, B=Blue
  69         * opacity=0:      pixel opacity 0% (only video pixel shows)
  70         * opacity=1..254: pixel opacity as specified in header
  71         * opacity=255:    pixel opacity 100% (only OSD pixel shows)
  72         * returns 0 on success, -1 on error
  73         */
  74        OSD_SetPalette, /* (firstcolor{color},lastcolor{x0},data) */
  75        /*
  76         * Set a number of entries in the palette
  77         * sets the entries "firstcolor" through "lastcolor" from the array "data"
  78         * data has 4 byte for each color:
  79         * R,G,B, and a opacity value: 0->transparent, 1..254->mix, 255->pixel
  80         */
  81        OSD_SetTrans,   /* (transparency{color}) */
  82        /*
  83         * Sets transparency of mixed pixel (0..15)
  84         * returns 0 on success
  85         */
  86        OSD_SetPixel,   /* (x0,y0,color) */
  87        /*
  88         * sets pixel <x>,<y> to color number <col>
  89         * returns 0 on success, -1 on error
  90         */
  91        OSD_GetPixel,   /* (x0,y0) */
  92        /* returns color number of pixel <x>,<y>,  or -1 */
  93        OSD_SetRow,     /* (x0,y0,x1,data) */
  94        /*
  95         * fills pixels x0,y through  x1,y with the content of data[]
  96         * returns 0 on success, -1 on clipping all pixel (no pixel drawn)
  97         */
  98        OSD_SetBlock,   /* (x0,y0,x1,y1,increment{color},data) */
  99        /*
 100         * fills pixels x0,y0 through  x1,y1 with the content of data[]
 101         * inc contains the width of one line in the data block,
 102         * inc<=0 uses blockwidth as linewidth
 103         * returns 0 on success, -1 on clipping all pixel
 104         */
 105        OSD_FillRow,    /* (x0,y0,x1,color) */
 106        /*
 107         * fills pixels x0,y through  x1,y with the color <col>
 108         * returns 0 on success, -1 on clipping all pixel
 109         */
 110        OSD_FillBlock,  /* (x0,y0,x1,y1,color) */
 111        /*
 112         * fills pixels x0,y0 through  x1,y1 with the color <col>
 113         * returns 0 on success, -1 on clipping all pixel
 114         */
 115        OSD_Line,       /* (x0,y0,x1,y1,color) */
 116        /*
 117         * draw a line from x0,y0 to x1,y1 with the color <col>
 118         * returns 0 on success
 119         */
 120        OSD_Query,      /* (x0,y0,x1,y1,xasp{color}}), yasp=11 */
 121        /*
 122         * fills parameters with the picture dimensions and the pixel aspect ratio
 123         * returns 0 on success
 124         */
 125        OSD_Test,       /* () */
 126        /*
 127         * draws a test picture. for debugging purposes only
 128         * returns 0 on success
 129         * TODO: remove "test" in final version
 130         */
 131        OSD_Text,       /* (x0,y0,size,color,text) */
 132        OSD_SetWindow,  /* (x0) set window with number 0<x0<8 as current */
 133        OSD_MoveWindow, /* move current window to (x0, y0) */
 134        OSD_OpenRaw,    /* Open other types of OSD windows */
 135} OSD_Command;
 136
 137typedef struct osd_cmd_s {
 138        OSD_Command cmd;
 139        int x0;
 140        int y0;
 141        int x1;
 142        int y1;
 143        int color;
 144        void __user *data;
 145} osd_cmd_t;
 146
 147/* OSD_OpenRaw: set 'color' to desired window type */
 148typedef enum {
 149        OSD_BITMAP1,           /* 1 bit bitmap */
 150        OSD_BITMAP2,           /* 2 bit bitmap */
 151        OSD_BITMAP4,           /* 4 bit bitmap */
 152        OSD_BITMAP8,           /* 8 bit bitmap */
 153        OSD_BITMAP1HR,         /* 1 Bit bitmap half resolution */
 154        OSD_BITMAP2HR,         /* 2 bit bitmap half resolution */
 155        OSD_BITMAP4HR,         /* 4 bit bitmap half resolution */
 156        OSD_BITMAP8HR,         /* 8 bit bitmap half resolution */
 157        OSD_YCRCB422,          /* 4:2:2 YCRCB Graphic Display */
 158        OSD_YCRCB444,          /* 4:4:4 YCRCB Graphic Display */
 159        OSD_YCRCB444HR,        /* 4:4:4 YCRCB graphic half resolution */
 160        OSD_VIDEOTSIZE,        /* True Size Normal MPEG Video Display */
 161        OSD_VIDEOHSIZE,        /* MPEG Video Display Half Resolution */
 162        OSD_VIDEOQSIZE,        /* MPEG Video Display Quarter Resolution */
 163        OSD_VIDEODSIZE,        /* MPEG Video Display Double Resolution */
 164        OSD_VIDEOTHSIZE,       /* True Size MPEG Video Display Half Resolution */
 165        OSD_VIDEOTQSIZE,       /* True Size MPEG Video Display Quarter Resolution*/
 166        OSD_VIDEOTDSIZE,       /* True Size MPEG Video Display Double Resolution */
 167        OSD_VIDEONSIZE,        /* Full Size MPEG Video Display */
 168        OSD_CURSOR             /* Cursor */
 169} osd_raw_window_t;
 170
 171typedef struct osd_cap_s {
 172        int  cmd;
 173#define OSD_CAP_MEMSIZE         1  /* memory size */
 174        long val;
 175} osd_cap_t;
 176
 177
 178#define OSD_SEND_CMD            _IOW('o', 160, osd_cmd_t)
 179#define OSD_GET_CAPABILITY      _IOR('o', 161, osd_cap_t)
 180
 181#endif
 182