mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 01:32:45 +00:00 
			
		
		
		
	 d0ceaa24a6
			
		
	
	
		d0ceaa24a6
		
	
	
	
	
		
			
			Two new ioctl requests are used to get and set the sample rate of the sound card. The SB16 device keeps track of the sample rate separately, because I don't want to figure out how to read the sample rate from the device; it's easier that way. The soundcard write doesn't set the sample rate to 44100 Hz every time anymore, as we want to change it externally.
		
			
				
	
	
		
			134 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
 | |
|  * Copyright (c) 2021, Edwin Hoksberg <mail@edwinhoksberg.nl>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <sys/cdefs.h>
 | |
| 
 | |
| __BEGIN_DECLS
 | |
| 
 | |
| struct winsize {
 | |
|     unsigned short ws_row;
 | |
|     unsigned short ws_col;
 | |
|     unsigned short ws_xpixel;
 | |
|     unsigned short ws_ypixel;
 | |
| };
 | |
| 
 | |
| struct FBResolution {
 | |
|     unsigned pitch;
 | |
|     unsigned width;
 | |
|     unsigned height;
 | |
| };
 | |
| 
 | |
| struct FBRect {
 | |
|     unsigned x;
 | |
|     unsigned y;
 | |
|     unsigned width;
 | |
|     unsigned height;
 | |
| };
 | |
| 
 | |
| struct FBBufferOffset {
 | |
|     int buffer_index;
 | |
|     unsigned offset;
 | |
| };
 | |
| 
 | |
| struct FBFlushRects {
 | |
|     int buffer_index;
 | |
|     unsigned count;
 | |
|     struct FBRect const* rects;
 | |
| };
 | |
| 
 | |
| __END_DECLS
 | |
| 
 | |
| enum IOCtlNumber {
 | |
|     TIOCGPGRP,
 | |
|     TIOCSPGRP,
 | |
|     TCGETS,
 | |
|     TCSETS,
 | |
|     TCSETSW,
 | |
|     TCSETSF,
 | |
|     TCFLSH,
 | |
|     TIOCGWINSZ,
 | |
|     TIOCSCTTY,
 | |
|     TIOCSTI,
 | |
|     TIOCNOTTY,
 | |
|     TIOCSWINSZ,
 | |
|     FB_IOCTL_GET_SIZE_IN_BYTES,
 | |
|     FB_IOCTL_GET_RESOLUTION,
 | |
|     FB_IOCTL_SET_RESOLUTION,
 | |
|     FB_IOCTL_GET_BUFFER,
 | |
|     FB_IOCTL_GET_BUFFER_OFFSET,
 | |
|     FB_IOCTL_SET_BUFFER,
 | |
|     FB_IOCTL_FLUSH_BUFFERS,
 | |
|     KEYBOARD_IOCTL_GET_NUM_LOCK,
 | |
|     KEYBOARD_IOCTL_SET_NUM_LOCK,
 | |
|     KEYBOARD_IOCTL_GET_CAPS_LOCK,
 | |
|     KEYBOARD_IOCTL_SET_CAPS_LOCK,
 | |
|     SIOCSIFADDR,
 | |
|     SIOCGIFADDR,
 | |
|     SIOCGIFHWADDR,
 | |
|     SIOCGIFNETMASK,
 | |
|     SIOCSIFNETMASK,
 | |
|     SIOCGIFBRDADDR,
 | |
|     SIOCGIFMTU,
 | |
|     SIOCGIFFLAGS,
 | |
|     SIOCGIFCONF,
 | |
|     SIOCADDRT,
 | |
|     SIOCDELRT,
 | |
|     SIOCSARP,
 | |
|     SIOCDARP,
 | |
|     FIBMAP,
 | |
|     FIONBIO,
 | |
|     FIONREAD,
 | |
|     KCOV_SETBUFSIZE,
 | |
|     KCOV_ENABLE,
 | |
|     KCOV_DISABLE,
 | |
|     SOUNDCARD_IOCTL_SET_SAMPLE_RATE,
 | |
|     SOUNDCARD_IOCTL_GET_SAMPLE_RATE
 | |
| };
 | |
| 
 | |
| #define TIOCGPGRP TIOCGPGRP
 | |
| #define TIOCSPGRP TIOCSPGRP
 | |
| #define TCGETS TCGETS
 | |
| #define TCSETS TCSETS
 | |
| #define TCSETSW TCSETSW
 | |
| #define TCSETSF TCSETSF
 | |
| #define TCFLSH TCFLSH
 | |
| #define TIOCGWINSZ TIOCGWINSZ
 | |
| #define TIOCSCTTY TIOCSCTTY
 | |
| #define TIOCSTI TIOCSTI
 | |
| #define TIOCNOTTY TIOCNOTTY
 | |
| #define TIOCSWINSZ TIOCSWINSZ
 | |
| #define FB_IOCTL_GET_SIZE_IN_BYTES FB_IOCTL_GET_SIZE_IN_BYTES
 | |
| #define FB_IOCTL_GET_RESOLUTION FB_IOCTL_GET_RESOLUTION
 | |
| #define FB_IOCTL_SET_RESOLUTION FB_IOCTL_SET_RESOLUTION
 | |
| #define FB_IOCTL_GET_BUFFER FB_IOCTL_GET_BUFFER
 | |
| #define FB_IOCTL_GET_BUFFER_OFFSET FB_IOCTL_GET_BUFFER_OFFSET
 | |
| #define FB_IOCTL_SET_BUFFER FB_IOCTL_SET_BUFFER
 | |
| #define FB_IOCTL_FLUSH_BUFFERS FB_IOCTL_FLUSH_BUFFERS
 | |
| #define KEYBOARD_IOCTL_GET_NUM_LOCK KEYBOARD_IOCTL_GET_NUM_LOCK
 | |
| #define KEYBOARD_IOCTL_SET_NUM_LOCK KEYBOARD_IOCTL_SET_NUM_LOCK
 | |
| #define KEYBOARD_IOCTL_GET_CAPS_LOCK KEYBOARD_IOCTL_GET_CAPS_LOCK
 | |
| #define KEYBOARD_IOCTL_SET_CAPS_LOCK KEYBOARD_IOCTL_SET_CAPS_LOCK
 | |
| #define SIOCSIFADDR SIOCSIFADDR
 | |
| #define SIOCGIFADDR SIOCGIFADDR
 | |
| #define SIOCGIFHWADDR SIOCGIFHWADDR
 | |
| #define SIOCGIFNETMASK SIOCGIFNETMASK
 | |
| #define SIOCSIFNETMASK SIOCSIFNETMASK
 | |
| #define SIOCGIFBRDADDR SIOCGIFBRDADDR
 | |
| #define SIOCGIFMTU SIOCGIFMTU
 | |
| #define SIOCGIFFLAGS SIOCGIFFLAGS
 | |
| #define SIOCGIFCONF SIOCGIFCONF
 | |
| #define SIOCADDRT SIOCADDRT
 | |
| #define SIOCDELRT SIOCDELRT
 | |
| #define SIOCSARP SIOCSARP
 | |
| #define SIOCDARP SIOCDARP
 | |
| #define FIBMAP FIBMAP
 | |
| #define FIONBIO FIONBIO
 | |
| #define FIONREAD FIONREAD
 | |
| #define SOUNDCARD_IOCTL_SET_SAMPLE_RATE SOUNDCARD_IOCTL_SET_SAMPLE_RATE
 | |
| #define SOUNDCARD_IOCTL_GET_SAMPLE_RATE SOUNDCARD_IOCTL_GET_SAMPLE_RATE
 |