|
| 1 | +import obspython as obs |
| 2 | +import debugpy |
| 3 | + |
| 4 | + |
| 5 | +class Hotkey: |
| 6 | + def __init__(self, callback, obs_settings, _id): |
| 7 | + self.obs_data = obs_settings |
| 8 | + self.hotkey_id = obs.OBS_INVALID_HOTKEY_ID |
| 9 | + self.hotkey_saved_key = None |
| 10 | + self.callback = callback |
| 11 | + self._id = _id |
| 12 | + |
| 13 | + self.load_hotkey() |
| 14 | + self.register_hotkey() |
| 15 | + self.save_hotkey() |
| 16 | + |
| 17 | + def register_hotkey(self): |
| 18 | + description = "Htk " + str(self._id) |
| 19 | + self.hotkey_id = obs.obs_hotkey_register_frontend( |
| 20 | + "htk_id" + str(self._id), description, self.callback |
| 21 | + ) |
| 22 | + obs.obs_hotkey_load(self.hotkey_id, self.hotkey_saved_key) |
| 23 | + |
| 24 | + def load_hotkey(self): |
| 25 | + self.hotkey_saved_key = obs.obs_data_get_array( |
| 26 | + self.obs_data, "htk_id" + str(self._id) |
| 27 | + ) |
| 28 | + obs.obs_data_array_release(self.hotkey_saved_key) |
| 29 | + |
| 30 | + def save_hotkey(self): |
| 31 | + self.hotkey_saved_key = obs.obs_hotkey_save(self.hotkey_id) |
| 32 | + obs.obs_data_set_array( |
| 33 | + self.obs_data, "htk_id" + str(self._id), self.hotkey_saved_key |
| 34 | + ) |
| 35 | + obs.obs_data_array_release(self.hotkey_saved_key) |
| 36 | + |
| 37 | + |
| 38 | +class h: |
| 39 | + htk_copy = None # this attribute will hold instance of Hotkey |
| 40 | + |
| 41 | + |
| 42 | +def cb1(pressed): |
| 43 | + debugpy.breakpoint() |
| 44 | + if pressed: |
| 45 | + print("callback1: " + e1.txt) |
| 46 | + |
| 47 | + |
| 48 | +class e: |
| 49 | + txt = "default txt" |
| 50 | + |
| 51 | + |
| 52 | +e1 = e() |
| 53 | +h1 = h() |
| 54 | + |
| 55 | + |
| 56 | +def script_properties(): |
| 57 | + props = obs.obs_properties_create() |
| 58 | + obs.obs_properties_add_text(props, "_text1", "_text1:", obs.OBS_TEXT_DEFAULT) |
| 59 | + return props |
| 60 | + |
| 61 | + |
| 62 | +def script_update(settings): |
| 63 | + _text1 = obs.obs_data_get_string(settings, "_text1") |
| 64 | + e1.txt = _text1 |
| 65 | + |
| 66 | + |
| 67 | +def script_load(settings): |
| 68 | + h1.htk_copy = Hotkey(cb1, settings, "h1_id") |
| 69 | + |
| 70 | + |
| 71 | +def script_save(settings): |
| 72 | + h1.htk_copy.save_hotkey() |
0 commit comments