00001 /***************************************************************************** 00002 * visual.h : Header for the visualisation system 00003 ***************************************************************************** 00004 * Copyright (C) 2002 the VideoLAN team 00005 * $Id: visual.h 12404 2005-08-25 19:57:12Z zorglub $ 00006 * 00007 * Authors: Clément Stenac <[email protected]> 00008 * 00009 * This program is free software; you can redistribute it and/or modify 00010 * it under the terms of the GNU General Public License as published by 00011 * the Free Software Foundation; either version 2 of the License, or 00012 * (at your option) any later version. 00013 * 00014 * This program is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 * GNU General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU General Public License 00020 * along with this program; if not, write to the Free Software 00021 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. 00022 *****************************************************************************/ 00023 00024 typedef struct visual_effect_t 00025 { 00026 char * psz_name; /* Filter name*/ 00027 00028 int (*pf_run)( struct visual_effect_t * , aout_instance_t *, 00029 aout_buffer_t *, picture_t *); 00030 void * p_data; /* The effect stores whatever it wants here */ 00031 int i_width; 00032 int i_height; 00033 char * psz_args; 00034 int i_nb_chans; 00035 } visual_effect_t ; 00036 00037 00038 /***************************************************************************** 00039 * aout_filter_sys_t: visualizer audio filter method descriptor 00040 ***************************************************************************** 00041 * This structure is part of the audio filter descriptor. 00042 * It describes some visualizer specific variables. 00043 *****************************************************************************/ 00044 typedef struct aout_filter_sys_t 00045 { 00046 vout_thread_t *p_vout; 00047 00048 int i_width; 00049 int i_height; 00050 00051 int i_effect; 00052 visual_effect_t **effect; 00053 } aout_filter_sys_t; 00054 00055 /* Prototypes */ 00056 int scope_Run 00057 (visual_effect_t * , aout_instance_t *, aout_buffer_t *, picture_t *); 00058 int dummy_Run 00059 (visual_effect_t * , aout_instance_t *, aout_buffer_t *, picture_t *); 00060 int random_Run 00061 (visual_effect_t * , aout_instance_t *, aout_buffer_t *, picture_t *); 00062 int spectrum_Run 00063 (visual_effect_t * , aout_instance_t *, aout_buffer_t *, picture_t *); 00064 int spectrometer_Run 00065 (visual_effect_t * , aout_instance_t *, aout_buffer_t *, picture_t *); 00066 #if 0 00067 int blur_Run 00068 (visual_effect_t * , aout_instance_t *, aout_buffer_t *, picture_t *); 00069 #endif 00070 00071 /* Default vout size */ 00072 #define VOUT_WIDTH 533 00073 #define VOUT_HEIGHT 400