1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
/*
* Purpose: Various global services for OSS.
*
* This source file contains some initialization and cleanup code
* that is called by the OS modules for all operating systems.
*/
/*
*
* This file is part of Open Sound System.
*
* Copyright (C) 4Front Technologies 1996-2008.
*
* This this source file is released under GPL v2 license (no other versions).
* See the COPYING file included in the main directory of this source
* distribution for the license terms and conditions.
*
*/
#include <oss_config.h>
#include "midi_core.h"
#ifdef DO_TIMINGS
extern oss_mutex_t oss_timing_mutex;
#endif
oss_history_t oss_history[OSS_HISTORY_SIZE] = { {0} };
int oss_history_p = 0;
int oss_num_cdevs = 0;
oss_cdev_t **oss_cdevs = NULL;
int oss_max_cdevs = 0;
static int drivers_loaded = 0;
void
oss_unload_drivers (void)
{
if (!drivers_loaded)
return;
drivers_loaded = 0;
#ifdef CONFIG_OSS_VMIX
vmix_core_uninit ();
#endif
oss_audio_uninit ();
/* oss_midi_uninit(); *//* TODO: This causes crashes */
#ifdef DO_TIMINGS
MUTEX_CLEANUP (oss_timing_mutex);
#endif
/*
* Release all global memory
*/
oss_memblk_unalloc(&oss_global_memblk);
}
/*ARGSUSED*/
void
create_new_card (char *shortname, char *longname)
{
}
void
oss_common_init (oss_device_t * osdev)
{
if (drivers_loaded)
return;
#ifdef DO_TIMINGS
MUTEX_INIT (osdev, oss_timing_mutex, MH_TOP);
#endif
drivers_loaded = 1;
oss_audio_init (osdev);
install_sndstat (osdev);
install_vdsp (osdev);
oss_midi_init (osdev);
install_vmidi (osdev);
install_dev_mixer (osdev);
#ifdef CONFIG_OSS_VMIX
vmix_core_init (osdev);
#endif
}
|