Deutsch English Français Italiano |
<185a06463a1c6a2af69508bd1ec2d2a64587ce7f.camel@gmail.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder2.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: wij <wyniijj5@gmail.com> Newsgroups: comp.unix.programmer Subject: Re: Beeping in Linux Date: Sun, 27 Oct 2024 20:00:34 +0800 Organization: A noiseless patient Spider Lines: 53 Message-ID: <185a06463a1c6a2af69508bd1ec2d2a64587ce7f.camel@gmail.com> References: <vfkt6j$74bf$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Date: Sun, 27 Oct 2024 13:00:35 +0100 (CET) Injection-Info: dont-email.me; posting-host="cb573552714cb9d77c9de13a369341c7"; logging-data="466568"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19QDDQ7IAmqYFDHWA8IIIJE" User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) Cancel-Lock: sha1:dFaEZNvXlh1AjaDZV1F7bL5sBOM= In-Reply-To: <vfkt6j$74bf$1@dont-email.me> Bytes: 2245 On Sun, 2024-10-27 at 08:21 +0000, Muttley@dastardlyhq.com wrote: > I'm looking at a way of making the machine beep without relying on having= a=20 > TTY available to send \7 to or going all heavyweight with ALSA.=20 >=20 > I've found something online that mentioned ioctl() + the KDMTONE option b= ut I=20 > can't find any example code. Does anyone know how its done? >=20 > Thanks for any help >=20 This is the beep(..) implement in libwy https://sourceforge.net/projects/cs= call/files/latest/download Root privilege is required. /* Copyright is licensed by GNU LGPL, see file COPYING. by I.J.Wang 2= 018 =20 This file is header only */ #ifndef WY_IOCTL_H__ #define WY_IOCTL_H__ #define WY_IOCTL_VERSION 69 #include <sys/ioctl.h> #include <linux/kd.h> #ifndef CLOCK_TICK_RATE #define CLOCK_TICK_RATE 1193180 #endif namespace Wy { inline Wy::Errno beep(Wy::FileHandle fh, unsigned int freq, unsigned int msec) { Wy::Errno r; if(((msec&0xffff)!=3Dmsec)||(freq<=3D0)||(CLOCK_TICK_RATE/freq>0xffff)) { WY_RETURN( EINVAL ); } if((::ioctl(fh.fd(),KDMKTONE,( (msec<<16)|(CLOCK_TICK_RATE/freq) )))=3D=3D= -1) { WY_RETURN(errno); } return Wy::Ok; }; }; // end namespce Wy #endif // end WY_IOCTL_H__