00001 /***************************************************************************** 00002 * screen.h: Screen capture module. 00003 ***************************************************************************** 00004 * Copyright (C) 2004-2008 the VideoLAN team 00005 * $Id$ 00006 * 00007 * Authors: Gildas Bazin <gbazin@videolan.org> 00008 * Antoine Cellerier <dionoea at videolan dot org> 00009 * 00010 * This program is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2 of the License, or 00013 * (at your option) any later version. 00014 * 00015 * This program is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 * GNU General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU General Public License 00021 * along with this program; if not, write to the Free Software 00022 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. 00023 *****************************************************************************/ 00024 00025 #include <vlc_input.h> 00026 #include <vlc_access.h> 00027 #include <vlc_demux.h> 00028 00029 #if !defined( HAVE_BEOS ) && !defined( HAVE_DARWIN ) 00030 # define SCREEN_SUBSCREEN 00031 # define SCREEN_MOUSE 00032 #endif 00033 00034 #ifdef SCREEN_MOUSE 00035 # include <vlc_image.h> 00036 #endif 00037 00038 typedef struct screen_data_t screen_data_t; 00039 00040 struct demux_sys_t 00041 { 00042 es_format_t fmt; 00043 es_out_id_t *es; 00044 00045 float f_fps; 00046 mtime_t i_next_date; 00047 int i_incr; 00048 00049 #ifdef SCREEN_SUBSCREEN 00050 bool b_follow_mouse; 00051 unsigned int i_screen_height; 00052 unsigned int i_screen_width; 00053 00054 unsigned int i_top; 00055 unsigned int i_left; 00056 unsigned int i_height; 00057 unsigned int i_width; 00058 #endif 00059 00060 #ifdef SCREEN_MOUSE 00061 picture_t *p_mouse; 00062 filter_t *p_blend; 00063 picture_t dst; 00064 #endif 00065 00066 screen_data_t *p_data; 00067 }; 00068 00069 int screen_InitCapture ( demux_t * ); 00070 int screen_CloseCapture( demux_t * ); 00071 block_t *screen_Capture( demux_t * ); 00072 00073 #ifdef SCREEN_SUBSCREEN 00074 void FollowMouse( demux_sys_t *, int, int ); 00075 #endif 00076 #ifdef SCREEN_MOUSE 00077 void RenderCursor( demux_t *, int, int, uint8_t * ); 00078 #endif
1.5.6