home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.6
/
ffcollection-1-6-1993-02.iso
/
ff_disks
/
211-240
/
ff_228
/
glib
/
unix-mach.c
< prev
next >
Wrap
C/C++ Source or Header
|
1989-06-26
|
3KB
|
271 lines
/*
* GLIB - a Generic LIBrarian and editor for synths
*
* Machine dependent stuff.
*
* Unix version
*/
#include "glib.h"
#include <ctype.h>
int Rows, Cols;
#include <curses.h>
hello()
{
}
bye()
{
windgoto(22,0);
windrefresh();
windexit(0);
}
/* getmouse - get currect row and column of mouse */
getmouse(amr,amc)
int *amr;
int *amc;
{
#ifdef USEMOUSE
/* no such */
#else
*amr = -1;
*amc = -1;
#endif
}
/* statmouse - return mouse button state (0=nothing pressed,1=left,2=right) */
statmouse()
{
#ifdef USEMOUSE
/* no such */
#else
return(-1);
#endif
}
/* Return when either a console key or mouse button is pressed. */
mouseorkey()
{
#ifdef USEMOUSE
/* no such */
#else
return(getconsole());
#endif
}
flushconsole()
{
}
statconsole()
{
return(1);
}
getconsole()
{
return(getchar());
}
getmidi()
{
return(-1);
}
statmidi()
{
return(0);
}
/*ARGSUSED*/
sendmidi(c)
{
}
flushmidi()
{
while ( STATMIDI )
getmidi();
}
long milliclock()
{
static long hzcount = 0;
return(hzcount++);
}
millisleep(n)
{
sleep((n+500)/1000);
}
char *
alloc(n)
{
char *p;
if ( (p=malloc((unsigned)n)) == (char *)NULL ) {
printf("*** Whoops *** alloc has failed?!? No more memory!\n");
fflush(stdout);
bye();
}
return(p);
}
windinit()
{
char *getenv();
initscr();
Cols = 80;
Rows = 24;
noecho();
nonl();
cbreak();
}
windgoto(r,c)
int r,c;
{
move(r,c);
}
windeeol()
{
clrtoeol();
}
winderaserow(r)
{
windgoto(r,0);
windeeol();
}
windexit(r)
int r;
{
nocbreak();
nl();
echo();
endwin();
exit(r);
}
windclear()
{
clear();
}
/* windgets - get a line of input from the console, handling backspaces */
windgets(s)
char *s;
{
char *origs = s;
int c;
while ( (c=getconsole()) != '\n' && c!='\r' && c!= EOF ) {
if ( c == '\b' ) {
if ( s > origs ) {
windstr("\b \b");
s--;
}
}
else {
windputc(c);
*s++ = c;
}
windrefresh();
}
*s = '\0';
}
windstr(s)
char *s;
{
int c;
while ( (c=(*s++)) != '\0' )
windputc(c);
}
windputc(c)
int c;
{
addch(c);
}
windrefresh()
{
refresh();
}
beep()
{
putchar('\007');
}
windhigh()
{
standout();
}
windnorm()
{
standend();
}
/****************
* openls(), nextls(), and closels() are used to scan the current directory.
***************/
FILE *Phrlist = NULL;
openls()
{
FILE *popen();
Phrlist = popen("ls","r");
}
char *
nextls()
{
static char fname[65];
if ( fscanf(Phrlist,"%s",fname) != 1 )
return(NULL);
return(fname);
}
closels()
{
pclose(Phrlist);
}
#ifdef FAKECBREAK
#include <sys/termio.h>
struct termio Initterm;
static int First = 1;
cbreak()
{
struct termio termbuff;
if ( First ) {
First = 0;
ioctl(0,TCGETA,&Initterm);
}
termbuff = Initterm;
termbuff.c_lflag &= (~ICANON);
termbuff.c_cc[4] = 1;
termbuff.c_cc[5] = 1;
ioctl(0,TCSETA,&termbuff);
}
nocbreak()
{
ioctl(0,TCSETA,&Initterm);
}
#endif