mirror of
https://github.com/mpv-player/mpv
synced 2025-01-03 05:22:23 +00:00
input: remove some unneeded things
Wakeup FDs are not needed anymore (this code exists only for libwaio usage by now), and 2 other functions can be made private.
This commit is contained in:
parent
51654d2ad5
commit
39a339c813
@ -1331,7 +1331,6 @@ void mp_input_run_cmd(struct input_ctx *ictx, const char **cmd)
|
|||||||
struct mp_input_src_internal {
|
struct mp_input_src_internal {
|
||||||
pthread_t thread;
|
pthread_t thread;
|
||||||
bool thread_running;
|
bool thread_running;
|
||||||
int wakeup[2];
|
|
||||||
bool init_done;
|
bool init_done;
|
||||||
|
|
||||||
char *cmd_buffer;
|
char *cmd_buffer;
|
||||||
@ -1339,7 +1338,7 @@ struct mp_input_src_internal {
|
|||||||
bool drop;
|
bool drop;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mp_input_src *mp_input_add_src(struct input_ctx *ictx)
|
static struct mp_input_src *mp_input_add_src(struct input_ctx *ictx)
|
||||||
{
|
{
|
||||||
input_lock(ictx);
|
input_lock(ictx);
|
||||||
if (ictx->num_sources == MP_MAX_SOURCES) {
|
if (ictx->num_sources == MP_MAX_SOURCES) {
|
||||||
@ -1354,10 +1353,7 @@ struct mp_input_src *mp_input_add_src(struct input_ctx *ictx)
|
|||||||
.global = ictx->global,
|
.global = ictx->global,
|
||||||
.log = mp_log_new(src, ictx->log, name),
|
.log = mp_log_new(src, ictx->log, name),
|
||||||
.input_ctx = ictx,
|
.input_ctx = ictx,
|
||||||
.in = talloc(src, struct mp_input_src_internal),
|
.in = talloc_zero(src, struct mp_input_src_internal),
|
||||||
};
|
|
||||||
*src->in = (struct mp_input_src_internal){
|
|
||||||
.wakeup = {-1, -1},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ictx->sources[ictx->num_sources++] = src;
|
ictx->sources[ictx->num_sources++] = src;
|
||||||
@ -1366,6 +1362,8 @@ struct mp_input_src *mp_input_add_src(struct input_ctx *ictx)
|
|||||||
return src;
|
return src;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void mp_input_src_kill(struct mp_input_src *src);
|
||||||
|
|
||||||
static void close_input_sources(struct input_ctx *ictx)
|
static void close_input_sources(struct input_ctx *ictx)
|
||||||
{
|
{
|
||||||
// To avoid lock-order issues, we first remove each source from the context,
|
// To avoid lock-order issues, we first remove each source from the context,
|
||||||
@ -1380,7 +1378,7 @@ static void close_input_sources(struct input_ctx *ictx)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void mp_input_src_kill(struct mp_input_src *src)
|
static void mp_input_src_kill(struct mp_input_src *src)
|
||||||
{
|
{
|
||||||
if (!src)
|
if (!src)
|
||||||
return;
|
return;
|
||||||
@ -1390,7 +1388,6 @@ void mp_input_src_kill(struct mp_input_src *src)
|
|||||||
if (ictx->sources[n] == src) {
|
if (ictx->sources[n] == src) {
|
||||||
MP_TARRAY_REMOVE_AT(ictx->sources, ictx->num_sources, n);
|
MP_TARRAY_REMOVE_AT(ictx->sources, ictx->num_sources, n);
|
||||||
input_unlock(ictx);
|
input_unlock(ictx);
|
||||||
write(src->in->wakeup[1], &(char){0}, 1);
|
|
||||||
if (src->cancel)
|
if (src->cancel)
|
||||||
src->cancel(src);
|
src->cancel(src);
|
||||||
if (src->in->thread_running)
|
if (src->in->thread_running)
|
||||||
@ -1439,14 +1436,6 @@ int mp_input_add_thread_src(struct input_ctx *ictx, void *ctx,
|
|||||||
if (!src)
|
if (!src)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#ifndef __MINGW32__
|
|
||||||
// Always create for convenience.
|
|
||||||
if (mp_make_wakeup_pipe(src->in->wakeup) < 0) {
|
|
||||||
mp_input_src_kill(src);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void *args[] = {src, loop_fn, ctx};
|
void *args[] = {src, loop_fn, ctx};
|
||||||
if (pthread_create(&src->in->thread, NULL, input_src_thread, args)) {
|
if (pthread_create(&src->in->thread, NULL, input_src_thread, args)) {
|
||||||
mp_input_src_kill(src);
|
mp_input_src_kill(src);
|
||||||
@ -1459,11 +1448,6 @@ int mp_input_add_thread_src(struct input_ctx *ictx, void *ctx,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mp_input_src_get_wakeup_fd(struct mp_input_src *src)
|
|
||||||
{
|
|
||||||
return src->in->wakeup[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
#define CMD_BUFFER (4 * 4096)
|
#define CMD_BUFFER (4 * 4096)
|
||||||
|
|
||||||
void mp_input_src_feed_cmd_text(struct mp_input_src *src, char *buf, size_t len)
|
void mp_input_src_feed_cmd_text(struct mp_input_src *src, char *buf, size_t len)
|
||||||
|
@ -106,11 +106,6 @@ struct mp_input_src {
|
|||||||
void *priv;
|
void *priv;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Add a new input source. The input code can create a new thread, which feeds
|
|
||||||
// keys or commands to input_ctx. mp_input_src.uninit must be set.
|
|
||||||
// mp_input_src_kill() must not be called by anything after init.
|
|
||||||
struct mp_input_src *mp_input_add_src(struct input_ctx *ictx);
|
|
||||||
|
|
||||||
// Add an input source that runs on a thread. The source is automatically
|
// Add an input source that runs on a thread. The source is automatically
|
||||||
// removed if the thread loop exits.
|
// removed if the thread loop exits.
|
||||||
// ctx: this is passed to loop_fn.
|
// ctx: this is passed to loop_fn.
|
||||||
@ -129,14 +124,6 @@ int mp_input_add_thread_src(struct input_ctx *ictx, void *ctx,
|
|||||||
// Set src->cancel and src->uninit (if needed) before calling this.
|
// Set src->cancel and src->uninit (if needed) before calling this.
|
||||||
void mp_input_src_init_done(struct mp_input_src *src);
|
void mp_input_src_init_done(struct mp_input_src *src);
|
||||||
|
|
||||||
// Currently only with mp_input_add_thread_src().
|
|
||||||
int mp_input_src_get_wakeup_fd(struct mp_input_src *src);
|
|
||||||
|
|
||||||
// Remove and free the source. You can call this only while the input_ctx
|
|
||||||
// exists; otherwise there would be a race condition when another thread
|
|
||||||
// destroys input_ctx.
|
|
||||||
void mp_input_src_kill(struct mp_input_src *src);
|
|
||||||
|
|
||||||
// Feed text data, which will be split into lines of commands.
|
// Feed text data, which will be split into lines of commands.
|
||||||
void mp_input_src_feed_cmd_text(struct mp_input_src *src, char *buf, size_t len);
|
void mp_input_src_feed_cmd_text(struct mp_input_src *src, char *buf, size_t len);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user