Commit Graph

49 Commits

Author SHA1 Message Date
Volker Ruppert
5385b2b98b Some textconfig related changes.
- Removed unused method bx_list_c::text_print().
- Fixed default prompt in bx_param_enum_c::text_ask().
- speaker.cc: fixed a typo in ask format.
2021-03-14 09:52:15 +00:00
Volker Ruppert
4dd5816108 Some changes in the Bochs plugins code.
- Changed variable type of the plugin_t "type" member from enum to Bit16u.
- Added support for returning device flags with the new mode PLUGIN_FLAGS in
  the plugin entry functions. It is currently only used for devices that can
  be connected to a PCI slot.
- Code cleanup in core device plugins: checking type no longer necessary.
- The "non-plugin" mode now also uses the "loadtype" member of plugin_t.

TODO: Change PCI slot options to bx_param_enum_c and build the choices list
using the new capabilities of the plugin API.
2021-02-26 20:37:49 +00:00
Volker Ruppert
0d425037df Improved plugin type detection at Bochs startup.
- Added special mode to all plugin entry functions that returns the plugin type.
- The plugins search function now temporarily loads all available plugins and
  reads the plugin type using the new mode PLUGIN_PROBE.
- Added "loadtype" to the plugin structure to store the type used for plugin
  loading (currently only the voodoo plugin provides two types).
2021-02-07 16:16:06 +00:00
Volker Ruppert
6ad19a7716 Rewrite of the sound driver handling similar to the hdimage and networking
module code. Sound driver names are now stored as string constants instead
of hardcoded values. Available modules are detected at Bochs startup and stored
in a string array before initializing options. In the plugins case available
modules are read from the plugins list. If plugins are off, the registry of
bx_sound_lowlevel_c is used. Related changes similar to the hdimage and
network modifications.
2021-02-06 16:51:55 +00:00
Volker Ruppert
f9dfaf1cca Changed bx_bool to bool type in iodev.h and affected code. 2021-01-31 08:22:55 +00:00
Volker Ruppert
8db0a2b001 Replaced the plugin init / fini functions with one single function called
plugin_entry(). The additional boolean argument "init" is used to select the
requested action. The entry points still have unique names for compatibility
with the "non-plugin" compilation. Added macros for setting up these names
(e.g. PLUGIN_ENTRY_FOR_MODULE for device plugins).
2021-01-23 12:06:11 +00:00
Volker Ruppert
650d8d919a Enable the new speaker volume control for the lowlevel sound support only. 2020-07-08 21:31:49 +00:00
Volker Ruppert
cb57b632b0 Added PC speaker volume control for the lowlevel sound support. 2020-06-21 09:08:05 +00:00
Volker Ruppert
fb60e24859 Fixed compilation error in case the lowlevel sound interface is not present. 2018-05-19 08:07:20 +00:00
Volker Ruppert
c10e8feea6 Added support for driving the speaker line directly with the speaker gate, but
the square wave generator disabled. This feature has been used by old demos and
games to play digitized sound before soundcards with DSP became popular.
2018-05-10 10:50:42 +00:00
Volker Ruppert
de30601ca6 Fixed possible FPE at high speaker frequencies (beep_samples == 0). 2018-01-18 19:00:57 +00:00
Volker Ruppert
5c5fd2c97c Fixed segfault when disabling speaker plugin. 2018-01-16 16:55:39 +00:00
Volker Ruppert
b61b9d255a Moved all Bochs multi-threading definitions from bochs.h and osdep.h to a new
file called "bxthread.h".
2017-09-10 15:55:13 +00:00
Volker Ruppert
458f747b48 Removed unused argc and argv parameters from plugin init functions. 2017-01-28 09:52:09 +00:00
Volker Ruppert
8bf10dc15c Fixed compilation error caused by #endif location. 2015-03-16 18:28:29 +00:00
Volker Ruppert
7c351a16dc Cleaned up speaker output mode handling (no functional changes). 2015-03-15 06:58:59 +00:00
Volker Ruppert
327f987a18 Added the capability to set up the sound driver per service. The global
sound option for setting up one driver for all services is still available.
2015-03-06 22:54:30 +00:00
Volker Ruppert
b1e8a6369c Some work on the sound module handling and the SB16 midi file output.
- Added the capability to load up to 4 sound drivers and added methods to
  get pointers to the waveout, wavein and midiout services of a driver.
- Rewrite of the SB16 midi file output code. In midimode 2 and 3 the midiout
  service of the 'file' driver is used. Removed obsolete midi file handling.
- Re-implemented the closemidioutput() method to make runtime changes of the
  midi setup work with the new code.
2015-02-17 18:28:25 +00:00
Volker Ruppert
f19e91e2f5 Moved speaker beep generator to the speaker code. 2015-02-16 08:48:11 +00:00
Stanislav Shwartsman
055da948a0 fixed problems found by cppcheck tool (patch by Maxim Derbasov) - second round 2015-01-07 16:17:40 +00:00
Volker Ruppert
773ac518b3 Fixed broken MSVC plugins support (many CDECL additions required)
TODO: check for remaining CDECL issues (hdimage mode 'dll') and update project files
2014-06-08 08:40:08 +00:00
Volker Ruppert
443f04703c Added / modified device log prefixes 2013-12-29 12:56:52 +00:00
Volker Ruppert
192aa1f369 Added global sound control option in bochsrc and config interface
- added 'sound' option to select the driver and the wave output device
  (see bochsrc sample for details)
- the wave device option of sb16 and es1370 is now only used to set up the
  wave input device (if necessary)
- cleaned up the speaker code to initialize the 'sound' case correctly
2013-06-24 19:19:12 +00:00
Volker Ruppert
c3740c0e6e Added new bochsrc option to control the speaker output mode. The choices 'sound'
(lowlevel sound output), 'system' (system beep on Linux and Windows) and 'gui'
(forward beep to related gui methods) are available.
2013-06-16 18:52:34 +00:00
Volker Ruppert
50190829e9 Some PC speaker output fixes
- change beep frequency only if the new counter value is completely written
- turn off beep on exit
2013-06-14 19:08:51 +00:00
Volker Ruppert
c5ca69da5e Added support for changing speaker frequency while output is enabled 2013-06-11 21:04:07 +00:00
Volker Ruppert
5c0bd188ed - check the beep output interface and report the one to be used in the reset()
method. This makes sure that the lowlevel sound interface is reported correctly.
2012-05-24 18:06:40 +00:00
Stanislav Shwartsman
eac0991fe1 fixed compilation err with lowlevel sound disabled 2012-05-20 18:58:08 +00:00
Volker Ruppert
d6e7be922b - prepared pc speaker beep support in the lowlevel sound module
- sound devices: moved wave output init to the init() method (required for
  beep support)
- TODO: implement beep using a separete thread
2012-05-20 14:19:49 +00:00
Volker Ruppert
223fe998b3 - code for setting up log actions by device rewritten
- unknown module names now cause a panic
- added log function names to some more devices
- TODO: find a way to configure log actions by device in the config interface
  start menu (most of the devices do not exist at this point)
2011-12-30 11:13:37 +00:00
Volker Ruppert
0de2516d05 - fixes to avoid crash after unloading plugins before simulation
- small cleanups
2011-12-26 20:32:56 +00:00
Stanislav Shwartsman
00981cd7a6 Adding Id and Rev property to all files 2011-02-24 22:05:47 +00:00
Volker Ruppert
44ece7cf26 - including vga.h in iodev.h no longer necessary and symbol NO_DEVICE_INCLUDES
is useless then
- updated makefile dependenies
2011-01-24 20:35:51 +00:00
Stanislav Shwartsman
55ee809cf7 fix warning 2010-02-08 14:53:31 +00:00
Volker Ruppert
e4f0de41e3 - simplified setting device prefix for log functions
- implemented unique device prefix for lowlevel cdrom
- minor device prefix changes
- minor coding style changes in cdrom.cc
2009-04-10 08:15:25 +00:00
Volker Ruppert
e5eac65b59 - removed wrong character from FSF address (converted invisible and useless
2-byte character)
- updated FSF address in some files
- added license to some files
2009-02-08 09:05:52 +00:00
Stanislav Shwartsman
dd03e043a3 Updated FSF address 2009-02-07 21:05:31 +00:00
Volker Ruppert
501952efdd - removed unused logfunctions member 'type' and related method 'settype()'
- updated FSF address in copyright
2009-01-10 11:30:20 +00:00
Stanislav Shwartsman
ae35b0276e white space cleanups and coding style changes 2008-01-26 22:24:03 +00:00
Volker Ruppert
190b9391cf - delete the device object in the plugin_fini() function of each plugin device
(TODO: find a way to call plugin_fini() for non-core devices if plugins are
   disabled)
- set the device pointers back to stubs after unloading plugins
- added debug message "Exit" in all device plugin destructors
2006-09-10 17:18:44 +00:00
Volker Ruppert
f3046ae0cd - moved OSX beep implementation to the carbon gui code
- improved carbon notify callback similar to the x11 implementation
2006-08-03 16:01:23 +00:00
Volker Ruppert
83a799bca8 - don't include the device headers in networking/sound lowlevel code, virtual
and slowdown timers, hdimage and vmware3 code
- updated makefile dependencies
2005-12-10 18:37:35 +00:00
Volker Ruppert
c755483e23 - added simple speaker support for OS X using the default system beep
(patch by brianonn@telus.net)
2005-07-27 19:17:29 +00:00
Volker Ruppert
16f6ce5e97 - missing return value added 2005-02-12 08:59:47 +00:00
Volker Ruppert
3cee8f0ef5 - more accurate speaker output using a separate thread. This is necessary since
Beep() does not return before the speaker is turned off.
2005-02-09 18:25:57 +00:00
Volker Ruppert
7a35a36390 - pc speaker output for win32 added 2005-01-29 12:08:31 +00:00
Volker Ruppert
8d585dc813 - removed lowlevel includes from iodev.h and device headers to reduce dependencies
- fixed some warnings
2004-09-05 10:30:19 +00:00
Stanislav Shwartsman
5873b26a82 Speed up compilation process.
bochs.h already not include iodev.h which reduces compilation dependences for almost all cpu and fpu files, now cpu files will not be recompiled if iodev includes was changed
2004-06-19 15:20:15 +00:00
Christophe Bothamy
d6fb513243 - changed "console" to "speaker". Speaker can be compiled as plugin.
speaker calls corresponding beeper methods in gui.
2004-02-01 23:42:04 +00:00