p3dfiles.c

来自「speech signal process tools」· C语言 代码 · 共 943 行 · 第 1/2 页

C
943
字号
/*----------------------------------------------------------------------+|									||   This material contains proprietary software of Entropic Speech,	||   Inc.  Any reproduction, distribution, or publication without the	||   prior written permission of Entropic Speech, Inc. is strictly	||   prohibited.  Any public distribution of copies of this work		||   authorized in writing by Entropic Speech, Inc. must bear the	||   notice								||									||    "Copyright (c) 1990 Entropic Speech, Inc.  All rights reserved."   ||									|+-----------------------------------------------------------------------+|									||  Program: plot3d							||  Module: p3dfiles.c							||									||  Handle command windows for load and saving params and loading data.	||									||  Rodney W. Johnson, Entropic Speech, Inc.				||									|+----------------------------------------------------------------------*/#ifndef lintstatic char *sccs_id = "@(#)p3dfiles.c	1.7	7/24/91	ESI";#endif#include <stdio.h>#include <esps/esps.h>#include <xview/xview.h>#include <xview/panel.h>#include <xview/cms.h>#include <esps/constants.h>#include "plot3d.h"short		get_fea_type();long		get_fea_siz();extern int  	debug_level;extern int	do_color;extern int      data_loaded;extern char     *iname;extern char     *start_rec_string;extern char     *end_rec_string;extern char     *start_item_string;extern char     *end_item_string;extern char     *farg_string;extern char     *dir_string;Xv_opaque	load_data_notify(),		load_params_notify(),		save_params_notify();static int	ld_dat_notify();static char	*ld_dat();static int	ld_par_notify();static char	*ld_par();static int	sav_par_notify();static char	*sav_par();static char	*make_path();extern void	do_box(), do_axes();extern void	getsym();extern char	*read_data();extern void	set_frame_title();extern void	set_box_len(),	set_box_wid(),	set_box_hgt();extern int	get_box_len(),	get_box_wid(),	get_box_hgt();extern void	set_hskew(),	set_vskew(),	set_finv();extern double	get_hskew(),	get_vskew(),	get_finv();extern void	set_ori();extern int	get_ori();extern void	set_rot(),	set_bear(),	set_elev();extern double	get_rot(),	get_bear(),	get_elev();static Frame	    ld_dat_frame;static Panel	    ld_dat_panel;static Panel_item   ld_dat_dir_text;static Panel_item   ld_dat_file_text;static Panel_item   ld_dat_button;static Panel_item   ld_dat_startrec_text, ld_dat_endrec_text;static Panel_item   ld_dat_fld_text;static Panel_item   ld_dat_startitem_text, ld_dat_enditem_text;static Panel_item   ld_dat_rb_msg;static Panel_item   ld_dat_msg;static Frame	    ld_par_frame;static Panel	    ld_par_panel;static Panel_item   ld_par_dir_text;static Panel_item   ld_par_file_text;static Panel_item   ld_par_msg;static Panel_item   ld_par_button;static Frame	    sav_par_frame;static Panel	    sav_par_panel;static Panel_item   sav_par_dir_text;static Panel_item   sav_par_file_text;static Panel_item   sav_par_msg;static Panel_item   sav_par_button;voidinit_file_windows(cms)    Cms			cms;{    extern Frame	panel_frame;    /* Create load data panel */    ld_dat_frame = xv_create(panel_frame, FRAME_CMD,			XV_WIDTH,		    452,			XV_HEIGHT,		    164,			XV_LABEL,		    "3-D Plot:  Load Data",			XV_SHOW,		    FALSE,			FRAME_SHOW_FOOTER,	    FALSE,			FRAME_CMD_PUSHPIN_IN,	    FALSE,			0);    ld_dat_panel = xv_get(ld_dat_frame, FRAME_CMD_PANEL);    xv_set(ld_dat_panel,			XV_X,			    0,			XV_Y,			    0,			XV_WIDTH,		    WIN_EXTEND_TO_EDGE,			XV_HEIGHT,		    WIN_EXTEND_TO_EDGE,			0);    if (do_color)	xv_set(ld_dat_panel,			WIN_CMS,		    cms,			WIN_FOREGROUND_COLOR,	    COL_PANEL_FG,			WIN_BACKGROUND_COLOR,	    COL_PANEL_BG,			0);    ld_dat_dir_text = xv_create(ld_dat_panel, PANEL_TEXT,			XV_X,			    12,			XV_Y,			    21,			XV_WIDTH,		    341,			XV_HEIGHT,		    15,			PANEL_LABEL_STRING,	    "directory",			PANEL_VALUE_X,		    81,			PANEL_VALUE_Y,		    21,			PANEL_LAYOUT,		    PANEL_HORIZONTAL,			PANEL_VALUE_DISPLAY_LENGTH, 34,			PANEL_VALUE_STORED_LENGTH,  120,			PANEL_READ_ONLY,	    FALSE,			0);    if ( data_loaded )	xv_set( ld_dat_dir_text, PANEL_VALUE, dir_string, NULL);    ld_dat_file_text = xv_create(ld_dat_panel, PANEL_TEXT,			XV_X,			    49,			XV_Y,			    53,			XV_WIDTH,		    304,			XV_HEIGHT,		    15,			PANEL_LABEL_STRING,	    "file",			PANEL_VALUE_X,		    81,			PANEL_VALUE_Y,		    53,			PANEL_LAYOUT,		    PANEL_HORIZONTAL,			PANEL_VALUE_DISPLAY_LENGTH, 34,			PANEL_VALUE_STORED_LENGTH,  120,			PANEL_READ_ONLY,	    FALSE,			0);    if ( data_loaded )	xv_set( ld_dat_file_text, PANEL_VALUE, iname, NULL);    ld_dat_button = xv_create(ld_dat_panel, PANEL_BUTTON,			XV_X,			    372,			XV_Y,			    67,			XV_WIDTH,		    61,			XV_HEIGHT,		    25,			PANEL_LABEL_STRING,	    "  load  ",			PANEL_NOTIFY_PROC,	    ld_dat_notify,			0);    ld_dat_startrec_text = xv_create(ld_dat_panel, PANEL_TEXT,			XV_X,			    60,			XV_Y,			    85,			XV_WIDTH,		    62,			XV_HEIGHT,		    15,			PANEL_LABEL_STRING,	    "-r",			PANEL_VALUE_X,		    82,			PANEL_VALUE_Y,		    85,			PANEL_LAYOUT,		    PANEL_HORIZONTAL,			PANEL_VALUE_DISPLAY_LENGTH, 5,			PANEL_VALUE_STORED_LENGTH,  12,			PANEL_READ_ONLY,	    FALSE,			0);    if ( data_loaded )	xv_set( ld_dat_startrec_text, PANEL_VALUE, start_rec_string, NULL);    ld_dat_endrec_text = xv_create(ld_dat_panel, PANEL_TEXT,			XV_X,			    129,			XV_Y,			    85,			XV_WIDTH,		    51,			XV_HEIGHT,		    15,			PANEL_LABEL_STRING,	    ":",			PANEL_VALUE_X,		    140,			PANEL_VALUE_Y,		    85,			PANEL_LAYOUT,		    PANEL_HORIZONTAL,			PANEL_VALUE_DISPLAY_LENGTH, 5,			PANEL_VALUE_STORED_LENGTH,  12,			PANEL_READ_ONLY,	    FALSE,			0);    if ( data_loaded )	xv_set( ld_dat_endrec_text, PANEL_VALUE, end_rec_string, NULL);    ld_dat_fld_text = xv_create(ld_dat_panel, PANEL_TEXT,			XV_X,			    41,			XV_Y,			    117,			XV_WIDTH,		    152,			XV_HEIGHT,		    15,			PANEL_LABEL_STRING,	    "field",			PANEL_VALUE_X,		    81,			PANEL_VALUE_Y,		    117,			PANEL_LAYOUT,		    PANEL_HORIZONTAL,			PANEL_VALUE_DISPLAY_LENGTH, 14,			PANEL_VALUE_STORED_LENGTH,  80,			PANEL_VALUE,		    DEF_FIELD,			PANEL_READ_ONLY,	    FALSE,			0);    if ( data_loaded )	xv_set( ld_dat_fld_text, PANEL_VALUE, farg_string, NULL);    ld_dat_startitem_text = xv_create(ld_dat_panel, PANEL_TEXT,			XV_X,			    203,			XV_Y,			    117,			XV_WIDTH,		    53,			XV_HEIGHT,		    15,			PANEL_LABEL_STRING,	    "[",			PANEL_VALUE_X,		    216,			PANEL_VALUE_Y,		    117,			PANEL_LAYOUT,		    PANEL_HORIZONTAL,			PANEL_VALUE_DISPLAY_LENGTH, 5,			PANEL_VALUE_STORED_LENGTH,  12,			PANEL_READ_ONLY,	    FALSE,			0);    if ( data_loaded )	xv_set( ld_dat_startitem_text, PANEL_VALUE, start_item_string, NULL);    ld_dat_enditem_text = xv_create(ld_dat_panel, PANEL_TEXT,			XV_X,			    265,			XV_Y,			    117,			XV_WIDTH,		    51,			XV_HEIGHT,		    15,			PANEL_LABEL_STRING,	    ":",			PANEL_VALUE_X,		    276,			PANEL_VALUE_Y,		    117,			PANEL_LAYOUT,		    PANEL_HORIZONTAL,			PANEL_VALUE_DISPLAY_LENGTH, 5,			PANEL_VALUE_STORED_LENGTH,  12,			PANEL_READ_ONLY,	    FALSE,			0);    if ( data_loaded )	xv_set( ld_dat_enditem_text, PANEL_VALUE, end_item_string, NULL);    ld_dat_rb_msg = xv_create(ld_dat_panel, PANEL_MESSAGE,			XV_X,			    324,			XV_Y,			    117,			XV_WIDTH,		    5,			XV_HEIGHT,		    13,			PANEL_LABEL_STRING,	    "]",			PANEL_LABEL_BOLD,	    TRUE,			0);    ld_dat_msg = xv_create(ld_dat_panel, PANEL_MESSAGE,			XV_X,			    12,			XV_Y,			    141,			/* XV_HEIGHT,		    13, */			PANEL_LABEL_STRING,	    "",			PANEL_LABEL_BOLD,	    TRUE,			0);    if (do_color)	xv_set(ld_dat_msg,			PANEL_ITEM_COLOR,	    COL_ERRMSG_FG,			0);    /* Create load params panel */    ld_par_frame = xv_create(panel_frame, FRAME_CMD,			XV_WIDTH,		    452,			XV_HEIGHT,		    120,			XV_LABEL,		    "3-D Plot:  Load Params",			XV_SHOW,		    FALSE,			FRAME_SHOW_FOOTER,	    FALSE,			FRAME_CMD_PUSHPIN_IN,	    FALSE,			0);    ld_par_panel = xv_get(ld_par_frame, FRAME_CMD_PANEL);    xv_set(ld_par_panel,			XV_X,			    0,			XV_Y,			    0,			XV_WIDTH,		    WIN_EXTEND_TO_EDGE,			XV_HEIGHT,		    WIN_EXTEND_TO_EDGE,			0);    if (do_color)	xv_set(ld_par_panel,			WIN_CMS,		    cms,			WIN_FOREGROUND_COLOR,	    COL_PANEL_FG,			WIN_BACKGROUND_COLOR,	    COL_PANEL_BG,			0);    ld_par_dir_text = xv_create(ld_par_panel, PANEL_TEXT,			XV_X,			    12,			XV_Y,			    26,			XV_WIDTH,		    341,			XV_HEIGHT,		    15,			PANEL_LABEL_STRING,	    "directory",			PANEL_VALUE_X,		    81,			PANEL_VALUE_Y,		    26,			PANEL_LAYOUT,		    PANEL_HORIZONTAL,			PANEL_VALUE_DISPLAY_LENGTH, 34,			PANEL_VALUE_STORED_LENGTH,  120,			PANEL_READ_ONLY,	    FALSE,			0);    ld_par_file_text = xv_create(ld_par_panel, PANEL_TEXT,			XV_X,			    49,			XV_Y,			    68,			XV_WIDTH,		    304,			XV_HEIGHT,		    15,			PANEL_LABEL_STRING,	    "file",			PANEL_VALUE_X,		    81,			PANEL_VALUE_Y,		    68,			PANEL_LAYOUT,		    PANEL_HORIZONTAL,			PANEL_VALUE_DISPLAY_LENGTH, 34,			PANEL_VALUE_STORED_LENGTH,  120,			PANEL_READ_ONLY,	    FALSE,			0);    ld_par_msg = xv_create(ld_par_panel, PANEL_MESSAGE,			XV_X,			    12,			XV_Y,			    95,			/* XV_HEIGHT,		    13, */			PANEL_LABEL_STRING,	    "",			PANEL_LABEL_BOLD,	    TRUE,			0);    if (do_color)	xv_set(ld_par_msg,			PANEL_ITEM_COLOR,	    COL_ERRMSG_FG,			0);    ld_par_button = xv_create(ld_par_panel, PANEL_BUTTON,			XV_X,			    372,			XV_Y,			    47,			XV_WIDTH,		    61,			XV_HEIGHT,		    25,			PANEL_LABEL_STRING,	    "  load  ",			PANEL_NOTIFY_PROC,	    ld_par_notify,			0);    /* Create save params panel */    sav_par_frame = xv_create(panel_frame, FRAME_CMD,			XV_WIDTH,		    452,			XV_HEIGHT,		    120,			XV_LABEL,		    "3-D Plot:  Save Params",			XV_SHOW,		    FALSE,			FRAME_SHOW_FOOTER,	    FALSE,			FRAME_CMD_PUSHPIN_IN,	    FALSE,			0);    sav_par_panel = xv_get(sav_par_frame, FRAME_CMD_PANEL);    xv_set(sav_par_panel,			XV_X,			    0,			XV_Y,			    0,			XV_WIDTH,		    WIN_EXTEND_TO_EDGE,			XV_HEIGHT,		    WIN_EXTEND_TO_EDGE,			0);    if (do_color)	xv_set(sav_par_panel,			WIN_CMS,		    cms,			WIN_FOREGROUND_COLOR,	    COL_PANEL_FG,			WIN_BACKGROUND_COLOR,	    COL_PANEL_BG,			0);    sav_par_dir_text = xv_create(sav_par_panel, PANEL_TEXT,			XV_X,			    12,			XV_Y,			    26,			XV_WIDTH,		    341,			XV_HEIGHT,		    15,			PANEL_LABEL_STRING,	    "directory",			PANEL_VALUE_X,		    81,			PANEL_VALUE_Y,		    26,			PANEL_LAYOUT,		    PANEL_HORIZONTAL,			PANEL_VALUE_DISPLAY_LENGTH, 34,			PANEL_VALUE_STORED_LENGTH,  120,			PANEL_READ_ONLY,	    FALSE,			0);    sav_par_file_text = xv_create(sav_par_panel, PANEL_TEXT,			XV_X,			    49,			XV_Y,			    68,			XV_WIDTH,		    304,			XV_HEIGHT,		    15,			PANEL_LABEL_STRING,	    "file",			PANEL_VALUE_X,		    81,			PANEL_VALUE_Y,		    68,			PANEL_LAYOUT,		    PANEL_HORIZONTAL,			PANEL_VALUE_DISPLAY_LENGTH, 34,			PANEL_VALUE_STORED_LENGTH,  120,			PANEL_READ_ONLY,	    FALSE,			0);    sav_par_msg = xv_create(sav_par_panel, PANEL_MESSAGE,			XV_X,			    12,			XV_Y,			    95,			/* XV_HEIGHT,		    13, */			PANEL_LABEL_STRING,	    "",			PANEL_LABEL_BOLD,	    TRUE,			0);    if (do_color)	xv_set(sav_par_msg,			PANEL_ITEM_COLOR,	    COL_ERRMSG_FG,			0);    sav_par_button = xv_create(sav_par_panel, PANEL_BUTTON,			XV_X,			    372,			XV_Y,			    47,			XV_WIDTH,		    61,			XV_HEIGHT,		    25,			PANEL_LABEL_STRING,	    "  save  ",			PANEL_NOTIFY_PROC,	    sav_par_notify,			0);}/* NOTIFY FUNCTIONS FOR MENU ITEMS */Xv_opaqueload_data_notify(menu, item)    Menu	menu;    Menu_item	item;{    if (debug_level)        fprintf(stderr, "load_data_notify\n");    xv_set(ld_dat_frame,			XV_SHOW,		    TRUE,			0);    return XV_NULL;}Xv_opaqueload_params_notify(menu, item)    Menu	menu;    Menu_item	item;{    if (debug_level)        fprintf(stderr, "load_params_notify\n");    xv_set(ld_par_frame,			XV_SHOW,		    TRUE,			0);    return XV_NULL;}Xv_opaquesave_params_notify(menu, item)    Menu	menu;    Menu_item	item;{    if (debug_level)        fprintf(stderr, "save_params_notify\n");

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?