@@ -37,12 +37,23 @@ static void devio_destroy(void* data)
3737 delete adio;
3838}
3939
40+ static void load (void * data, obs_data_t * settings)
41+ {
42+ auto * adio = (struct adio_data *)data;
43+ std::string s;
44+ const char * chunkData = obs_data_get_string (settings, FILTER_ID);
45+ s = chunkData;
46+ adio->deviceIo .setState (s);
47+ }
48+
4049static void devio_update (void * data, obs_data_t * s)
4150{
4251 struct adio_data * adio = (struct adio_data *)data;
4352 auto mix = obs_data_get_bool (s, S_MIX_INPUT);
4453 adio->mixInput .store (mix);
4554 adio->channels = (int )audio_output_get_channels (obs_get_audio ());
55+
56+ load (data, s);
4657}
4758
4859static void * devio_create (obs_data_t * settings, obs_source_t * filter)
@@ -135,15 +146,6 @@ static void save(void* data, obs_data_t* settings)
135146 obs_data_set_string (settings, FILTER_ID, s.c_str ());
136147}
137148
138- static void load (void * data, obs_data_t * settings)
139- {
140- auto * adio = (struct adio_data *)data;
141- std::string s;
142- const char * chunkData = obs_data_get_string (settings, FILTER_ID);
143- s = chunkData;
144- adio->deviceIo .setState (s);
145- }
146-
147149struct obs_source_info device_io_filter = {
148150 .id = FILTER_ID,
149151 .type = OBS_SOURCE_TYPE_FILTER,
@@ -156,5 +158,5 @@ struct obs_source_info device_io_filter = {
156158 .update = devio_update,
157159 .filter_audio = devio_filter,
158160 .save = save,
159- .load = load,
161+ // .load = load,
160162};
0 commit comments