summaryrefslogtreecommitdiff
path: root/misc/man9ossddk/ossddk_adev_set_buflimits.9ossddk
diff options
context:
space:
mode:
Diffstat (limited to 'misc/man9ossddk/ossddk_adev_set_buflimits.9ossddk')
-rw-r--r--misc/man9ossddk/ossddk_adev_set_buflimits.9ossddk76
1 files changed, 76 insertions, 0 deletions
diff --git a/misc/man9ossddk/ossddk_adev_set_buflimits.9ossddk b/misc/man9ossddk/ossddk_adev_set_buflimits.9ossddk
new file mode 100644
index 0000000..408d6cb
--- /dev/null
+++ b/misc/man9ossddk/ossddk_adev_set_buflimits.9ossddk
@@ -0,0 +1,76 @@
+'\" te
+.\" Copyright (c) 2005, 4Front Technologies 2005\&.
+.TH ossddk_adev_set_buflimits 9ossddk "12 Sep 2005" "SunOS 5.10" "OSS DDK Services"
+.SH "NAME"
+ossddk_adev_set_buflimits \- Set fragment size constraints
+.PP
+.SH "SYNOPSIS"
+.nf
+#include <sys/soundcard.h>
+.LP
+#include <sys/ossddk/ossddk.h>
+.fi
+.LP
+\fBvoid\fR ossddk_adev_set_buflimits(\fBint \fIdev\fP, \fBint \fImin_fragment\fP, \fBint \fImax_fragment\fP);
+.PP
+.SH "INTERFACE LEVEL"
+.PP
+Open Sound System specific (OSS 4.0 DDK)\&.
+.PP
+.SH "ARGUMENTS"
+.PP
+.sp
+.ne 2
+.mk
+\fB\fIdev\fR
+.in +16n
+.rt
+OSS audio device number.
+.in -16n
+.sp
+.ne 2
+.mk
+\fB\fImin_fragment\fR
+.in +16n
+.rt
+Minimum fragment size (in bytes) supported by the device. Value of 0 means no limit.
+.in -16n
+.sp
+.ne 2
+.mk
+\fB\fImax_fragment\fR
+.in +16n
+.rt
+Maximum fragment size (in bytes) supported by the device. Value of 0 means no limit.
+.in -16n
+.PP
+.SH "DESCRIPTION"
+.PP
+Fragment size of an audio stream is the number of bytes (not samples) to be played
+or recorded between interrupts genererated by the device. In other words the device
+will generate an interrupt exactly at the fragment boundaries. The audio core of OSS
+will select the fragment size. However if the device has any size restrictions it can
+inform the audio core about them. In most cases there are no restrictions and the driver
+should not call this function at all.
+The minimum fragment size must be smaller or equal to the maximum.
+.PP
+For example many devices can not support fragment sizes larger than one 4k page. In
+this case the driver can call \fIossddk_adev_set_buflimits(device_num, 0, 4096)\fR.
+.PP
+This function can be called immediately after installing the audio device using
+\fIossddk_install_audiodev(9ossddk)\fR. Alternatively it can be called in driver's open,
+set_speed, set_channels and/or set_format entry points. If the latter method is used
+then the open entry point must restore the default value.
+.PP
+Changing the fragment size limits when (or after) the prepare_for_output/prepare_for_input
+entry point is called doesn't have any effect. If the fragment size depends on the
+sampling rate or the other parameters then the set_speed, set_channels and set_format
+driver entgry points must update the fragment size limits depending on the situation.
+.PP
+The limits should preferably be powers of 2 but this is not an absolute requirement.
+Both limits can be the same if the device supports fixed fragment size.
+.PP
+.SH "SEE ALSO"
+.PP
+\fIWriting Sound Device Drivers with OSS DDK\fR
+\fIOpen Sound System Programmer's Guide\fR