Remove Modules that are not linked to the build for license issues.

This commit is contained in:
matthieu 2013-07-21 15:44:14 +00:00
parent 9cb9bf0644
commit 128cecd166
12 changed files with 0 additions and 2973 deletions

View File

@ -1,27 +0,0 @@
1999-01-25 Steven Michael ROBBINS <stever@bongo.cs.mcgill.ca>
* FvwmAnimate.c: Include config.h first. Remove include of
<strings.h> as not all systems have this.
1998-11-11 Dan Espen <dane@mk.bellcore.com>
* FvwmAnimate.c: Fix bug that stopped zoom3d from being picked.
In general, strcasecmp is now being used instead of strncasecmp.
Tue Nov 10 22:17:50 1998 DanEspen <dje@blue>
* FvwmAnimate.c: Handle missing arg on first entry in cmd table.
Sat Nov 7 09:43:59 1998 DanEspen <dje@blue>
* FvwmAnimate.c: Make color a fully documented and customizable feature.
1998-11-06 Paul D. Smith <psmith@gnu.org>
* Makefile.am (FvwmAnimate_DEPENDENCIES): Add a dependency on
libfvwm.a.
1998-11-04 Dan Espen <dane@mk.bellcore.com>
* FvwmAnimate.c: Fixed bug where AnimateResizeLine was
drawing 5 segments when it only wanted 4.

View File

@ -1,131 +0,0 @@
.TH FvwmAnimate 1.1 "October 1998"
.UC
.SH NAME
\fBFvwmAnimate\fP \- the Fvwm2 Animate module
.SH SYNOPSIS
\fBFvwmAnimate\fP is spawned by fvwm2, so no command line invocation will work.
From within the .fvwm2rc file, \fBFvwmAnimate\fP is spawned as follows:
.nf
.sp
Module FvwmAnimate
.sp
.fi
or from within an fvwm2 pop-up menu:
.nf
.sp
DestroyMenu Module-Popup
AddToMenu Module-Popup "Modules" Title
AddToMenu Module-Popup "Fvwm Animate Icons" Module FvwmAnimate OptionalName
.sp
.fi
.SH DESCRIPTION
The \fBFvwmAnimate\fP module animates iconification and deiconification.
There are currenly 6 different animation effects.
.SH INVOCATION
No command line invocation is possible.
\fBFvwmAnimate\fP must be invoked by the
\fBfvwm2\fP window manager.
When invoked with the \fIOptionalName\fP argument, the \fIOptionalName\fP
is used to find configuration commands, configuraton files,
and name the internally generated menus and forms instead of "FvwmAnimate".
During startup, FvwmAnimate defines menus and forms for configuring and
controlling FvwmAnimate. The default menu name is "MenuFvwmAnimate"
and the form name is "FormFvwmAnimate".
If the optional name is used, the menu would be "Menu<OptionalName>"
and the form would be "Form<OptionalName>".
.sp
Assuming you already had a builtin menu called "Module-Popup",
you could use FvwmAnimate by configuring it like this:
.nf
.sp
AddToFunc "InitFunction" "I" Module FvwmAnimate
AddToFunc "RestartFunction" "I" Module FvwmAnimate
AddToMenu "Module-Popup" "Control Animation" Popup MenuFvwmAnimate
.sp
.fi
.SH CONFIGURATION OPTIONS
Since the popup menu "MenuFvwmAnimate" allows complete control of
the \fBFvwmAnimate\fP module, you don't really have to know what any
of the configuration commands are. This section describes them anyway.
\fBFvwmAnimate\fP reads the same \fI.fvwm2rc\fP file as \fBfvwm2\fP
reads when it starts up.
In addition, \fBFvwmAnimate\fP reads the file $HOME/.FvwmAnimate,
and accepts commands from fvwm2 and its modules as it runs.
If \fIOptionalName\fP is used to start FvwmAnimate, the optional name
is used in all commands, messages, menus and forms generated by FvwmAnimate
and
in the configuration file name. Unlike other fvwm2 modules, there is
little reason to use the optional name.
.IP "*FvwmAnimateColor \fBcolor\fP"
Tells \fBFvwmAnimate\fP what color to draw with.
The color is "XOR'ed" (exclusive ORed) onto the background.
Depending on the display type you are using, the effect this
causes will vary. Especially on 8-bit displays, it helps if the background
is a solid color. You have to experiment with this to see how it works.
The default color is not really a color and can be entered as "Black^White",
or more simply "None". This is the same as the default XOR mask used
by fvwm2 for move and resize frames.
Other colors can be specified using standard X color notation. Ie. color
names like "LightBlue", or RGB values like "#FFFFFF".
.IP "*FvwmAnimateDelay \fBmsecs\fP"
Tells \fBFvwmAnimate\fP how many milliseconds to sleep
between frames of animation.
.IP "*FvwmAnimateIterations \fBiterations\fP"
Tells \fBFvwmAnimate\fP how many steps to break the animation into.
.IP "*FvwmAnimateTwist \fBtwist\fP"
Tells \fBFvwmAnimate\fP how many revolutions to twist the iconification frame.
.IP "*FvwmAnimateWidth \fBwidth\fP"
Tells \fBFvwmAnimate\fP how wide a line to draw with.
The default width of 0 (zero) is a fast line of Width 1.
.IP "*FvwmAnimateEffect \fBmode\fP"
Tells \fBFvwmAnimate\fP which animation effect to use.
Currently the effects are :
\fIFrame\fP,
\fILines\fP,
\fIFlip\fP,
\fITurn\fP,
\fIZoom3D\fP,
\fITwist\fP
\fIRandom\fP,
and
\fINone\fP.
\fINone\fP is normally set in the configuration file, in-case FvwmAnimate
is started automatically, but an individual user doesn't want it running.
.IP "*FvwmAnimateStop"
Tells \fBFvwmAnimate\fP to stop.
.IP "*FvwmAnimateSave"
Tells \fBFvwmAnimate\fP to save the current configuration in a file
named ".FvwmAnimate" in the users home directory. This same file is
read automatically by FvwmAnimate during startup.
.SH ORIGIN
\fBFvwmAnimate\fP is based on the \fBAnimate\fP module from Afterstep 1.5pre6.
Porting to \fBfvwm2\fP and lots of other changes were done by
\fIDan Espen\fP <dane@mk.bellcore.com>.
Below are the original author and acknowledgments.
.SH AUTHOR
\fIAlfredo Kengi Kojima\fP <kojima@inf.ufrgs.br>
.SH ACKNOWLEDGMENTS
These people have contributed to \fBFvwmAnimate\fP:
.IP "\fIKaj Groner\fP <kajg@mindspring.com>"
Twisty iconification, configuration file parsing, man page.
.IP "\fIFrank Scheelen <scheelen@worldonline.nl>"

File diff suppressed because it is too large Load Diff

View File

@ -1,35 +0,0 @@
#ifndef _ANIMATE_H_
#define _ANIMATE_H_
/* Animation granularity. How many iterations use for the animation. */
#define ANIM_ITERATIONS 12
/* delay for each iteration of the animation in ms */
#define ANIM_DELAY 1
/* delay for each iteration of the close animation in ms */
#define ANIM_DELAY2 20
/* distance to spin frame around, 1.0 is one revolution.
with large values you should up ANIM_ITERATIONS as well */
#define ANIM_TWIST 0.5
/* default line width */
#define ANIM_WIDTH 0
/* default time */
#define ANIM_TIME 0
struct ASAnimate {
char *color;
int iterations;
int delay;
float twist;
int width;
void (*resize)(int, int, int, int, int, int, int, int);
clock_t time;
};
extern struct ASAnimate Animate;
#endif /* _ANIMATE_H_ */

View File

@ -1,128 +0,0 @@
.\" t
.\" @(#)FvwmAudio.1 3/28/94
.TH FvwmAudio 1.0 "Mar 28 1994"
.UC
.SH NAME
\fBFvwmAudio\fP \- the FVWM Audio module
.SH NOTICE
\fBFvwmAudio\fP has been superceded by \fBFvwnEvent\fP and is no longer
supported. Please start using \fBFvwmEvent\fP as soon as possible.
.sp
.SH SYNOPSIS
\fBFvwmAudio\fP is spawned by \fBfvwm\fP, so no command line invocation will
work. From within the \fI.fvwmrc\fP file, \fBFvwmAudio\fP is spawned as
follows:
.nf
.sp
Module FvwmAudio
.sp
.fi
or from within an fvwm pop-up menu:
.nf
.sp
AddToMenu Module-Popup "Modules" Title
+ "Audio" Module FvwmAudio
+ "Auto" Module FvwmAuto 200
+ "Buttons" Module FvwmButtons
+ "Ident" Module FvwmIdent
+ "Banner" Module FvwmBanner
+ "Pager" Module FvwmPager 0 3
.sp
.fi
.SH DESCRIPTION
The \fBFvwmAudio\fP module communicates with the Fvwm window manager
to bind audio sounds to window manager actions. Different audio
queues may be assigned to any window manager action. \fBFvwmAudio\fP
can be used with any independent audio player, and therefore requires
no special audio library APIs of its own. Simple in its design, it
merely binds the audio filenames to particular actions and forks off
the audio player program with the appropriate filename when that
action occurs.
\fBFvwmAudio\fP can also have builtin support for the rplay library.
.SH CONFIGURATION OPTIONS
\fBFvwmAudio\fP reads the same \fI.fvwm2rc\fP file as \fBfvwm(1)\fP
reads when it starts up, and looks for certain configuration options:
.IP "*FvwmAudioPlayCmd \fI/usr/bin/X11/demos/auplay\fP"
This determines the independent audio player program that will
actually play the sounds. If the play command is set to
\fIbuiltin-rplay\fP then the builtin rplay support will be used. For
example:
.sp
*FvwmAudioPlayCmd \fIbuiltin-rplay\fP
.IP "*FvwmAudioDir \fI/usr/lib/sounds\fP"
Specifies the directory to look for the audio files. This option is
ignored when rplay is used.
.IP "*FvwmAudioDelay \fI5\fP"
Specifies that sound events will only be played if they occur at least
5 seconds after the previous event. Sounds events that occur during
the delay period are ignored. This option is useful if you don't want
several sounds playing at the same time. The default delay is 0 which
disables the audio delay.
.IP "*FvwmAudioRplayHost \fIhostname\fP"
Specifies what host the sounds will play on. The \fIhostname\fP can
also be an environment variable such as $HOSTDISPLAY. This option is
only valid with builtin rplay support.
.IP "*FvwmAudioRplayPriority \fI0\fP"
Specifies what priority will be assigned to the sounds when they are
played. This option is only valid with builtin rplay support.
.IP "*FvwmAudioRplayVolume \fI127\fP"
Specifies what volume will be assigned to the sounds when they are
played. This option is only valid with builtin rplay support.
.IP "*FvwmAudio \fIwindow-manager_action audio_filename\fP"
Binds particular window manager actions to sound queues.
.nf
.sp
*FvwmAudio startup TaDa.au
*FvwmAudio shutdown Elvis_Left.au
*FvwmAudio unknown doh.au
*FvwmAudio add_window drip.au
*FvwmAudio raise_window swoosh.au
*FvwmAudio lower_window swoosh.au
*FvwmAudio focus_change boing.au
*FvwmAudio destroy_window explosion.au
*FvwmAudio iconify ploop.au
*FvwmAudio deiconify ploop.au
*FvwmAudio toggle_paging fwop.au
*FvwmAudio new_page beam_trek.au
*FvwmAudio new_desk beam_trek.au
*FvwmAudio configure_window huh.au
*FvwmAudio window_name beep.au
*FvwmAudio icon_name beep.au
*FvwmAudio res_class beep.au
*FvwmAudio res_name beep.au
*FvwmAudio end_windowlist twang.au
.sp
.fi
.SH INVOCATION
The invocation method was shown in the synopsis section. No command
line invocation is possible. \fBFvwmAudio\fP must be invoked by the
\fBfvwm\fP window manager.
.sp
.SH BUGS
It's REALLY noisy when fvwm starts and restarts.
.sp
.SH COPYRIGHTS
This module is heavily based on a similar Fvwm module called
\fBFvwmSound\fP by Mark Boyns. \fBFvwmAudio\fP simply takes Mark's
original program and extends it to make it generic enough to work with
any audio player. The concept for interfacing this module to the
Window Manager, is original work by Robert Nation.
Copyright 1994, Mark Boyns and Mark Scott. No guarantees or
warranties or anything are provided or implied in any way whatsoever.
Use this program at your own risk. Permission to use this program for
any purpose is given, as long as the copyright is kept intact.
.sp
.SH AUTHORS
Mark Boyns (\fIboyns@sdsu.edu\fP)
.sp
Mark Scott (\fImscott@mcd.mot.com\fP)

View File

@ -1,529 +0,0 @@
/*
* Copyright (C) 1994 Mark Boyns (boyns@sdsu.edu) and
* Mark Scott (mscott@mcd.mot.com)
*
* FvwmAudio version 1.1
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* ChangeLog
* merged bug fix from Christophe MARTIN <cmartin@ipnl.in2p3.fr>
- FvwmAudio doesn't read messages it is not interrested in,
thus desynchronize,
- keep time stamp even if no sound is played
- minimize malloc/free
mark boyns ok-ed this patch, I reviewed it and put out those ugly
#defines for RESYNC and READ_BODY by reordering the control structures
* made FvwmAudio insensitive to its name -> can be symlinked.
corrected some error message deficiencies, code for quoted 'sound'
parameters shamelessly stolen from FvwmButtons/parse.c (with minimal
adjustments)
FvwmAudio now supports rsynth's say command:
*FvwmAudioPlayCmd say
*FvwmAudio add_window "add window"
*FvwmAudio raise_window 'raise window'
-- 08/07/96 Albrecht Kadlec (albrecht@auto.tuwien.ac.at)
* Fixed FvwmAudio to reflect the changes made to the module protocol.
* Szijarto Szabolcs <saby@sch.bme.hu> provided FvwmSound code that used
$HOSTDISPLAY for the rplay host. The code has been added to FvwmAudio.
* Fixed bugs reported by beta testers, thanks!
* Builtin rplay support has been added to FvwmAudio. This support is
enabled when FvwmAudio is compiled with HAVE_RPLAY defined and when
FvwmAudioPlayCmd is set to builtin-rplay. I guess it's safe to say
that FvwmSound is now obsolete. -- Mark Boyns 5/7/94
* FvwmAudio is based heavily on an Fvwm module "FvwmSound" by Mark Boyns
and the real credit for this really goes to him for the concept.
I just stripped out the "rplay" library dependencies to allow generic
audio play command support.
*/
/*
* This module is based on FvwmModuleDebugger which has the following
* copyright:
*
* This module, and the entire ModuleDebugger program, and the concept for
* interfacing this module to the Window Manager, are all original work
* by Robert Nation
*
* Copyright 1994, Robert Nation. No guarantees or warantees or anything
* are provided or implied in any way whatsoever. Use this program at your
* own risk. Permission to use this program for any purpose is given,
* as long as the copyright is kept intact.
*/
#include "config.h"
#include "../../fvwm/module.h"
#include "fvwmlib.h"
/*
* fvwm includes:
*/
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <fcntl.h>
#include <string.h>
#include <sys/wait.h>
#include <sys/time.h>
#include <unistd.h>
#include <ctype.h>
#include <stdlib.h>
#ifdef HAVE_RPLAY
#include <rplay.h>
#undef M_ERROR /* Solaris fix */
#endif
#define BUILTIN_STARTUP MAX_MESSAGES
#define BUILTIN_SHUTDOWN MAX_MESSAGES+1
#define BUILTIN_UNKNOWN MAX_MESSAGES+2
#define MAX_BUILTIN 3
#define BUFSIZE 512
/* globals */
char *MyName;
int MyNameLen;
int fd_width;
int fd[2];
char audio_play_cmd_line[BUFSIZE], audio_play_dir[BUFSIZE];
time_t audio_delay = 0, /* seconds */
last_time = 0,
now;
#ifdef HAVE_RPLAY
int rplay_fd = -1;
#endif
/* prototypes */
void Loop(int *);
void process_message(unsigned long,unsigned long *);
void DeadPipe(int);
void config(void);
void done(int);
int audio_play(short);
/* define the message table */
char *messages[MAX_MESSAGES+MAX_BUILTIN] =
{
"new_page",
"new_desk",
"add_window",
"raise_window",
"lower_window",
"configure_window",
"focus_change",
"destroy_window",
"iconify",
"deiconify",
"window_name",
"icon_name",
"res_class",
"res_name",
"end_windowlist",
"icon_location",
"map",
"error",
"config_info",
"end_config_info",
"icon_file",
"default_icon",
"string",
"mini_icon",
"windowshade",
"dewindowshade",
/* add builtins here */
"startup",
"shutdown",
"unknown"
};
/* define the sound table */
char *sound_table[MAX_MESSAGES+MAX_BUILTIN];
#ifdef HAVE_RPLAY
/* define the rplay table */
RPLAY *rplay_table[MAX_MESSAGES+MAX_BUILTIN];
#endif
int main(int argc, char **argv)
{
char *temp, *s;
/* Save our program name - for error messages */
temp = argv[0];
s=strrchr(argv[0], '/');
if (s != NULL)
temp = s + 1;
MyNameLen=strlen(temp)+1; /* acoount for '*' */
MyName = safemalloc(MyNameLen+1); /* account for \0 */
strcpy(MyName,"*");
strcat(MyName, temp);
if ((argc != 6)&&(argc != 7)) /* Now Myname is defined */
{
fprintf(stderr,"%s Version %s should only be executed by fvwm!\n",
MyName+1, VERSION);
exit(1);
}
/* Dead pipe == Fvwm died */
signal (SIGPIPE, DeadPipe);
fd[0] = atoi(argv[1]);
fd[1] = atoi(argv[2]);
audio_play_dir[0] = '\0';
audio_play_cmd_line[0] = '\0';
/*
* Read the sound configuration.
*/
config();
/*
* Play the startup sound.
*/
audio_play(BUILTIN_STARTUP);
SendText(fd,"Nop",0);
Loop(fd);
return 0;
}
/***********************************************************************
*
* Procedure:
* config - read the sound configuration file.
*
***********************************************************************/
void config(void)
{
char *buf;
char *message;
char *sound;
char *p;
int i, found;
#ifdef HAVE_RPLAY
int volume = RPLAY_DEFAULT_VOLUME;
int priority = RPLAY_DEFAULT_PRIORITY;
char host[128];
strcpy(host, rplay_default_host());
#endif
/*
* Intialize all the sounds.
*/
for (i = 0; i < MAX_MESSAGES+MAX_BUILTIN; i++) {
sound_table[i] = NULL;
#ifdef HAVE_RPLAY
rplay_table[i] = NULL;
#endif
}
GetConfigLine(fd,&buf);
while (buf != NULL)
{
if (buf[0] == '*') /* this check is obsolete */
/* - included in the next if */
{
buf[strlen(buf)-1] = '\0'; /* strip off \n */
/*
* Search for MyName (normally *FvwmAudio)
*/
if (strncasecmp(buf, MyName, MyNameLen) == 0)
{
p = strtok(buf+MyNameLen, " \t");
if (strcasecmp(p, "PlayCmd") == 0) {
p = strtok(NULL, "\n"); /* allow parameters */
if (p && *p) {
strcpy(audio_play_cmd_line, p);
}
}
else if (strcasecmp(p, "Dir") == 0) {
p = strtok(NULL, " \t");
if (p && *p) {
strcpy(audio_play_dir, p);
}
}
else if (strcasecmp(p, "Delay") == 0) {
p = strtok(NULL, " \t");
if (p && *p) {
audio_delay = atoi(p);
}
}
#ifdef HAVE_RPLAY
/*
* Check for rplay configuration options.
*/
else if (strcasecmp(p, "RplayHost") == 0)
{
p = strtok(NULL, " \t");
if (p && *p)
{
/*
* Check for environment variables like $HOSTDISPLAY.
*/
if (*p == '$')
{
char *c1, *c2;
c2 = host;
for (c1 = (char *)getenv(p+1); *c1 && (*c1 != ':'); c1++)
{
*c2++ = *c1;
}
*c2 = '\0';
}
else
{
strcpy(host, p);
}
}
}
else if (strcasecmp(p, "RplayVolume") == 0)
{
p = strtok(NULL, " \t");
if (p && *p) {
volume = atoi(p);
}
}
else if (strcasecmp(p, "RplayPriority") == 0)
{
p = strtok(NULL, " \t");
if (p && *p) {
priority = atoi(p);
}
}
#endif
/*
* *FvwmAudio <message_type> <audio_file>
* for builtin rplay
*
* or
*
* *FvwmAudio <message_type> <"any quoted parameters">
* can be (mis)used to call FvwmAudioPlayCmd
* with arbitrary parameters e.g: rsynth/say "window raised"
*
* can even be used to call arbitrary commands,
* if the following wrapper is used as FvwmAudioPlayCmd
*
* #!/bin/tcsh
* ${argv[1-]}
*/
else {
message = p;
p=strtok(NULL, ""); /* get rest of line */
sound = PeekToken(p); /* extract next parameter */
if (!message || !*message || !sound || !*sound)
{
fprintf(stderr,"%s: incomplete event definition %s\n",
MyName+1, buf);
GetConfigLine(fd,&buf);
continue;
}
found = 0;
for (i = 0; !found && i < MAX_MESSAGES+MAX_BUILTIN; i++)
{
if (strcasecmp(message, messages[i]) == 0) {
#ifdef HAVE_RPLAY
rplay_table[i] = rplay_create(RPLAY_PLAY);
rplay_set(rplay_table[i], RPLAY_APPEND,
RPLAY_SOUND, sound,
RPLAY_PRIORITY, priority,
RPLAY_VOLUME, volume,
NULL);
#endif
sound_table[i]=sound;
found++;
}
}
if (!found) fprintf(stderr,"%s: unknown message type: %s\n",
MyName+1, message);
}
}
}
GetConfigLine(fd,&buf);
}
#ifdef HAVE_RPLAY
/*
* Builtin rplay support is enabled when FvwmAudioPlayCmd == builtin-rplay.
*/
if (strcasecmp(audio_play_cmd_line, "builtin-rplay") == 0)
{
rplay_fd = rplay_open(host);
if (rplay_fd < 0)
{
rplay_perror("rplay_open");
done(1);
}
}
#endif
}
/***********************************************************************
*
* Procedure:
* Loop - wait for data to process
*
***********************************************************************/
void Loop(int *fd)
{
unsigned long header[HEADER_SIZE], body[ MAX_BODY_SIZE ];
int body_length,count,count2=0, total;
long code;
while (1)
{
if ((count = read(fd[1],header,
HEADER_SIZE*sizeof(unsigned long))) <= 0)
done(0);
/* Ignore messages that occur during the delay period. */
now = time(0);
body_length = header[2]-HEADER_SIZE;
if( header[ 0 ] != START_FLAG )
continue; /* should find something better for resyncing */
/* read the message so we are still synchronized */
total = 0;
while(total < body_length*sizeof(unsigned long))
{
if((count2=read(fd[1],&body[total],
body_length*sizeof(unsigned long)-total)) >0)
total += count2;
else
if(count2 < 0)
done(0);
}
if (now < (last_time + audio_delay))
continue; /* quash message */
/*
* code will equal the number of shifts in the
* base-2 header[1] number. Could use log here
* but this should be fast enough.
*/
code = -1;
while (header[1])
{
code++;
header[1] >>= 1;
}
/*
* Play the sound.
*/
if (code >= 0 && code < MAX_MESSAGES)
audio_play(code);
else
audio_play(BUILTIN_UNKNOWN);
}
}
/***********************************************************************
*
* Procedure:
* SIGPIPE handler - SIGPIPE means fvwm is dying
*
***********************************************************************/
void DeadPipe(int nonsense)
{
done(1);
}
/***********************************************************************
*
* Procedure:
* done - common exit point for FvwmAudio.
*
***********************************************************************/
void done(int n)
{
if (n == 0)
audio_play(BUILTIN_SHUTDOWN); /* only play if no error... */
exit(n);
}
/***********************************************************************
*
* Procedure:
*
* audio_play - actually plays sound from lookup table
*
**********************************************************************/
int audio_play(short sound)
{
static char buf[BUFSIZE];
int ret;
#ifdef HAVE_RPLAY
if (rplay_fd != -1)
{
if (rplay_table[sound])
{
if (rplay(rplay_fd, rplay_table[sound]) >= 0)
last_time = now;
else
rplay_perror("rplay");
}
return 0;
}
#endif
if (sound_table[sound])
{
memset(buf,0,BUFSIZE);
/*
* Don't use audio_play_dir if it's NULL or if the sound file
* is an absolute pathname.
*/
if (audio_play_dir[0] == '\0' || sound_table[sound][0] == '/')
sprintf(buf,"%s %s", audio_play_cmd_line, sound_table[sound]);
else
sprintf(buf,"%s %s/%s &", audio_play_cmd_line, audio_play_dir,
sound_table[sound]);
if( ! ( ret = system(buf)))
last_time = now;
return ret;
}
return 1;
}

View File

@ -1,37 +0,0 @@
This is the first version of the FvwmAudio module. This program must
be compiled in the fvwm/modules/FvwmAudio directory.
This module can play different sounds depending on message types.
The following can be specified in your .fvwmrc:
Here's a sample:
*FvwmAudioPlayCmd /usr/bin/X11/demos/auplay
*FvwmAudioDir /usr/lib/sounds
*FvwmAudio startup Cheers.au
*FvwmAudio shutdown Goodbye.au
*FvwmAudio unknown doh.au
*FvwmAudio add_window drip.au
*FvwmAudio raise_window beep_pure_saw.au
*FvwmAudio lower_window beep_pure_saw.au
*FvwmAudio focus_change tap2.au
*FvwmAudio destroy_window beep_drop_of_water.au
*FvwmAudio iconify ploop.au
*FvwmAudio deiconify beep_kind_warning.au
Note that startup, shutdown, and unknown are builtin sound events that are
played when the module begins, ends, and when an unknown message is received.
Sounds can be played using any independent audio player that can accept
filenames a command line argument.
This version of FvwmAudio has builtin rplay support which does not need to
invoke an external audio player to play sounds. The rplay support is
enabled when FvwmAudio is compiled with HAVE_RPLAY defined (see the Imakefile)
and when FvwmAudioPlayCmd is set to builtin-rplay. rplay can be obtained
via anonymous ftp at ftp.sdsu.edu in the /pub/rplay directory and at
ftp.x.org in the /contrib/audio/rplay directory.
Send questions and comments to Mark Boyns <boyns@sdsu.edu> and
Mark Scott <mscott@mcd.mot.com>

View File

@ -1,7 +0,0 @@
Due to a patch from Albrecht Kadlec, there is now support for the rsynth
'say' command and arbitrary strings instead of sound file names:
*FvwmAudioCommand /rsynth/say
*FvwmAudio close "window closed"

View File

@ -1,26 +0,0 @@
1999-01-08 Paul D. Smith <psmith@gnu.org>
* FvwmEvent.c (main): Remove USE_POSIX/USE_BSD stuff and rely on
HAVE_SIGACTION to choose between new- and old-style signal
handling.
(TerminateHandler): Use the autoconf'd return type for signal
handlers.
1998-12-17 Dominik Vogt <dominik_vogt@hp.com>
* Parse.c (PeekArgument): malloc -> safemalloc
1998-11-24 Paul D. Smith <psmith@gnu.org>
* Parse.h (LFindToken): Remove this macro. It's not used, and it
uses a non-standard function lfind(). Best to not use it at all.
(search.h): Removed #include.
Tue Nov 10 22:20:21 1998 DanEspen <dje@blue>
* FvwmEvent.c (config): Fix logic on test for cmd needs a
parameter. Thes test for "table != e" was incorrect. Only try to
strip off trailing newline when there is a newline on the command.
It was stripping the last character when commands came in from
FvwmTalk.

View File

@ -1,251 +0,0 @@
.\" t
.\" @(#)FvwmEvent.1 3/28/94
.TH FvwmEvent 1.0 "Apr 22 1998"
.UC
.SH NAME
\fBFvwmEvent\fP \- the FVWM Event module
.SH SYNOPSIS
\fBFvwmEvent\fP is a more versatile replacement for \fBFvwmAudio\fP.
It can in general be used to hook any \fBfvwm2\fP function or program to any
window manager event. e.g: Delete unwanted netscape-popups or
application error popups as they appear, play sounds, log events to a
file and the like. Be creative, You'll find a use for it.
\fBFvwmEvent\fP is spawned by \fBfvwm2(1)\fP, so no command line invocation will
work. From within the \fI.fvwm2rc\fP file, \fBFvwmEvent\fP is spawned as
follows:
.nf
.sp
Module FvwmEvent
.sp
.fi
or from within an \fBfvwm2\fP pop-up menu:
.nf
.sp
DestroyMenu Module-Popup
AddToMenu Module-Popup "Modules" Title
+ "Event" Module FvwmEvent
+ "Auto" Module FvwmAuto 200
+ "Buttons" Module FvwmButtons
+ "Ident" Module FvwmIdent
+ "Banner" Module FvwmBanner
+ "Pager" Module FvwmPager 0 3
.sp
.fi
.SH DESCRIPTION
The \fBFvwmEvent\fP module communicates with the \fBfvwm2\fP window manager
to bind \fIactions\fP to window manager \fIevents\fP. Different actions
may be assigned to distinct window manager events.
\fBFvwmEvent\fP can be used to bind sound files to events like
\fBFvwmAudio\fP (RiP) did. It can be used for logging event traces to
a log file, while debugging \fBfvwm2\fP.
\fBFvwmEvent\fP can also have builtin support for the rplay library.
(heritage of FvwmAudio)
.SH CONFIGURATION OPTIONS
\fBFvwmEvent\fP reads the same \fI.fvwm2rc\fP file as \fBfvwm2\fP
reads when it starts up, and looks for certain configuration options:
.IP "*FvwmEventCmd \fIcommand\fP"
This determines the \fBfvwm2\fP function that is to be called with the
event parameters.
You might want to do one of the following (details below):
.nf
.sp
*FvwmEventCmd \fIbuiltin-rplay\fP
play sounds
*FvwmEventCmd
execute distinct fvwm2 functions
*FvwmEventCmd exec
execute distinct external programs
.sp
.fi
This version of \fBFvwmEvent\fP has builtin \fBrplay\fP support which does not
need to invoke an external audio player to play sounds. The rplay
support is enabled when \fBFvwmEvent\fP is compiled with \fIHAVE_RPLAY\fP defined
(see the Imakefile) and when \fBFvwmEventCmd\fP is set to \fIbuiltin-rplay\fP.
For example:
.nf
.sp
*FvwmEventCmd \fIbuiltin-rplay\fP
*FvwmEvent add_window drip.au
rplay can be obtained via anonymous ftp at
<URL:ftp://ftp.sdsu.edu/pub/rplay>
or <URL:ftp://ftp.x.org/contrib/Event/rplay>
.sp
.fi
\fBFvwmEvent\fP also has support for any other external program.
e.g: the rsynth 'say' command:
.nf
.sp
*FvwmEventCmd /rsynth/say
*FvwmEvent destroy_window "window closed"
.sp
.fi
You can also use \fBfvwm2\fP's builtin \fIEcho\fP command as
\fIFvwmEventCmd\fP to obtain debug output for \fBfvwm2\fP events quietly.
I used this setup to debug FvwmAuto:
.nf
.sp
*FvwmEventCmd \fIEcho\fP
*FvwmEvent focus_change "focus change"
*FvwmEvent raise_window "raise window"
.sp
.fi
You can even call different shell commands for each event just by setting
.nf
.sp
*FvwmEventCmd exec
*FvwmEvent add_window killname "APPL ERROR"
.sp
.fi
.IP "*FvwmEvent \fIwindow-manager-event action-or-filename\fP"
Binds particular actions to window manager events.
.nf
.sp
e.g. for audio-events:
*FvwmEvent startup TaDa.au
*FvwmEvent shutdown Elvis_Left.au
*FvwmEvent unknown doh.au
*FvwmEvent new_page beam_trek.au
*FvwmEvent new_desk beam_trek.au
*FvwmEvent add_window drip.au
*FvwmEvent raise_window swoosh.au
*FvwmEvent lower_window swoosh.au
*FvwmEvent configure_window hammer.au
*FvwmEvent focus_change boing.au
*FvwmEvent destroy_window explosion.au
*FvwmEvent iconify ploop.au
*FvwmEvent deiconify ploop.au
*FvwmEvent window_name huh.au
*FvwmEvent icon_name beep.au
*FvwmEvent res_class beep.au
*FvwmEvent res_name beep.au
*FvwmEvent end_windowlist twang.au
*FvwmEvent icon_location beep.au
*FvwmEvent map beep.au
*FvwmEvent error beep.au
*FvwmEvent config_info beep.au
*FvwmEvent end_config_info beep.au
*FvwmEvent icon_file beep.au
*FvwmEvent default_icon beep.au
*FvwmEvent string plapper.au
*FvwmEvent mini_icon beep.au
*FvwmEvent windowshade beep.au
*FvwmEvent dewindowshade beep.au
.sp
.fi
Provided \fBfvwm2\fP supports it (not yet), there's an additional event to
replace all \fBfvwm2\fP beeps with a sound:
.nf
.sp
*FvwmEvent beep beep.au
.sp
.fi
The toggle_paging event will be supported, as soon, as it's
resurrected by \fBfvwm2\fP:
.nf
.sp
*FvwmEvent toggle_paging fwop.au
.sp
.fi
.IP "*FvwmEventDelay \fI5\fP"
Specifies that an event-action will only be executed if it occurs at
least 5 seconds after the previous event. Events that occur during
the delay period are ignored. This option is useful if you don't want
several sounds playing at the same time. The default delay is 0 which
disables the Event delay.
.SH RPLAY OPTIONS
The following options are only valid with builtin rplay support.
i.e: when \fBFvwmEvent\fP was compiled with \fIHAVE_RPLAY\fP defined
(see the Imakefile). They are used only if \fBFvwmEventCmd\fP is set
to \fIbuiltin-rplay\fP.
.IP "*FvwmEventRplayHost \fIhostname\fP"
Specifies what host the rplay sounds will play on. The \fIhostname\fP
can also be an environment variable such as $HOSTDISPLAY.
.IP "*FvwmEventRplayPriority \fI0\fP"
Specifies what priority will be assigned to the rplay sounds when they
are played.
.IP "*FvwmEventRplayVolume \fI127\fP"
Specifies what volume will be assigned to the sounds when they are
played.
.SH INVOCATION
The invocation method was shown in the synopsis section. No command
line invocation is possible. \fBFvwmEvent\fP must be invoked by the
\fBfvwm2\fP window manager.
.sp
.SH FvwmAudio Compatibility
FvwmAudioPlayCmd used to call an external program.
FvwmEventCmd calls an \fBfvwm2\fP function. External programs can be called
using the \fBfvwm2\fP exec function "exec program".
FvwmAudioDir has been removed due to the fact that the parameters
don't have to be files any more.
use:
.nf
.sp
DestroyFunc mysay
AddToFunc mysay "I" exec /rsynth/say /rsynth/audiofiles/$1
*FvwmEventCmd mysay
.sp
.fi
.SH BUGS
It's REALLY noisy when \fBfvwm2\fP starts and restarts using an audio player.
FvwmEventDelay helps a little bit.
The parameters inherent to several events are not accessible. This
might be implemented in the future so that the command executed by
fvwm2 looks like FvwmEventCmd FvwmEvent-parameters
event-specific-parameters.
Simple \fBFvwmAuto\fP could then be emulated by:
.nf
*FvwmEventCmd
*FvwmEvent raise-window Raise
.sp
.fi
.SH COPYRIGHTS
This module has evolved of \fBFvwmAudio\fP, which in term is heavily based
on a similar Fvwm module called \fBFvwmSound\fP by Mark
Boyns. \fBFvwmAudio\fP simply took Mark's original program and
extended it to make it generic enough to work with any Audio
player. Due to different requests to do specific things on specific events,
\fBFvwmEvent\fP took this one step further and now calls any
\fBfvwm2\fP function, or builtin-rplay. If \fBfvwm2\fP's Exec function
is used, any external program can be called with any parameter.
The concept for interfacing this module to the Window Manager, is
original work by Robert Nation.
Copyright 1998 Albrecht Kadlec.
Copyright 1994, Mark Boyns and Mark Scott. No guarantees or
warranties or anything are provided or implied in any way whatsoever.
Use this program at your own risk. Permission to use and modify this
program for any purpose is given, as long as the copyright is kept intact.
.sp
.SH AUTHORS
.nf
1994 FvwmSound Mark Boyns (\fIboyns@sdsu.edu\fP)
1994 FvwmAudio Mark Scott (\fImscott@mcd.mot.com\fP)
1996 FvwmAudio Albrecht Kadlec
1998 FvwmEvent Albrecht Kadlec (\fIalbrecht@auto.tuwien.ac.at\fP)

View File

@ -1,519 +0,0 @@
/*#define DEBUG
*
* Copyright (C) 1994 Mark Boyns (boyns@sdsu.edu) and
* Mark Scott (mscott@mcd.mot.com)
* 1996-1998 Albrecht Kadlec (albrecht@auto.tuwien.ac.at)
*
* FvwmEvent version 1.0
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* ChangeLog
* renamed & cleaned up so that FvwmEvent (TaDa !!) is a general event
handler module.
-- 21.04.98 Albrecht Kadlec (albrecht@auto.tuwien.ac.at)
* changed parsing to use new library functions
* merged bug fix from Christophe MARTIN <cmartin@ipnl.in2p3.fr>
- FvwmAudio doesn't read messages it is not interrested in,
thus desynchronize,
- keep time stamp even if no sound is played
- minimize malloc/free
mark boyns ok-ed this patch, I reviewed it and put out those ugly
#defines for RESYNC and READ_BODY by reordering the control structures
-- Albrecht Kadlec (albrecht@auto.tuwien.ac.at)
* made FvwmAudio insensitive to its name -> can be symlinked.
corrected some error message deficiencies, code for quoted 'sound'
parameters shamelessly stolen from FvwmButtons/parse.c (with minimal
adjustments)
FvwmAudio now supports rsynth's say command:
*FvwmAudioPlayCmd say
*FvwmAudio add_window "add window"
*FvwmAudio raise_window 'raise window'
-- 08/07/96 Albrecht Kadlec (albrecht@auto.tuwien.ac.at)
* Fixed FvwmAudio to reflect the changes made to the module protocol.
* Szijarto Szabolcs <saby@sch.bme.hu> provided FvwmSound code that used
$HOSTDISPLAY for the rplay host. The code has been added to FvwmAudio.
* Fixed bugs reported by beta testers, thanks!
* Builtin rplay support has been added to FvwmAudio. This support is
enabled when FvwmAudio is compiled with HAVE_RPLAY defined and when
FvwmAudioPlayCmd is set to builtin-rplay. I guess it's safe to say
that FvwmSound is now obsolete. -- Mark Boyns 5/7/94
* FvwmAudio is based heavily on an Fvwm module "FvwmSound" by Mark Boyns
and the real credit for this really goes to him for the concept.
I just stripped out the "rplay" library dependencies to allow generic
audio play command support.
*/
/*
* This module is based on FvwmModuleDebugger which has the following
* copyright:
*
* This module, and the entire ModuleDebugger program, and the concept for
* interfacing this module to the Window Manager, are all original work
* by Robert Nation
*
* Copyright 1994, Robert Nation. No guarantees or warantees or anything
* are provided or implied in any way whatsoever. Use this program at your
* own risk. Permission to use this program for any purpose is given,
* as long as the copyright is kept intact.
*/
#include "config.h"
#include "../../fvwm/module.h"
#include "fvwmlib.h"
/*
* fvwm includes:
*/
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <fcntl.h>
#include <string.h>
#include <sys/wait.h>
#include <sys/time.h>
#include <unistd.h>
#include <ctype.h>
/*
* rplay includes:
*/
#ifdef HAVE_RPLAY
#include <rplay.h>
#undef M_ERROR /* Solaris fix */
#endif
#include "ModParse.h"
#ifdef DEBUG
#define INFO(x) fprintf(stderr,x)
#else
#define INFO(x)
#endif
#define BUILTIN_STARTUP MAX_MESSAGES
#define BUILTIN_SHUTDOWN MAX_MESSAGES+1
#define BUILTIN_UNKNOWN MAX_MESSAGES+2
#define MAX_BUILTIN 3
#define BUFSIZE 512
/* globals */
char *MyName;
int MyNameLen;
int fd[2];
char cmd_line[BUFSIZE]="";
time_t audio_delay = 0, /* seconds */
last_time = 0,
now;
#ifdef HAVE_RPLAY
int rplay_fd = -1;
#endif
/* prototypes */
int execute_event(short);
void config(void);
void DeadPipe(int) __attribute__((__noreturn__));
static RETSIGTYPE TerminateHandler(int);
/* define the event table */
char *events[MAX_MESSAGES+MAX_BUILTIN] =
{
"new_page",
"new_desk",
"add_window",
"raise_window",
"lower_window",
"configure_window",
"focus_change",
"destroy_window",
"iconify",
"deiconify",
"window_name",
"icon_name",
"res_class",
"res_name",
"end_windowlist",
"icon_location",
"map",
"error",
"config_info",
"end_config_info",
"icon_file",
"default_icon",
"string",
#ifdef M_BELL
"beep",
#endif
#ifdef M_TOGGLEPAGE
"togglepage",
#endif
"mini_icon",
"windowshade",
"dewindowshade",
"locksonsend",
"sendconfig",
/* add builtins here */
"startup",
"shutdown",
"unknown"
};
/* define the action table */
char *action_table[MAX_MESSAGES+MAX_BUILTIN];
#ifdef HAVE_RPLAY
/* define the rplay table */
RPLAY *rplay_table[MAX_MESSAGES+MAX_BUILTIN];
#endif
static volatile sig_atomic_t isTerminated = False;
int main(int argc, char **argv)
{
char *s;
unsigned long header[HEADER_SIZE], body[MAX_BODY_SIZE];
int total, remaining, count, event;
INFO("--- started ----\n");
/* Save our program name - for error events */
if ((s=strrchr(argv[0], '/'))) /* strip path */
s++;
else /* no slash */
s = argv[0];
MyNameLen=strlen(s)+1; /* account for '*' */
MyName = safemalloc(MyNameLen+1); /* account for \0 */
*MyName='*';
strcpy(MyName+1, s); /* append name */
if ((argc != 6)&&(argc != 7)) /* Now MyName is defined */
{
fprintf(stderr,"%s Version "VERSION" should only be executed by fvwm!\n",
MyName+1);
exit(1);
}
INFO("--- installing signal server\n");
#ifdef HAVE_SIGACTION
{
struct sigaction sigact;
sigemptyset(&sigact.sa_mask);
# ifdef SA_INTERRUPT
sigact.sa_flags = SA_INTERRUPT;
# else
sigact.sa_flags = 0;
# endif
sigact.sa_handler = TerminateHandler;
sigaction(SIGPIPE,&sigact,NULL); /* Dead pipe == Fvwm died */
sigaction(SIGTERM,&sigact,NULL); /* "polite" termination signal */
}
#else
/* We don't have sigaction(), so fall back to less robust methods. */
signal(SIGPIPE, TerminateHandler);
signal(SIGTERM, TerminateHandler);
#endif
fd[0] = atoi(argv[1]);
fd[1] = atoi(argv[2]);
INFO("--- configuring\n");
config(); /* configure events */
execute_event(BUILTIN_STARTUP); /* Startup event */
SendText(fd,"Nop",0); /* what for ? */
/* main loop */
INFO("--- waiting\n");
while ( !isTerminated )
{
if ((count = read(fd[1],header,
HEADER_SIZE*sizeof(unsigned long))) <= 0)
exit(0);
/* if this read is interrrupted EINTR, the wrong event is triggered !!! */
if( header[0] != START_FLAG )
continue; /* should find something better for resyncing */
/* Ignore events that occur during the delay period. */
now = time(0);
/* junk the event body */
total=0;
remaining = (header[2] - HEADER_SIZE) * sizeof(unsigned long);
while (remaining)
{
if((count=read(fd[1],&body[total],remaining)) < 0)
exit(0);
remaining -= count;
total +=count;
}
if (now < last_time + audio_delay)
continue; /* quash event */
/*
* event will equal the number of shifts in the
* base-2 header[1] number. Could use log here
* but this should be fast enough.
*/
event = -1;
while (header[1])
{
event++;
header[1] >>= 1;
}
if (event < 0 || event >= MAX_MESSAGES)
event=BUILTIN_UNKNOWN;
execute_event(event); /* execute action */
} /* while */
execute_event(BUILTIN_SHUTDOWN);
return 0;
}
/***********************************************************************
*
* Procedure:
*
* execute_event - actually executes the actions from lookup table
*
**********************************************************************/
int execute_event(short event)
{
static char buf[BUFSIZE];
#ifdef HAVE_RPLAY
if (rplay_fd != -1) /* this is the sign that rplay is used */
{
if (rplay_table[event])
if (rplay(rplay_fd, rplay_table[event]) >= 0)
last_time = now;
else
rplay_perror("rplay");
return 0;
} else /* avoid invalid second execute */
#endif
if (action_table[event])
{
sprintf(buf,"%s %s", cmd_line, action_table[event]);
#if 1
INFO(buf);
INFO("\n");
SendText(fd,buf,0); /* let fvwm2 execute the function */
last_time = now;
#else
if( ! ( ret = system(buf))) /* directly execute external program */
last_time = now;
return ret;
#endif
}
return 1;
}
/***********************************************************************
*
* Procedure:
* config - read the configuration file.
*
***********************************************************************/
char *table[]=
{
"Cmd",
"Delay"
#ifdef HAVE_RPLAY
,
"RplayHost",
"RplayPriority",
"RplayVolume"
#endif
}; /* define entries here, if this list becomes unsorted, use LFindToken */
void config(void)
{
char *buf, *event, *action, *p, *q, **e;
int i, found;
#ifdef HAVE_RPLAY
int volume = RPLAY_DEFAULT_VOLUME,
priority = RPLAY_DEFAULT_PRIORITY;
char host[128];
strcpy(host, rplay_default_host());
#endif
/* Intialize all the actions */
for (i = 0; i < MAX_MESSAGES+MAX_BUILTIN; i++)
{
action_table[i] = NULL;
#ifdef HAVE_RPLAY
rplay_table[i] = NULL;
#endif
}
while (GetConfigLine(fd,&buf), buf != NULL)
{
if (buf[strlen(buf)-1] == '\n') { /* if line ends with newline */
buf[strlen(buf)-1] = '\0'; /* strip off \n */
}
/* Search for MyName (normally *FvwmAudio) */
if (strncasecmp(buf, MyName, MyNameLen) == 0)
{
p = buf+MyNameLen;
INFO(buf);
INFO("\n");
if ((e= FindToken(p,table,char *))) /* config option ? */
{
p+=strlen(*e); /* skip matched token */
q=GetArgument(&p);
if (!q)
{
fprintf(stderr,"%s: %s%s needs a parameter\n",
MyName+1, MyName+1,*e);
continue;
}
switch (e - (char**)table)
{
case 0: if (q) strcpy(cmd_line, q); /* Cmd */
else *cmd_line='\0';
INFO("cmd_line = ->");
INFO(cmd_line);
INFO("<-\n");
break;
case 1: audio_delay = atoi(q); break; /* Delay */
#ifdef HAVE_RPLAY
case 2: if (*q == '$') /* RPlayHost */
{ /* Check for $HOSTDISPLAY */
char *c1= (char *)getenv(q+1), *c2= host;
while (c1 && *c1 != ':')
*c2++ = *c1++;
*c2 = '\0';
}
else
strcpy(host, q);
break;
case 3: priority = atoi(q); break; /* RplayPriority */
case 4: volume = atoi(q); break; /* RplayVolume */
#endif
}
}
else /* test for isspace(*p) ??? */
{
event = GetArgument(&p);
action = GetArgument(&p);
INFO(event);
INFO(" ");
INFO(action);
INFO("\n");
if (!event || !*event || !action || !*action)
{
fprintf(stderr,"%s: incomplete event definition %s\n",
MyName+1, buf);
continue;
}
for (found = 0,i = 0; !found && i < MAX_MESSAGES+MAX_BUILTIN;
i++)
{
INFO(events[i]);
INFO("\n");
if (MatchToken(event, events[i]))
{
#ifdef HAVE_RPLAY
rplay_table[i] = rplay_create(RPLAY_PLAY);
rplay_set(rplay_table[i], RPLAY_APPEND,
RPLAY_SOUND, action,
RPLAY_PRIORITY, priority,
RPLAY_VOLUME, volume,
NULL);
#endif
action_table[i]=action;
found=1;
INFO("found\n");
}
}
if (!found) fprintf(stderr,"%s: unknown event type: %s\n",
MyName+1, event);
}
}
/*else INFO("NO CONFIG\n");*/
}
#ifdef HAVE_RPLAY
/*
* Builtin rplay support is enabled when FvwmAudioPlayCmd == builtin-rplay.
*/
if (strcasecmp(cmd_line, "builtin-rplay") == 0)
if ((rplay_fd = rplay_open(host)) < 0)
{
rplay_perror("rplay_open");
exit(1);
}
#endif
}
/***********************************************************************
*
* Procedure:
* SIGPIPE handler - SIGPIPE means fvwm is dying
*
***********************************************************************/
static RETSIGTYPE
TerminateHandler(int nonsense)
{
isTerminated = True;
}
/***********************************************************************
*
* Procedure:
* Externally callable procedure to quit
*
***********************************************************************/
void DeadPipe(int flag)
{
execute_event(BUILTIN_SHUTDOWN);
exit(flag);
}

View File

@ -1,6 +0,0 @@
# $OpenBSD: Imakefile,v 1.1.1.1 2006/11/26 10:53:46 matthieu Exp $
FVWMTOP=../..
#include "../../Fvwm.tmpl"
FvwmSimpleModuleTarget(FvwmEvent)