History log of /src/sys/dev/isa/midi_pcppi.c |
Revision | | Date | Author | Comments |
1.27 |
| 08-May-2019 |
isaki | Merge isaki-audio2 branch, the overhaul of audio subsystem. - Interrupt-oriented system rather than thread-oriented. - Improve stability, quality and performance. - Split playback and record cleanly. Improve halfduplex support. - Many bugs are fixed including deadlocks, resource leaks, abuses, etc. - Simplify audio filter mechanism. The encoding/channels/frequency conversions are completely handled in the upper layer. So the hard- ware driver only converts its hardware encoding (if necessary). - audio_hw_if changes: - Obsoletes query_encoding and add query_format instead. - Obsoletes set_params and add set_format instead. - Remove drain, setfd, mappage. - The call sequences are changed. - ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted. - ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced. - cleanup config attributes: au*conv and mulaw. - All hardware drivers should follow it (I've done as much as possible).
Some file paths are changed: - dev/audio.c -> dev/audio/audio.c (rewritten) - dev/audiovar.h -> dev/audio/audiovar.h - dev/audio_dai.h -> dev/audio/audio_dai.h - dev/audio_if.h -> dev/audio/audio_if.h - dev/audiobell.c -> dev/audio/audiobell.c - dev/audiobellvar.h -> dev/audio/audiobellvar.h - dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c
|
1.26 |
| 09-Apr-2012 |
plunky | branches: 1.26.40; 1.26.44; Tidy up a little, the way that midi attachment code works
- change midi_attach() to omit the 'parent' arg (there are only two callers of this and it is not used)
- change midisyn_attach() to midisyn_init(), so not needing a midi_softc, and fix the midi_pcppi driver to set hw_if and hw_hdl directly in its midi_softc before calling midi_attach()
- add a device_t to opl_softc structure, change opl drivers to store the device 'self' in opl_softc and fix opl_attach() to use this opl_softc->dev field directly rather than a field in an otherwise unused midi_softc
- remove unnecessary midi_softc from opl and cms drivers (child device provides that)
reviewed by mrg
|
1.25 |
| 05-Apr-2012 |
plunky | move the pmf_device_register() for midi.c and midi_pcppi.c to midi_attach() for symmetry, since it is removed in midi detach code
and don't need to call device_pmf_is_registered() before registering it
|
1.24 |
| 23-Nov-2011 |
jmcneill | branches: 1.24.2; Merge jmcneill-audiomp3 branch, which is derived from ad-audiomp2. From the original ad-audiomp branch notes:
Add MP locking to the audio drivers.
Making the audio drivers MP safe is necessary before efforts can be made to make the VM system MP safe.
The are two locks per device instance, an ISR lock and a character device lock. The ISR lock replaces calls to splaudio()/splx(), and will be held across calls to device methods which were called at splaudio() before (e.g. trigger_output). The character device lock is held across calls to nearly all of the methods, excluding some only used for initialization, e.g. get_locks.
Welcome to 5.99.57.
|
1.23 |
| 10-Apr-2009 |
mlelstv | branches: 1.23.12; 1.23.14; attach and detach do not mix. Create a new detach function that calls the parent function after dealing with the private instance counter.
|
1.22 |
| 08-Apr-2009 |
dyoung | Decrease midi_pcppi_attached when midi at pcppi detaches.
|
1.21 |
| 07-Apr-2009 |
dyoung | Detach midi at pcppi during shutdown. Sprinkle static.
|
1.20 |
| 14-Mar-2009 |
dsl | Change about 4500 of the K&R function definitions to ANSI ones. There are still about 1600 left, but they have ',' or /* ... */ in the actual variable definitions - which my awk script doesn't handle. There are also many that need () -> (void). (The script does handle misordered arguments.)
|
1.19 |
| 28-Apr-2008 |
martin | branches: 1.19.8; 1.19.12; 1.19.14; Remove clause 3 and 4 from TNF licenses
|
1.18 |
| 05-Mar-2008 |
cube | branches: 1.18.2; 1.18.4; Fix fallout from midi(4)'s softc split.
|
1.17 |
| 16-Dec-2007 |
christos | branches: 1.17.2; 1.17.6; add null pmf handlers.
|
1.16 |
| 19-Oct-2007 |
ad | branches: 1.16.4; 1.16.8; machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
|
1.15 |
| 16-Nov-2006 |
christos | branches: 1.15.8; 1.15.22; 1.15.24; 1.15.28; __unused removal on arguments; approved by core.
|
1.14 |
| 12-Oct-2006 |
christos | - sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
1.13 |
| 30-Jun-2006 |
chap | branches: 1.13.4; 1.13.6; Ankh-Morpork, we have a MIDI driver....
Merge from chap-midi branch, after ~month for review Comments by thorpej@ drochner@ and Alexandre Ratchov
Incorporated: points by thorpej@ drochner@; preliminary support for a stats-collecting ioctl suggested by martin@ from comments by A.R.
PR kern/32441 kern/32442 kern/32567 kern/32588 kern/32694 kern/33590 kern/33614 and one instance of kern/32651
ok martin@
|
1.12 |
| 11-Dec-2005 |
christos | branches: 1.12.4; 1.12.8; 1.12.14; 1.12.16; merge ktrace-lwp.
|
1.11 |
| 21-Mar-2005 |
xtraeme | branches: 1.11.2; This needs <machine/bus.h> now.
|
1.10 |
| 04-Feb-2005 |
perry | de-__P
|
1.9 |
| 04-Dec-2003 |
keihan | branches: 1.9.8; 1.9.10; netbsd.org -> NetBSD.org
This was the last commit of this kind to src/sys, which is now totally "NetBSD.org clean". Thanks for the patiance, and sorry for all the commits.
|
1.8 |
| 02-Oct-2002 |
thorpej | branches: 1.8.6; Fix sizeof and whitespace bug from the script I'm using to do the CFATTACH_DECL conversion. (Grumble.)
|
1.7 |
| 02-Oct-2002 |
thorpej | Use CFATTACH_DECL().
|
1.6 |
| 27-Sep-2002 |
thorpej | Declare all cfattach structures const.
|
1.5 |
| 13-Nov-2001 |
lukem | add RCSID
|
1.4 |
| 25-Nov-1998 |
augustss | branches: 1.4.22; 1.4.24; Make the copyright header conform to the NetBSD template.
|
1.3 |
| 17-Aug-1998 |
augustss | * Redo the way the way the MIDI driver attaches to audio devices. * Improve the midisyn layer a little. * Add a driver for the Yamaha OPL[23] FM synths. The opl driver is not finished yet; it sounds pretty awful.
For some strange reason I cannot get any FM sound from my SB64 cards, but a regular SB16 works fine.
|
1.2 |
| 12-Aug-1998 |
augustss | Shut up after close().
|
1.1 |
| 12-Aug-1998 |
augustss | Add a MIDI driver for the PC speaker. This is mostly of hack value, but, hey, lotsa people got a MIDI device now! (A truly pitiful one. :-)
|
1.4.24.2 |
| 10-Oct-2002 |
jdolecek | sync kqueue with -current; this includes merge of gehenna-devsw branch, merge of i386 MP branch, and part of autoconf rototil work
|
1.4.24.1 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.4.22.2 |
| 18-Oct-2002 |
nathanw | Catch up to -current.
|
1.4.22.1 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.8.6.5 |
| 01-Apr-2005 |
skrll | Sync with HEAD.
|
1.8.6.4 |
| 04-Feb-2005 |
skrll | Sync with HEAD.
|
1.8.6.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.8.6.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.8.6.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.9.10.2 |
| 26-Mar-2005 |
yamt | sync with head.
|
1.9.10.1 |
| 12-Feb-2005 |
yamt | sync with head.
|
1.9.8.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.11.2.4 |
| 17-Mar-2008 |
yamt | sync with head.
|
1.11.2.3 |
| 21-Jan-2008 |
yamt | sync with head
|
1.11.2.2 |
| 27-Oct-2007 |
yamt | sync with head.
|
1.11.2.1 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.12.16.1 |
| 13-Jul-2006 |
gdamore | Merge from HEAD.
|
1.12.14.4 |
| 10-Jun-2006 |
chap | Now with support for the following MIDI controls -
Channel Volume Expression
- the following heretofore unimplemented message -
Pitch Bend
- and the following registered parameters -
Pitch Bend Range Channel Fine Tuning Channel Coarse Tuning
Volume and Expression are handled by all synth chip drivers but pcppi (which has a fixed volume). All of the pitch controls will be effective (at least for new notes struck after a change) for all current synth drivers but cms (that driver discards all the fractional pitch bits and calculates its own frequency by a table lookup; it should be possible to do better with knowledge of the formula behind the table, but I have found no cms docs). If a driver provides repitchv and relevelv methods for changing the pitch/level of a sounding voice, then changes to these parameters will take effect in real time and not just for subsequent notes. The effect can be heard (for repitchv) over pcppi.
Heads up: if you build with libprop earlier than 2006.05.28, you can enjoy the exhilarating experience of seeing kernel memory stomped. ;)
|
1.12.14.3 |
| 09-Jun-2006 |
chap | Bit of housecleaning.
"miditune" wasn't a good name for the pitch representation (even if it did come from the MIDI Tuning Specification) because for too many people a 'tune' is a little ditty, not a single pitch. Changed the name to midipitch and added a typedef midipitch_t; renamed the associated macros consistently.
The type and operations on it are now in <sys/midiio.h> because they could show up in userland for manipulation of the MIDI Tuning messages that RP-012 defines. The macro MIDIPITCH_TO_HZ18 expands in userland to ordinary libm calls, and in-kernel to the no-floating-point version in midisyn. A few more operations are defined in userland where libm is available.
At the same time, made midipitch_t signed. It has the bits to spare, and such manipulations as adding several corrections and clamping the result will be simpler with it signed.
|
1.12.14.2 |
| 08-Jun-2006 |
chap | Rototill of midisyn <-> synth driver i/f.
The DOALLOC and FREQXLATE flags are on the way out. Whether a driver wants allocation service is deducible from whether it provides an allocv method, and anyway none does. As for freq, they all get a miditune and can convert it whichever way they want.
Controller handling with midictl is hooked in but few controllers watched yet.
Some macros for manipulating the miditune type are currently in midisynvar.h but should perhaps be exported in midiio.h.
opl no longer has its own master volume state (there was no setter for it anyway, it never changed); soon that will be handled centrally in midisyn.
Builds a kernel. Not all functionality tested yet.
|
1.12.14.1 |
| 07-Jun-2006 |
chap | The midisyn clients now use designated initializers so the method structure can evolve. Only opl currently provides any methods beyond open/close/note-on/note-off. Only cms takes a note number; the others want a frequency. This is good because it is much easier that way to put a common handler for tuning/pitchbend/portamento in midisyn itself.
Next up, axe most methods nobody implements. Split note-on into two methods, one with a frequency, one with a note number, of which a driver provides one or the other. So far all of the clients delegate voice allocation to midisyn, so clarify that the method is getting an actual voice number for the device and not a MIDI channel. If a device that can do its own allocation is later to be supported, let appropriate different methods be added then.
|
1.12.8.1 |
| 11-Aug-2006 |
yamt | sync with head
|
1.12.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.13.6.2 |
| 10-Dec-2006 |
yamt | sync with head.
|
1.13.6.1 |
| 22-Oct-2006 |
yamt | sync with head
|
1.13.4.1 |
| 18-Nov-2006 |
ad | Sync with head.
|
1.15.28.1 |
| 25-Oct-2007 |
bouyer | Sync with HEAD.
|
1.15.24.3 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.15.24.2 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.15.24.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.15.22.1 |
| 26-Oct-2007 |
joerg | Sync with HEAD.
Follow the merge of pmap.c on i386 and amd64 and move pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup code to restore CR4 before jumping back into kernel space as the large page option might cover that.
|
1.15.8.1 |
| 23-Oct-2007 |
ad | Sync with head.
|
1.16.8.1 |
| 02-Jan-2008 |
bouyer | Sync with HEAD
|
1.16.4.1 |
| 26-Dec-2007 |
ad | Sync with head.
|
1.17.6.2 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.17.6.1 |
| 03-Apr-2008 |
mjf | Sync with HEAD.
|
1.17.2.1 |
| 24-Mar-2008 |
keiichi | sync with head.
|
1.18.4.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.18.4.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.18.2.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.19.14.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.19.12.1 |
| 09-Dec-2008 |
ad | Checkpoint work on MIDI.
|
1.19.8.1 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.23.14.1 |
| 19-Nov-2011 |
jmcneill | port ad-audiomp2 branch changes to 5.99.56 todo: - port ad-audiomp2 pcppi changes - these drivers need to be fixed: - emuxki - gcscaudio - hdafg - uaudio - umidi - MD audio drivers
|
1.23.12.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.24.2.2 |
| 29-Apr-2012 |
mrg | sync to latest -current.
|
1.24.2.1 |
| 05-Apr-2012 |
mrg | sync to latest -current.
|
1.26.44.1 |
| 04-May-2019 |
isaki | Move dev/audio_if.h -> dev/audio/audio_if.h
|
1.26.40.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|