www.pudn.com > lpc10-15.zip > abtool_ui.c


/*
 * abtool_ui.c - User interface object initialization functions.
 * This file was generated by `gxv' from `abtool.G'.
 * DO NOT EDIT BY HAND.
 */

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include "abtool_ui.h"

/*
 * Create object `file_menu' in the specified instance.
 */
Xv_opaque
abtool_file_menu_create(caddr_t ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
		XV_KEY_DATA, INSTANCE, ip,
		MENU_ITEM,
			XV_KEY_DATA, INSTANCE, ip,
			MENU_STRING, "Load SPD",
			NULL,
		MENU_ITEM,
			XV_KEY_DATA, INSTANCE, ip,
			MENU_STRING, "Load Segs",
			NULL,
		MENU_ITEM,
			XV_KEY_DATA, INSTANCE, ip,
			MENU_STRING, "Store Segs",
			NULL,
		MENU_GEN_PIN_WINDOW, owner, "",
		NULL);
	return obj;
}

/*
 * Create object `filenames_menu' in the specified instance.
 */
Xv_opaque
abtool_filenames_menu_create(caddr_t ip, Xv_opaque owner)
{
	extern Menu		ab_filenames(Menu, Menu_generate);
	Xv_opaque	obj;
	
	obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
		XV_KEY_DATA, INSTANCE, ip,
		MENU_GEN_PROC, ab_filenames,
		MENU_ITEM,
			XV_KEY_DATA, INSTANCE, ip,
			MENU_STRING, "Play",
			NULL,
		MENU_ITEM,
			XV_KEY_DATA, INSTANCE, ip,
			MENU_STRING, "Close",
			NULL,
		MENU_ITEM,
			XV_KEY_DATA, INSTANCE, ip,
			MENU_STRING, "Graph",
			NULL,
		MENU_ITEM,
			XV_KEY_DATA, INSTANCE, ip,
			MENU_STRING, "Segment",
			NULL,
		NULL);
	return obj;
}

/*
 * Initialize an instance of object `win'.
 */
abtool_win_objects *
abtool_win_objects_initialize(abtool_win_objects *ip, Xv_opaque owner)
{
	if (!ip && !(ip = (abtool_win_objects *) calloc(1, sizeof (abtool_win_objects))))
		return (abtool_win_objects *) NULL;
	if (!ip->win)
		ip->win = abtool_win_win_create(ip, owner);
	if (!ip->controls1)
		ip->controls1 = abtool_win_controls1_create(ip, ip->win);
	if (!ip->file_button)
		ip->file_button = abtool_win_file_button_create(ip, ip->controls1);
	if (!ip->audio_button)
		ip->audio_button = abtool_win_audio_button_create(ip, ip->controls1);
	if (!ip->props_button)
		ip->props_button = abtool_win_props_button_create(ip, ip->controls1);
	if (!ip->drop_target1)
		ip->drop_target1 = abtool_win_drop_target1_create(ip, ip->controls1);
	if (!ip->quit_button)
		ip->quit_button = abtool_win_quit_button_create(ip, ip->controls1);
	if (!ip->play_button)
		ip->play_button = abtool_win_play_button_create(ip, ip->controls1);
	if (!ip->list1)
		ip->list1 = abtool_win_list1_create(ip, ip->controls1);
	if (!ip->ab_text)
		ip->ab_text = abtool_win_ab_text_create(ip, ip->controls1);
	if (!ip->seg_text)
		ip->seg_text = abtool_win_seg_text_create(ip, ip->controls1);
	if (!ip->message1)
		ip->message1 = abtool_win_message1_create(ip, ip->controls1);
	if (!ip->nsegs_text)
		ip->nsegs_text = abtool_win_nsegs_text_create(ip, ip->controls1);
	if (!ip->canvas1)
		ip->canvas1 = abtool_win_canvas1_create(ip, ip->win);
	return ip;
}

/*
 * Create object `win' in the specified instance.
 */
Xv_opaque
abtool_win_win_create(abtool_win_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, FRAME,
		XV_KEY_DATA, INSTANCE, ip,
		XV_WIDTH, 517,
		XV_HEIGHT, 256,
		XV_LABEL, "A/B Tool",
		FRAME_SHOW_FOOTER, TRUE,
		FRAME_SHOW_RESIZE_CORNER, FALSE,
		NULL);
	return obj;
}

/*
 * Create object `controls1' in the specified instance.
 */
Xv_opaque
abtool_win_controls1_create(abtool_win_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 0,
		XV_Y, 0,
		XV_WIDTH, WIN_EXTEND_TO_EDGE,
		XV_HEIGHT, 132,
		WIN_BORDER, FALSE,
		NULL);
	return obj;
}

/*
 * Create object `file_button' in the specified instance.
 */
Xv_opaque
abtool_win_file_button_create(abtool_win_objects *ip, Xv_opaque owner)
{
	extern Xv_opaque	abtool_file_menu_create(caddr_t, Xv_opaque);
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_BUTTON,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 8,
		XV_Y, 8,
		PANEL_LABEL_STRING, "File",
		PANEL_ITEM_MENU, abtool_file_menu_create((caddr_t) ip, ip->win),
		NULL);
	return obj;
}

/*
 * Create object `audio_button' in the specified instance.
 */
Xv_opaque
abtool_win_audio_button_create(abtool_win_objects *ip, Xv_opaque owner)
{
	extern void		ab_audio(Panel_item, Event *);
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_BUTTON,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 68,
		XV_Y, 8,
		PANEL_LABEL_STRING, "Audio...",
		PANEL_NOTIFY_PROC, ab_audio,
		NULL);
	return obj;
}

/*
 * Create object `props_button' in the specified instance.
 */
Xv_opaque
abtool_win_props_button_create(abtool_win_objects *ip, Xv_opaque owner)
{
	extern void		abtool_win_props_button_notify_callback(Panel_item, Event *);
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_BUTTON,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 136,
		XV_Y, 8,
		PANEL_LABEL_STRING, "Properties...",
		PANEL_NOTIFY_PROC, abtool_win_props_button_notify_callback,
		NULL);
	return obj;
}

/*
 * Create object `drop_target1' in the specified instance.
 */
Xv_opaque
abtool_win_drop_target1_create(abtool_win_objects *ip, Xv_opaque owner)
{
	extern void	canvas_drop_function(Xv_opaque, Event *, GDD_DROP_INFO *);
	extern void	ab_drag_function(Xv_opaque, Event *, GDD_DROP_INFO *, int);
	Xv_opaque	obj;
	Drag_drop	dnd;
	Selection_item	sel_item;
	
	obj = xv_create(owner, PANEL_DROP_TARGET,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 360,
		XV_Y, 8,
		NULL);
	
	dnd = xv_create(owner, DRAGDROP,
		NULL);
		
	sel_item = xv_create(dnd, SELECTION_ITEM, NULL);
	
	xv_set(obj,
		PANEL_NOTIFY_PROC, gdd_drop_target_notify_proc,
		PANEL_DROP_DND, dnd,
		XV_KEY_DATA, SELECTION_ITEM, sel_item,
		NULL);
		
	gdd_register_drop_target(obj, canvas_drop_function, ab_drag_function);
	return obj;
}

/*
 * Create object `quit_button' in the specified instance.
 */
Xv_opaque
abtool_win_quit_button_create(abtool_win_objects *ip, Xv_opaque owner)
{
	extern void		ab_quit(Panel_item, Event *);
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_BUTTON,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 388,
		XV_Y, 8,
		PANEL_LABEL_STRING, "Quit",
		PANEL_NOTIFY_PROC, ab_quit,
		NULL);
	return obj;
}

/*
 * Create object `play_button' in the specified instance.
 */
Xv_opaque
abtool_win_play_button_create(abtool_win_objects *ip, Xv_opaque owner)
{
	extern void		ab_play(Panel_item, Event *);
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_BUTTON,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 440,
		XV_Y, 8,
		PANEL_LABEL_STRING, "Play A/B",
		PANEL_NOTIFY_PROC, ab_play,
		NULL);
	return obj;
}

/*
 * Create object `list1' in the specified instance.
 */
Xv_opaque
abtool_win_list1_create(abtool_win_objects *ip, Xv_opaque owner)
{
	extern int		flist(Panel_item, char *, Xv_opaque, Panel_list_op, Event *, int);
	extern Xv_opaque	abtool_filenames_menu_create(caddr_t, Xv_opaque);
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_LIST,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 8,
		XV_Y, 36,
		PANEL_LIST_WIDTH, 365,
		PANEL_LIST_DISPLAY_ROWS, 4,
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_READ_ONLY, TRUE,
		PANEL_CHOOSE_ONE, TRUE,
		PANEL_CHOOSE_NONE, TRUE,
		PANEL_ITEM_MENU, abtool_filenames_menu_create((caddr_t) ip, ip->win),
		PANEL_NOTIFY_PROC, flist,
		NULL);
	return obj;
}

/*
 * Create object `ab_text' in the specified instance.
 */
Xv_opaque
abtool_win_ab_text_create(abtool_win_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_TEXT,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 414,
		XV_Y, 36,
		PANEL_VALUE_DISPLAY_LENGTH, 8,
		PANEL_VALUE_STORED_LENGTH, 8,
		PANEL_LABEL_STRING, "AB:",
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_READ_ONLY, FALSE,
		NULL);
	return obj;
}

/*
 * Create object `seg_text' in the specified instance.
 */
Xv_opaque
abtool_win_seg_text_create(abtool_win_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_TEXT,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 408,
		XV_Y, 57,
		PANEL_VALUE_DISPLAY_LENGTH, 8,
		PANEL_VALUE_STORED_LENGTH, 8,
		PANEL_LABEL_STRING, "Seg:",
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_READ_ONLY, FALSE,
		NULL);
	return obj;
}

/*
 * Create object `message1' in the specified instance.
 */
Xv_opaque
abtool_win_message1_create(abtool_win_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_MESSAGE,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 400,
		XV_Y, 78,
		PANEL_LABEL_STRING, "Segs:",
		PANEL_LABEL_BOLD, TRUE,
		NULL);
	return obj;
}

/*
 * Create object `nsegs_text' in the specified instance.
 */
Xv_opaque
abtool_win_nsegs_text_create(abtool_win_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_MESSAGE,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 444,
		XV_Y, 78,
		PANEL_LABEL_STRING, "0",
		PANEL_LABEL_BOLD, FALSE,
		NULL);
	return obj;
}

/*
 * Create object `canvas1' in the specified instance.
 */
Xv_opaque
abtool_win_canvas1_create(abtool_win_objects *ip, Xv_opaque owner)
{
	extern Notify_value	abtool_win_canvas1_event_callback(Xv_window, Event *, Notify_arg, Notify_event_type);
	extern void	ab_canvas_repaint(Canvas, Xv_window, Display *, Window, Xv_xrectlist *);
	extern void	canvas_drop_function(Xv_opaque, Event *, GDD_DROP_INFO *);
	Xv_opaque	obj;
	Xv_drop_site	drop_site;
	Rect		rectlist[2];
	
	obj = xv_create(owner, CANVAS,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 0,
		XV_Y, (int)xv_get(ip->controls1, XV_Y) +
		      (int)xv_get(ip->controls1, XV_HEIGHT),
		XV_WIDTH, WIN_EXTEND_TO_EDGE,
		XV_HEIGHT, WIN_EXTEND_TO_EDGE,
		CANVAS_REPAINT_PROC, ab_canvas_repaint,
		CANVAS_X_PAINT_WINDOW, TRUE,
		NULL);
	xv_create(obj, SCROLLBAR, SCROLLBAR_DIRECTION, SCROLLBAR_HORIZONTAL, NULL);
	gcm_initialize_colors(obj, "BG1", "Foreground");
	xv_set(canvas_paint_window(obj), WIN_CONSUME_EVENTS,
		WIN_ASCII_EVENTS,
		WIN_LEFT_KEYS,
		WIN_RIGHT_KEYS,
		WIN_TOP_KEYS,
		NULL, NULL);
	notify_interpose_event_func(canvas_paint_window(obj),
		(Notify_func) abtool_win_canvas1_event_callback, NOTIFY_SAFE);
	notify_interpose_event_func(canvas_paint_window(obj),
		(Notify_func) gdd_load_event_proc, NOTIFY_SAFE);
	notify_interpose_event_func(canvas_paint_window(obj),
		(Notify_func) gdd_load_event_proc, NOTIFY_IMMEDIATE);
	/*
	 * This line is here for backwards compatibility. It will be
	 * removed for the next release.
	 */
	xv_set(canvas_paint_window(obj), XV_KEY_DATA, INSTANCE, ip, NULL);
	
	drop_site = xv_create(canvas_paint_window(obj), DROP_SITE_ITEM,
		DROP_SITE_ID, 1,
		DROP_SITE_EVENT_MASK, DND_ENTERLEAVE | DND_MOTION,
		NULL);
		
	xv_set(canvas_paint_window(obj),
		XV_KEY_DATA, DROP_SITE_ITEM, drop_site,
		NULL);
	
	rectlist[0] = *(Rect *) xv_get(obj, XV_RECT);
	rectlist[0].r_left = 0;
	rectlist[0].r_top = 0;
	rectlist[1].r_width = 0;
	rectlist[1].r_height = 0;
	gdd_register_drop_site(drop_site, canvas_drop_function);
	gdd_activate_drop_site(drop_site, rectlist);
	return obj;
}

/*
 * Initialize an instance of object `pwin'.
 */
abtool_pwin_objects *
abtool_pwin_objects_initialize(abtool_pwin_objects *ip, Xv_opaque owner)
{
	if (!ip && !(ip = (abtool_pwin_objects *) calloc(1, sizeof (abtool_pwin_objects))))
		return (abtool_pwin_objects *) NULL;
	if (!ip->pwin)
		ip->pwin = abtool_pwin_pwin_create(ip, owner);
	if (!ip->controls3)
		ip->controls3 = abtool_pwin_controls3_create(ip, ip->pwin);
	if (!ip->graph)
		ip->graph = abtool_pwin_graph_create(ip, ip->controls3);
	if (!ip->time)
		ip->time = abtool_pwin_time_create(ip, ip->controls3);
	if (!ip->autoscale)
		ip->autoscale = abtool_pwin_autoscale_create(ip, ip->controls3);
	if (!ip->fname)
		ip->fname = abtool_pwin_fname_create(ip, ip->controls3);
	if (!ip->gain)
		ip->gain = abtool_pwin_gain_create(ip, ip->controls3);
	if (!ip->ref_h)
		ip->ref_h = abtool_pwin_ref_h_create(ip, ip->controls3);
	if (!ip->ref)
		ip->ref = abtool_pwin_ref_create(ip, ip->controls3);
	if (!ip->file_h)
		ip->file_h = abtool_pwin_file_h_create(ip, ip->controls3);
	if (!ip->file)
		ip->file = abtool_pwin_file_create(ip, ip->controls3);
	if (!ip->delay)
		ip->delay = abtool_pwin_delay_create(ip, ip->controls3);
	if (!ip->corr_h)
		ip->corr_h = abtool_pwin_corr_h_create(ip, ip->controls3);
	if (!ip->corr)
		ip->corr = abtool_pwin_corr_create(ip, ip->controls3);
	if (!ip->maxdelay)
		ip->maxdelay = abtool_pwin_maxdelay_create(ip, ip->controls3);
	if (!ip->thresh)
		ip->thresh = abtool_pwin_thresh_create(ip, ip->controls3);
	if (!ip->gap)
		ip->gap = abtool_pwin_gap_create(ip, ip->controls3);
	if (!ip->pad)
		ip->pad = abtool_pwin_pad_create(ip, ip->controls3);
	if (!ip->audio_io)
		ip->audio_io = abtool_pwin_audio_io_create(ip, ip->controls3);
	if (!ip->audio_hold)
		ip->audio_hold = abtool_pwin_audio_hold_create(ip, ip->controls3);
	if (!ip->playcmd)
		ip->playcmd = abtool_pwin_playcmd_create(ip, ip->controls3);
	if (!ip->audio_cmd)
		ip->audio_cmd = abtool_pwin_audio_cmd_create(ip, ip->controls3);
	return ip;
}

/*
 * Create object `pwin' in the specified instance.
 */
Xv_opaque
abtool_pwin_pwin_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, FRAME_CMD,
		XV_KEY_DATA, INSTANCE, ip,
		XV_WIDTH, 316,
		XV_HEIGHT, 315,
		XV_LABEL, "A/B Tool: Properties",
		XV_SHOW, FALSE,
		FRAME_SHOW_FOOTER, FALSE,
		FRAME_SHOW_RESIZE_CORNER, FALSE,
		FRAME_CMD_PUSHPIN_IN, TRUE,
		NULL);
	xv_set(xv_get(obj, FRAME_CMD_PANEL), WIN_SHOW, FALSE, NULL);
	return obj;
}

/*
 * Create object `controls3' in the specified instance.
 */
Xv_opaque
abtool_pwin_controls3_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 0,
		XV_Y, 0,
		XV_WIDTH, WIN_EXTEND_TO_EDGE,
		XV_HEIGHT, WIN_EXTEND_TO_EDGE,
		WIN_BORDER, FALSE,
		NULL);
	return obj;
}

/*
 * Create object `graph' in the specified instance.
 */
Xv_opaque
abtool_pwin_graph_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_CHOICE,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 34,
		XV_Y, 4,
		PANEL_CHOICE_NROWS, 1,
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_CHOOSE_NONE, FALSE,
		PANEL_LABEL_STRING, "Graph:",
		PANEL_CHOICE_STRINGS,
			"RMS",
			"Peak",
			NULL,
		NULL);
	return obj;
}

/*
 * Create object `time' in the specified instance.
 */
Xv_opaque
abtool_pwin_time_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_CHOICE, PANEL_DISPLAY_LEVEL, PANEL_CURRENT,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 184,
		XV_Y, 4,
		PANEL_CHOICE_NROWS, 1,
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_LABEL_STRING, "Time:",
		PANEL_CHOICE_STRINGS,
			"10 sec",
			"30 sec",
			"1 min",
			"2 min",
			"5 min",
			"10 min",
			"20 min",
			NULL,
		PANEL_DEFAULT_VALUE, 2,
		NULL);
	return obj;
}

/*
 * Create object `autoscale' in the specified instance.
 */
Xv_opaque
abtool_pwin_autoscale_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_CHOICE,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 4,
		XV_Y, 29,
		PANEL_CHOICE_NROWS, 1,
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_CHOOSE_NONE, FALSE,
		PANEL_LABEL_STRING, "Auto Scale:",
		PANEL_CHOICE_STRINGS,
			"Off  ",
			" On  ",
			NULL,
		NULL);
	return obj;
}

/*
 * Create object `fname' in the specified instance.
 */
Xv_opaque
abtool_pwin_fname_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	extern void		showfiles(Panel_item, int, Event *);
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_CHOICE,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 4,
		XV_Y, 54,
		PANEL_CHOICE_NROWS, 1,
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_CHOOSE_NONE, FALSE,
		PANEL_LABEL_STRING, "Filenames:",
		PANEL_NOTIFY_PROC, showfiles,
		PANEL_CHOICE_STRINGS,
			"Show",
			"Hide",
			NULL,
		NULL);
	return obj;
}

/*
 * Create object `gain' in the specified instance.
 */
Xv_opaque
abtool_pwin_gain_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_TEXT,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 47,
		XV_Y, 92,
		PANEL_VALUE_DISPLAY_LENGTH, 5,
		PANEL_VALUE_STORED_LENGTH, 5,
		PANEL_LABEL_STRING, "Gain:",
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_READ_ONLY, FALSE,
		NULL);
	return obj;
}

/*
 * Create object `ref_h' in the specified instance.
 */
Xv_opaque
abtool_pwin_ref_h_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_MESSAGE,
		XV_KEY_DATA, INSTANCE, ip,
		XV_HELP_DATA, "abtool:ref_h",
		XV_X, 152,
		XV_Y, 94,
		PANEL_LABEL_STRING, "Ref:",
		PANEL_LABEL_BOLD, TRUE,
		NULL);
	return obj;
}

/*
 * Create object `ref' in the specified instance.
 */
Xv_opaque
abtool_pwin_ref_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_MESSAGE,
		XV_KEY_DATA, INSTANCE, ip,
		XV_HELP_DATA, "abtool:ref",
		XV_X, 188,
		XV_Y, 94,
		PANEL_LABEL_STRING, ".",
		PANEL_LABEL_BOLD, FALSE,
		NULL);
	return obj;
}

/*
 * Create object `file_h' in the specified instance.
 */
Xv_opaque
abtool_pwin_file_h_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_MESSAGE,
		XV_KEY_DATA, INSTANCE, ip,
		XV_HELP_DATA, "abtool:file_h",
		XV_X, 212,
		XV_Y, 94,
		PANEL_LABEL_STRING, "File:",
		PANEL_LABEL_BOLD, TRUE,
		NULL);
	return obj;
}

/*
 * Create object `file' in the specified instance.
 */
Xv_opaque
abtool_pwin_file_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_MESSAGE,
		XV_KEY_DATA, INSTANCE, ip,
		XV_HELP_DATA, "abtool:file",
		XV_X, 250,
		XV_Y, 94,
		PANEL_LABEL_STRING, ".",
		PANEL_LABEL_BOLD, FALSE,
		NULL);
	return obj;
}

/*
 * Create object `delay' in the specified instance.
 */
Xv_opaque
abtool_pwin_delay_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_TEXT,
		XV_KEY_DATA, INSTANCE, ip,
		XV_HELP_DATA, "abtool:delay",
		XV_X, 4,
		XV_Y, 109,
		PANEL_VALUE_DISPLAY_LENGTH, 5,
		PANEL_VALUE_STORED_LENGTH, 5,
		PANEL_LABEL_STRING, "Delay (ms):",
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_READ_ONLY, FALSE,
		NULL);
	return obj;
}

/*
 * Create object `corr_h' in the specified instance.
 */
Xv_opaque
abtool_pwin_corr_h_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_MESSAGE,
		XV_KEY_DATA, INSTANCE, ip,
		XV_HELP_DATA, "abtool:corr_h",
		XV_X, 152,
		XV_Y, 111,
		PANEL_LABEL_STRING, "Corr:",
		PANEL_LABEL_BOLD, TRUE,
		NULL);
	return obj;
}

/*
 * Create object `corr' in the specified instance.
 */
Xv_opaque
abtool_pwin_corr_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_MESSAGE,
		XV_KEY_DATA, INSTANCE, ip,
		XV_HELP_DATA, "abtool:corr",
		XV_X, 194,
		XV_Y, 111,
		PANEL_LABEL_STRING, ".",
		PANEL_LABEL_BOLD, FALSE,
		NULL);
	return obj;
}

/*
 * Create object `maxdelay' in the specified instance.
 */
Xv_opaque
abtool_pwin_maxdelay_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_TEXT,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 8,
		XV_Y, 126,
		PANEL_VALUE_DISPLAY_LENGTH, 5,
		PANEL_VALUE_STORED_LENGTH, 5,
		PANEL_LABEL_STRING, "Max Delay:",
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_READ_ONLY, FALSE,
		NULL);
	return obj;
}

/*
 * Create object `thresh' in the specified instance.
 */
Xv_opaque
abtool_pwin_thresh_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_SLIDER,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 8,
		XV_Y, 152,
		PANEL_SLIDER_WIDTH, 100,
		PANEL_TICKS, 0,
		PANEL_LABEL_STRING, "Thresh dB:",
		PANEL_DIRECTION, PANEL_HORIZONTAL,
		PANEL_SLIDER_END_BOXES, FALSE,
		PANEL_SHOW_RANGE, TRUE,
		PANEL_SHOW_VALUE, TRUE,
		PANEL_MIN_VALUE, 0,
		PANEL_MAX_VALUE, 100,
		PANEL_VALUE, 0,
		NULL);
	return obj;
}

/*
 * Create object `gap' in the specified instance.
 */
Xv_opaque
abtool_pwin_gap_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_SLIDER,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 17,
		XV_Y, 174,
		PANEL_SLIDER_WIDTH, 100,
		PANEL_TICKS, 0,
		PANEL_LABEL_STRING, "Gap (ms):",
		PANEL_DIRECTION, PANEL_HORIZONTAL,
		PANEL_SLIDER_END_BOXES, FALSE,
		PANEL_SHOW_RANGE, TRUE,
		PANEL_SHOW_VALUE, TRUE,
		PANEL_MIN_VALUE, 0,
		PANEL_MAX_VALUE, 2000,
		PANEL_VALUE, 0,
		NULL);
	return obj;
}

/*
 * Create object `pad' in the specified instance.
 */
Xv_opaque
abtool_pwin_pad_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_SLIDER,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 19,
		XV_Y, 196,
		PANEL_SLIDER_WIDTH, 100,
		PANEL_TICKS, 0,
		PANEL_LABEL_STRING, "Pad (ms):",
		PANEL_DIRECTION, PANEL_HORIZONTAL,
		PANEL_SLIDER_END_BOXES, FALSE,
		PANEL_SHOW_RANGE, TRUE,
		PANEL_SHOW_VALUE, TRUE,
		PANEL_MIN_VALUE, 0,
		PANEL_MAX_VALUE, 2000,
		PANEL_VALUE, 0,
		NULL);
	return obj;
}

/*
 * Create object `audio_io' in the specified instance.
 */
Xv_opaque
abtool_pwin_audio_io_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_CHOICE, PANEL_DISPLAY_LEVEL, PANEL_CURRENT,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 10,
		XV_Y, 240,
		PANEL_CHOICE_NCOLS, 1,
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_LABEL_STRING, "Audio I/O:",
		PANEL_CHOICE_STRINGS,
			"Internal",
			"Play Cmd",
			"MTU",
			"DAT Link",
			NULL,
		NULL);
	return obj;
}

/*
 * Create object `audio_hold' in the specified instance.
 */
Xv_opaque
abtool_pwin_audio_hold_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	extern void		audio_hold(Panel_item, int, Event *);
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_CHOICE,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 190,
		XV_Y, 240,
		PANEL_CHOICE_NROWS, 1,
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_CHOOSE_NONE, FALSE,
		PANEL_NOTIFY_PROC, audio_hold,
		PANEL_CHOICE_STRINGS,
			"Hold",
			"Release",
			NULL,
		NULL);
	return obj;
}

/*
 * Create object `playcmd' in the specified instance.
 */
Xv_opaque
abtool_pwin_playcmd_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_TEXT,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 13,
		XV_Y, 267,
		PANEL_VALUE_DISPLAY_LENGTH, 16,
		PANEL_VALUE_STORED_LENGTH, 80,
		PANEL_LABEL_STRING, "Play Cmd:",
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_VALUE, "play -s $S:$E",
		PANEL_READ_ONLY, FALSE,
		NULL);
	return obj;
}

/*
 * Create object `audio_cmd' in the specified instance.
 */
Xv_opaque
abtool_pwin_audio_cmd_create(abtool_pwin_objects *ip, Xv_opaque owner)
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_TEXT,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 3,
		XV_Y, 286,
		PANEL_VALUE_DISPLAY_LENGTH, 16,
		PANEL_VALUE_STORED_LENGTH, 80,
		PANEL_LABEL_STRING, "Audio Cmd:",
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_VALUE, "audiocontrol",
		PANEL_READ_ONLY, FALSE,
		NULL);
	return obj;
}