⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 poll.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
#ifndef lintstatic	char sccsid[] = "@(#)poll.c 1.1 92/07/30 SMI";#endif not lint/* * Copyright (c) 1989 by Sun Microsystems, Inc. */#include <stdio.h>#include <sys/types.h>#include <sunwindow/notify.h>#include <suntool/sunview.h>#include <suntool/panel.h>#include <fcntl.h>#include <sys/filio.h>#include "sony_laser.h"#include "lasertool.h"#define NULLC '\0'int poll_state;int poll_fd;char poll_ch;int ch_go, disk_go;extern Panel_item adrezz, chpter, dsk_type, error_return;extern FILE *device;Notify_valuepoll(client, which)Notify_client client;int which;{	extern void print_disk_info();	unsigned char buf;	char string[30];	int count;	count = 1;	switch (poll_state) {		case POLL_PRINT: 			print_disk_info();			return(NOTIFY_DONE);		case POLL_SEARCH:	/* Wait for poll_ch */			if (ioctl(poll_fd, FIONREAD, &count) == -1) {				perror("FIONREAD failed.");				return(NOTIFY_DONE);			} else {				while (count--) {					if (read(poll_fd, &buf, 1) != 1) {						perror("(poll)read failed.");					}					if (buf == poll_ch) {						sony_audio_mute_on(device);						poll_state = POLL_PRINT;						return(NOTIFY_DONE);					} else if(buf == MARK_RETURN) {						sprintf(string,"Mark Return ignored\n");						panel_set(error_return, PANEL_LABEL_STRING, string, 0);					}				}			}			break;		default:			return(NOTIFY_DONE);	}}voidprint_disk_info(){	static char string[20];	unsigned char zip[6], chapter[3];	sony_addr_inq(device, zip);	if(zip[0] == NAK)		sprintf(string,"NAK");	else {		zip[5] = NULLC;		sprintf(string,"%d", atoi(zip));	}	panel_set(adrezz, PANEL_LABEL_STRING, string, 0);		if( (ch_go == 0) || (ch_go == 30) ) {		sony_chapter_inq(device, chapter);		if(chapter[0] == NAK)			sprintf(string,"No Chapters");		else {			chapter[2] = NULLC;			sprintf(string,"%d", atoi(chapter));		}		panel_set(chpter, PANEL_LABEL_STRING, string, 0);		ch_go = 1;	} else		ch_go++;	if( (disk_go == 0) || (disk_go == 60) ) {		if(sony_clv_disk(device))			sprintf(string,"CLV");		else			sprintf(string,"CAV");		panel_set(dsk_type, PANEL_LABEL_STRING, string,			0);		disk_go = 1;	} else		disk_go++;}

⌨️ 快捷键说明

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