10Sduke/* $FreeBSD$ */ 22362Sohair 30Sduke/*- 40Sduke * Copyright (c) 1996 Jason R. Thorpe <thorpej@and.com> 50Sduke * All rights reserved. 60Sduke * 70Sduke * Redistribution and use in source and binary forms, with or without 80Sduke * modification, are permitted provided that the following conditions 90Sduke * are met: 100Sduke * 1. Redistributions of source code must retain the above copyright 110Sduke * notice, this list of conditions and the following disclaimer. 120Sduke * 2. Redistributions in binary form must reproduce the above copyright 130Sduke * notice, this list of conditions and the following disclaimer in the 140Sduke * documentation and/or other materials provided with the distribution. 150Sduke * 3. All advertising materials mentioning features or use of this software 160Sduke * must display the following acknowledgements: 170Sduke * This product includes software developed by Jason R. Thorpe 180Sduke * for And Communications, http://www.and.com/ 192362Sohair * 4. The name of the author may not be used to endorse or promote products 202362Sohair * derived from this software without specific prior written permission. 212362Sohair * 220Sduke * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 230Sduke * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 240Sduke * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 250Sduke * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 260Sduke * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 270Sduke * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 280Sduke * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 299567Schegar * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 300Sduke * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 310Sduke * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 329567Schegar * SUCH DAMAGE. 339567Schegar */ 349567Schegar 350Sdukestruct element_type { 369567Schegar const char *et_name; /* name; i.e. "picker, "slot", etc. */ 379567Schegar int et_type; /* type number */ 380Sduke}; 390Sduke 409567Schegarstruct changer_command { 410Sduke const char *cc_name; /* command name */ 429567Schegar /* command handler */ 439567Schegar int (*cc_handler)(const char *, int, char **); 440Sduke}; 450Sduke 460Sdukestruct special_word { 479567Schegar const char *sw_name; /* special word */ 480Sduke int sw_value; /* token value */ 490Sduke}; 500Sduke 510Sduke/* sw_value */ 520Sduke#define SW_INVERT 1 /* set "invert media" flag */ 530Sduke#define SW_INVERT1 2 /* set "invert media 1" flag */ 540Sduke#define SW_INVERT2 3 /* set "invert media 2" flag */ 550Sduke 560Sduke/* Environment variable to check for default changer. */ 579567Schegar#define CHANGER_ENV_VAR "CHANGER" 580Sduke