diff --git a/CHANGES.rst b/CHANGES.rst index 80530fbcda..644e475819 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -17,6 +17,8 @@ New Features Cubeviz ^^^^^^^ +- Enhancements for the cube sonification plugin. [#3387] + Imviz ^^^^^ diff --git a/jdaviz/configs/cubeviz/plugins/sonify_data/sonify_data.py b/jdaviz/configs/cubeviz/plugins/sonify_data/sonify_data.py index 2c14c1479b..c212b1d25f 100644 --- a/jdaviz/configs/cubeviz/plugins/sonify_data/sonify_data.py +++ b/jdaviz/configs/cubeviz/plugins/sonify_data/sonify_data.py @@ -66,10 +66,8 @@ def __init__(self, *args, **kwargs): ' works on devices with valid sound output.') else: - devices, indexes = self.build_device_lists() - self.sound_device_indexes = dict(zip(devices, indexes)) - self.sound_devices_items = devices - self.sound_devices_selected = dict(zip(indexes, devices))[sd.default.device[1]] + self.sound_device_indexes = None + self.refresh_device_list() # TODO: Remove hardcoded range and flux viewer self.spec_viewer = self.app.get_viewer('spectrum-viewer') @@ -118,6 +116,15 @@ def update_sound_device(self, event): didx = dict(zip(*self.build_device_lists()))[event['new']] self.flux_viewer.update_sound_device(didx) + def refresh_device_list(self): + devices, indexes = self.build_device_lists() + self.sound_device_indexes = dict(zip(devices, indexes)) + self.sound_devices_items = devices + self.sound_devices_selected = dict(zip(indexes, devices))[sd.default.device[1]] + + def vue_refresh_device_list_in_dropdown(self, *args): + self.refresh_device_list() + def build_device_lists(self): # dedicated function to build the current *output* # device and index lists diff --git a/jdaviz/configs/cubeviz/plugins/sonify_data/sonify_data.vue b/jdaviz/configs/cubeviz/plugins/sonify_data/sonify_data.vue index 6443eedde0..7e08733c3e 100644 --- a/jdaviz/configs/cubeviz/plugins/sonify_data/sonify_data.vue +++ b/jdaviz/configs/cubeviz/plugins/sonify_data/sonify_data.vue @@ -132,6 +132,11 @@ > Stop stream + + Refresh Device List +