Mercurial > mplayer.hg
changeset 14292:12239a0d5408
Make af_control_any_rev return the matching filter
author | reimar |
---|---|
date | Sat, 01 Jan 2005 18:46:56 +0000 |
parents | f4b8d6abce22 |
children | eadb2d8d5232 |
files | libaf/af.c libaf/af.h |
diffstat | 2 files changed, 12 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/libaf/af.c Sat Jan 01 14:45:11 2005 +0000 +++ b/libaf/af.c Sat Jan 01 18:46:56 2005 +0000 @@ -615,16 +615,21 @@ return AF_OK; } -// send control to all filters, starting with the last until -// one responds with AF_OK -int af_control_any_rev (af_stream_t* s, int cmd, void* arg) { +/** + * \brief send control to all filters, starting with the last, until + * one responds with AF_OK + * \return The instance that accepted the command or NULL if none did. + */ +af_instance_t *af_control_any_rev (af_stream_t* s, int cmd, void* arg) { int res = AF_UNKNOWN; af_instance_t* filt = s->last; - while (filt && res != AF_OK) { + while (filt) { res = filt->control(filt, cmd, arg); + if (res == AF_OK) + return filt; filt = filt->prev; } - return (res == AF_OK); + return NULL; } void af_help (void) {
--- a/libaf/af.h Sat Jan 01 14:45:11 2005 +0000 +++ b/libaf/af.h Sat Jan 01 18:46:56 2005 +0000 @@ -153,8 +153,8 @@ // send control to all filters, starting with the last until // one accepts the command with AF_OK. -// Returns true if accepting filter was found. -int af_control_any_rev (af_stream_t* s, int cmd, void* arg); +// Returns the accepting filter or NULL if none was found. +af_instance_t *af_control_any_rev (af_stream_t* s, int cmd, void* arg); /* Calculate how long the output from the filters will be given the input length "len". The calculated length is >= the actual