summaryrefslogtreecommitdiffstats
path: root/stream/stream.c
diff options
context:
space:
mode:
authorUoti Urpala <uau@symbol.nonexistent.invalid>2008-04-30 07:15:52 +0300
committerUoti Urpala <uau@symbol.nonexistent.invalid>2008-04-30 13:24:54 +0300
commit9e9932d4d79fee2cd03ea8b88ee7281a7858837f (patch)
treeee2ec3b7e1b6f00c4e0518668fbbc2e020265475 /stream/stream.c
parent56fec4dfdca623c36d29ed7cb30e7637d99fb942 (diff)
downloadmpv-9e9932d4d79fee2cd03ea8b88ee7281a7858837f.tar.bz2
mpv-9e9932d4d79fee2cd03ea8b88ee7281a7858837f.tar.xz
Create a context for input.c state
Start moving static variables to a context struct. Only autorepeat state is moved to the struct in this commit. mp_input_check_interrupt now requires the context variable. Change stream functions to pass it. It's still stored in a static variable in stream/.
Diffstat (limited to 'stream/stream.c')
-rw-r--r--stream/stream.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/stream/stream.c b/stream/stream.c
index ded692eca0..e24237fa1d 100644
--- a/stream/stream.c
+++ b/stream/stream.c
@@ -34,7 +34,9 @@
//#include "vcd_read_bincue.h"
-static int (*stream_check_interrupt_cb)(int time) = NULL;
+struct input_ctx;
+static int (*stream_check_interrupt_cb)(struct input_ctx *ctx, int time);
+static struct input_ctx *stream_check_interrupt_ctx;
extern const stream_info_t stream_info_vcd;
extern const stream_info_t stream_info_cdda;
@@ -454,11 +456,14 @@ stream_t* new_ds_stream(demux_stream_t *ds) {
return s;
}
-void stream_set_interrupt_callback(int (*cb)(int)) {
+void stream_set_interrupt_callback(int (*cb)(struct input_ctx *, int),
+ struct input_ctx *ctx)
+{
stream_check_interrupt_cb = cb;
+ stream_check_interrupt_ctx = ctx;
}
int stream_check_interrupt(int time) {
if(!stream_check_interrupt_cb) return 0;
- return stream_check_interrupt_cb(time);
+ return stream_check_interrupt_cb(stream_check_interrupt_ctx, time);
}