diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2001-05-03 23:48:06 +0000 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2001-05-03 23:48:06 +0000 |
commit | fd742ee1c757c436a3c6018576251e74c096e7e0 (patch) | |
tree | 593a23d173f6bbeda23747d319c745c962a1a020 /mixlib/mix_vm.c | |
parent | cc232117b722d2e1c2f347183e00ff174e7e7eaa (diff) | |
download | mdk-fd742ee1c757c436a3c6018576251e74c096e7e0.tar.gz mdk-fd742ee1c757c436a3c6018576251e74c096e7e0.tar.bz2 |
new devices are created by a (possibly externally provided) factory
Diffstat (limited to 'mixlib/mix_vm.c')
-rw-r--r-- | mixlib/mix_vm.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/mixlib/mix_vm.c b/mixlib/mix_vm.c index 9a39247..39b3e6f 100644 --- a/mixlib/mix_vm.c +++ b/mixlib/mix_vm.c @@ -76,8 +76,10 @@ mix_vm_new (void) vm->devices[i] = NULL; vm->clock = mix_vm_clock_new (); + vm->factory = mix_device_new; vm_reset_ (vm); + return vm; } @@ -116,6 +118,15 @@ mix_vm_connect_device (mix_vm_t *vm, mix_device_t *device) return old; } +/* install a device factory for automatic connection */ +void +mix_vm_set_device_factory (mix_vm_t *vm, mix_device_factory_t factory) +{ + g_return_if_fail (vm != NULL); + g_return_if_fail (factory != NULL); + vm->factory = factory; +} + /* Reset a vm (set state as of a newly created one) */ void mix_vm_reset (mix_vm_t * vm) |