Skip to content

Commit aa7cd73

Browse files
committed
fix loading hotkeys
1 parent f34fa29 commit aa7cd73

File tree

2 files changed

+33
-19
lines changed

2 files changed

+33
-19
lines changed

dynamic-delay.c

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ struct dynamic_delay_info {
2020
obs_hotkey_id backward_slow_hotkey;
2121
obs_hotkey_id backward_fast_hotkey;
2222
obs_hotkey_id pause_hotkey;
23+
bool hotkeys_loaded;
2324
double max_duration;
2425
double speed;
2526
double start_speed;
@@ -90,7 +91,11 @@ static void dynamic_delay_destroy(void *data)
9091
static void dynamic_delay_update(void *data, obs_data_t *settings)
9192
{
9293
struct dynamic_delay_info *d = data;
93-
d->max_duration = obs_data_get_double(settings, S_DURATION);
94+
double duration = obs_data_get_double(settings, S_DURATION);
95+
if (duration < d->max_duration) {
96+
free_textures(d);
97+
}
98+
d->max_duration = duration;
9499
d->easing = obs_data_get_int(settings, S_EASING);
95100
d->easing_max_duration =
96101
(float)obs_data_get_double(settings, S_EASING_DURATION);
@@ -105,7 +110,7 @@ static void dynamic_delay_update(void *data, obs_data_t *settings)
105110
}
106111

107112
void dynamic_delay_skip_begin_hotkey(void *data, obs_hotkey_id id,
108-
obs_hotkey_t *hotkey, bool pressed)
113+
obs_hotkey_t *hotkey, bool pressed)
109114
{
110115
if (!pressed)
111116
return;
@@ -119,7 +124,7 @@ void dynamic_delay_skip_begin_hotkey(void *data, obs_hotkey_id id,
119124
}
120125

121126
void dynamic_delay_skip_end_hotkey(void *data, obs_hotkey_id id,
122-
obs_hotkey_t *hotkey, bool pressed)
127+
obs_hotkey_t *hotkey, bool pressed)
123128
{
124129
if (!pressed)
125130
return;
@@ -166,7 +171,7 @@ void dynamic_delay_fast_forward_hotkey(void *data, obs_hotkey_id id,
166171
}
167172

168173
void dynamic_delay_slow_backward_hotkey(void *data, obs_hotkey_id id,
169-
obs_hotkey_t *hotkey, bool pressed)
174+
obs_hotkey_t *hotkey, bool pressed)
170175
{
171176
if (!pressed)
172177
return;
@@ -177,18 +182,18 @@ void dynamic_delay_slow_backward_hotkey(void *data, obs_hotkey_id id,
177182
}
178183

179184
void dynamic_delay_backward_hotkey(void *data, obs_hotkey_id id,
180-
obs_hotkey_t *hotkey, bool pressed)
185+
obs_hotkey_t *hotkey, bool pressed)
181186
{
182187
if (!pressed)
183188
return;
184189
struct dynamic_delay_info *d = data;
185190
d->start_speed = d->speed;
186-
d->target_speed = 1.0;
191+
d->target_speed = -1.0;
187192
d->easing_started = 0;
188193
}
189194

190195
void dynamic_delay_fast_backward_hotkey(void *data, obs_hotkey_id id,
191-
obs_hotkey_t *hotkey, bool pressed)
196+
obs_hotkey_t *hotkey, bool pressed)
192197
{
193198
if (!pressed)
194199
return;
@@ -199,7 +204,7 @@ void dynamic_delay_fast_backward_hotkey(void *data, obs_hotkey_id id,
199204
}
200205

201206
void dynamic_delay_pause_hotkey(void *data, obs_hotkey_id id,
202-
obs_hotkey_t *hotkey, bool pressed)
207+
obs_hotkey_t *hotkey, bool pressed)
203208
{
204209
if (!pressed)
205210
return;
@@ -209,7 +214,7 @@ void dynamic_delay_pause_hotkey(void *data, obs_hotkey_id id,
209214
d->easing_started = 0;
210215
}
211216

212-
static void dynamic_delay_load(void *data, obs_data_t *settings)
217+
static void dynamic_delay_load_hotkeys(void *data)
213218
{
214219
struct dynamic_delay_info *d = data;
215220
obs_source_t *parent = obs_filter_get_parent(d->source);
@@ -233,16 +238,23 @@ static void dynamic_delay_load(void *data, obs_data_t *settings)
233238
parent, "backward", obs_module_text("Backward"),
234239
dynamic_delay_backward_hotkey, data);
235240
d->backward_slow_hotkey = obs_hotkey_register_source(
236-
parent, "slow_backward", obs_module_text("SlowBackward"),
241+
parent, "slow_backward",
242+
obs_module_text("SlowBackward"),
237243
dynamic_delay_slow_backward_hotkey, data);
238244
d->backward_fast_hotkey = obs_hotkey_register_source(
239-
parent, "fast_backward", obs_module_text("FastBackward"),
245+
parent, "fast_backward",
246+
obs_module_text("FastBackward"),
240247
dynamic_delay_fast_backward_hotkey, data);
241248
d->pause_hotkey = obs_hotkey_register_source(
242-
parent, "pause",
243-
obs_module_text("Pause"),
249+
parent, "pause", obs_module_text("Pause"),
244250
dynamic_delay_pause_hotkey, data);
251+
d->hotkeys_loaded = true;
245252
}
253+
}
254+
255+
static void dynamic_delay_load(void *data, obs_data_t *settings)
256+
{
257+
dynamic_delay_load_hotkeys(data);
246258
dynamic_delay_update(data, settings);
247259
}
248260

@@ -350,7 +362,7 @@ static obs_properties_t *dynamic_delay_properties(void *data)
350362
{
351363
obs_properties_t *ppts = obs_properties_create();
352364
obs_property_t *p = obs_properties_add_float(
353-
ppts, S_DURATION, obs_module_text("Duration"), 0.0, 1000, 1.0);
365+
ppts, S_DURATION, obs_module_text("Duration"), 0.0, 100.0, 1.0);
354366
obs_property_float_set_suffix(p, "s");
355367

356368
p = obs_properties_add_list(ppts, S_EASING, obs_module_text("Easing"),
@@ -383,7 +395,7 @@ static obs_properties_t *dynamic_delay_properties(void *data)
383395

384396
p = obs_properties_add_float(ppts, S_EASING_DURATION,
385397
obs_module_text("EasingDuration"), 0.0,
386-
100, 1.0);
398+
10.0, 1.0);
387399
obs_property_float_set_suffix(p, "s");
388400

389401
p = obs_properties_add_float_slider(ppts, S_SLOW_FORWARD,
@@ -445,6 +457,8 @@ static inline void check_size(struct dynamic_delay_info *d)
445457
static void dynamic_delay_tick(void *data, float t)
446458
{
447459
struct dynamic_delay_info *d = data;
460+
if (!d->hotkeys_loaded)
461+
dynamic_delay_load_hotkeys(data);
448462
d->processed_frame = false;
449463
if (d->speed != d->target_speed) {
450464
const uint64_t ts = obs_get_video_frame_time();

dynamic-delay.rc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
1 VERSIONINFO
2-
FILEVERSION 0,0,1,0
3-
PRODUCTVERSION 0,0,1,0
2+
FILEVERSION 0,0,2,0
3+
PRODUCTVERSION 0,0,2,0
44
FILEFLAGSMASK 0x0L
55
#ifdef _DEBUG
66
FILEFLAGS 0x1L
@@ -17,12 +17,12 @@ BEGIN
1717
BEGIN
1818
VALUE "CompanyName", "Exeldro"
1919
VALUE "FileDescription", "Dynamic Delay"
20-
VALUE "FileVersion", "0.0.1"
20+
VALUE "FileVersion", "0.0.2"
2121
VALUE "InternalName", "dynamic-delay"
2222
VALUE "LegalCopyright", "(C) Exeldro"
2323
VALUE "OriginalFilename", "dynamic-delay"
2424
VALUE "ProductName", "Dynamic Delay"
25-
VALUE "ProductVersion", "0.0.1"
25+
VALUE "ProductVersion", "0.0.2"
2626
END
2727
END
2828
BLOCK "VarFileInfo"

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy