Commit graph

10 commits

Author SHA1 Message Date
graham sanderson
368a6210f7 squashed rp2040-doom changes 2022-03-07 12:44:30 -06:00
Rodrigo Rebello
2e855ffeb6 opl: limit use of ioperm/inb/outb to x86 architecture
The use of I/O ports in the Linux driver to directly control OPL chips
is x86 specific and only really makes sense for x86-based PC's with
compatible hardware.

For some architectures (e.g. ARM), ioperm, inb and outb do exist and are
detected by the configure script (via AC_CHECK_FUNCS(ioperm)), but their
use is inappropriate in these cases and should be avoided.

In some other scenarios, like when using a GNU toolchain + uClibc for
PowerPC, the build even fails with the following error:

  opl_linux.c:26:20: fatal error: sys/io.h: No such file or directory

That is so because ioperm() is exported by uClibc and gets detected by
configure, which enables the "Linux" driver via definition of
HAVE_IOPERM, but in practice 'sys/io.h' is missing for ppc (inb/outb is
not implemented, and the call to ioperm() would return EIO anyway).

So, besides testing for HAVE_IOPERM, also test if either __i386__ or
__x86_64__ are defined before enabling this OPL driver.
2015-11-06 12:14:01 -02:00
Simon Howard
495694da29 opl: Add API to adjust tempo.
When the tempo is changed, the times on all active timers must be
adjusted to match the new timing values. Add an API to do this and
invoke it when a tempo change meta event is read.
2014-05-10 14:00:41 -04:00
Simon Howard
7684ddcfd8 Clean up file headers.
This change rewrites and simplifies the copyright headers at the top
of all source files:

 * Remove "Emacs style mode select" line; this line was included in
   the headers for the originally released source files and appears
   to be to set the file type for old versions of Emacs. I'm not sure
   entirely why it was required but I don't think it is any more.
 * Remove "You should have received a copy of..." text from copyright
   header. This refers to the old 59 Temple Place address where the
   FSF headquarters used to be located and is no longer correct.
   Rather than change to the new address, just remove the paragraph
   as it is superfluous anyway. This fixes #311.
 * Remove ---- separator lines so that the file headers are barer
   and more simplified.
2014-05-05 00:20:54 -04:00
Simon Howard
cdacf59ace Add a hint message about permissions if unable to get I/O permissions
for hardware OPL access.

Subversion-branch: /branches/opl-branch
Subversion-revision: 1844
2010-02-05 03:27:58 +00:00
Simon Howard
79698ecfd9 Implement pausing of music.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1688
2009-09-21 22:20:33 +00:00
Simon Howard
076adeb0aa Add method to clear all existing callbacks.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1642
2009-08-30 12:07:04 +00:00
Simon Howard
98ee23f426 Add initial callback/timer API.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1538
2009-05-30 23:24:11 +00:00
Simon Howard
c423d770e9 Fix outb() call, display error message if unable to gain port
permissions.

Subversion-branch: /branches/opl-branch
Subversion-revision: 1460
2009-03-10 22:19:29 +00:00
Simon Howard
84a05be9db Add OPL lib plumbing and Linux native driver.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1458
2009-03-10 21:55:55 +00:00