mirror of
https://github.com/mpv-player/mpv
synced 2025-04-11 04:01:31 +00:00
client API: rename mpv_destroy() to mpv_detach_destroy()
A bit verbose, but less misleading. In most cases, the API user probably actually wants mpv_terminate_destroy() instead, so the less-useful function shouldn't have a simnpler name anyway.
This commit is contained in:
parent
0b9468f65f
commit
fca608ccb9
@ -39,6 +39,6 @@ int main(int argc, char *argv[])
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
mpv_destroy(ctx);
|
mpv_terminate_destroy(ctx);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -252,8 +252,8 @@ void mpv_free(void *data);
|
|||||||
* Return the name of this client handle. Every client has its own unique
|
* Return the name of this client handle. Every client has its own unique
|
||||||
* name, which is mostly used for user interface purposes.
|
* name, which is mostly used for user interface purposes.
|
||||||
*
|
*
|
||||||
* @return The client name. The string is read-only and is valid until
|
* @return The client name. The string is read-only and is valid until the
|
||||||
* mpv_destroy() is called.
|
* mpv_handle is destroyed.
|
||||||
*/
|
*/
|
||||||
const char *mpv_client_name(mpv_handle *ctx);
|
const char *mpv_client_name(mpv_handle *ctx);
|
||||||
|
|
||||||
@ -313,27 +313,27 @@ mpv_handle *mpv_create(void);
|
|||||||
int mpv_initialize(mpv_handle *ctx);
|
int mpv_initialize(mpv_handle *ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Disconnect and destroy the client context. ctx will be deallocated with this
|
* Disconnect and destroy the mpv_handle. ctx will be deallocated with this
|
||||||
* API call. This leaves the player running. If you want to be sure that the
|
* API call. This leaves the player running. If you want to be sure that the
|
||||||
* player is terminated, send a "quit" command, and wait until the
|
* player is terminated, send a "quit" command, and wait until the
|
||||||
* MPV_EVENT_SHUTDOWN event is received, or use mpv_terminate_destroy().
|
* MPV_EVENT_SHUTDOWN event is received, or use mpv_terminate_destroy().
|
||||||
*/
|
*/
|
||||||
void mpv_destroy(mpv_handle *ctx);
|
void mpv_detach_destroy(mpv_handle *ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Similar to mpv_destroy(), but brings the player and all clients down as well,
|
* Similar to mpv_detach_destroy(), but brings the player and all clients down
|
||||||
* and waits until all of them are destroyed. This function blocks. The
|
* as well, and waits until all of them are destroyed. This function blocks. The
|
||||||
* advantage over mpv_destroy() is that while mpv_destroy() merely detaches
|
* advantage over mpv_detach_destroy() is that while mpv_detach_destroy() merely
|
||||||
* the client handle from the player, this function quits the player, waits
|
* detaches the client handle from the player, this function quits the player,
|
||||||
* until all other clients are destroyed (i.e. all mpv_handles are detached),
|
* waits until all other clients are destroyed (i.e. all mpv_handles are
|
||||||
* and also waits for the final termination of the player.
|
* detached), and also waits for the final termination of the player.
|
||||||
*
|
*
|
||||||
* Since mpv_destroy() is called somewhere on the way, it's not safe to call
|
* Since mpv_detach_destroy() is called somewhere on the way, it's not safe to
|
||||||
* other functions concurrently on the same context.
|
* call other functions concurrently on the same context.
|
||||||
*
|
*
|
||||||
* If this is called on a mpv_handle that was not created with mpv_create(),
|
* If this is called on a mpv_handle that was not created with mpv_create(),
|
||||||
* this function will merely send a quit command and then call mpv_destroy(),
|
* this function will merely send a quit command and then call
|
||||||
* without waiting for the actual shutdown.
|
* mpv_detach_destroy(), without waiting for the actual shutdown.
|
||||||
*/
|
*/
|
||||||
void mpv_terminate_destroy(mpv_handle *ctx);
|
void mpv_terminate_destroy(mpv_handle *ctx);
|
||||||
|
|
||||||
@ -836,7 +836,7 @@ typedef enum mpv_event_id {
|
|||||||
* to disconnect all clients. Most requests to the player will fail, and
|
* to disconnect all clients. Most requests to the player will fail, and
|
||||||
* mpv_wait_event() will always return instantly (returning new shutdown
|
* mpv_wait_event() will always return instantly (returning new shutdown
|
||||||
* events if no other events are queued). The client should react to this
|
* events if no other events are queued). The client should react to this
|
||||||
* and quit with mpv_destroy() as soon as possible.
|
* and quit with mpv_detach_destroy() as soon as possible.
|
||||||
*/
|
*/
|
||||||
MPV_EVENT_SHUTDOWN = 1,
|
MPV_EVENT_SHUTDOWN = 1,
|
||||||
/**
|
/**
|
||||||
@ -1148,7 +1148,7 @@ int mpv_request_log_messages(mpv_handle *ctx, const char *min_level);
|
|||||||
* will wait with an infinite timeout.
|
* will wait with an infinite timeout.
|
||||||
* @return A struct containing the event ID and other data. The pointer (and
|
* @return A struct containing the event ID and other data. The pointer (and
|
||||||
* fields in the struct) stay valid until the next mpv_wait_event()
|
* fields in the struct) stay valid until the next mpv_wait_event()
|
||||||
* call, or until mpv_destroy() is called. You must not write to
|
* call, or until the mpv_handle is destroyed. You must not write to
|
||||||
* the struct, and all memory referenced by it will be automatically
|
* the struct, and all memory referenced by it will be automatically
|
||||||
* released by the API. The return value is never NULL.
|
* released by the API. The return value is never NULL.
|
||||||
*/
|
*/
|
||||||
|
@ -255,7 +255,7 @@ static void unlock_core(mpv_handle *ctx)
|
|||||||
mp_dispatch_unlock(ctx->mpctx->dispatch);
|
mp_dispatch_unlock(ctx->mpctx->dispatch);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mpv_destroy(mpv_handle *ctx)
|
void mpv_detach_destroy(mpv_handle *ctx)
|
||||||
{
|
{
|
||||||
if (!ctx)
|
if (!ctx)
|
||||||
return;
|
return;
|
||||||
@ -292,7 +292,6 @@ void mpv_destroy(mpv_handle *ctx)
|
|||||||
// shutdown_clients() sleeps to avoid wasting CPU
|
// shutdown_clients() sleeps to avoid wasting CPU
|
||||||
if (clients->mpctx->input)
|
if (clients->mpctx->input)
|
||||||
mp_input_wakeup(clients->mpctx->input);
|
mp_input_wakeup(clients->mpctx->input);
|
||||||
// TODO: make core quit if there are no clients
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -310,7 +309,7 @@ void mpv_terminate_destroy(mpv_handle *ctx)
|
|||||||
mpv_command(ctx, (const char*[]){"quit", NULL});
|
mpv_command(ctx, (const char*[]){"quit", NULL});
|
||||||
|
|
||||||
if (!ctx->owner) {
|
if (!ctx->owner) {
|
||||||
mpv_destroy(ctx);
|
mpv_detach_destroy(ctx);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -322,7 +321,7 @@ void mpv_terminate_destroy(mpv_handle *ctx)
|
|||||||
pthread_t playthread;
|
pthread_t playthread;
|
||||||
mp_dispatch_run(ctx->mpctx->dispatch, get_thread, &playthread);
|
mp_dispatch_run(ctx->mpctx->dispatch, get_thread, &playthread);
|
||||||
|
|
||||||
mpv_destroy(ctx);
|
mpv_detach_destroy(ctx);
|
||||||
|
|
||||||
// And this is also the reason why we only allow 1 thread (the owner) to
|
// And this is also the reason why we only allow 1 thread (the owner) to
|
||||||
// call this function.
|
// call this function.
|
||||||
|
@ -84,7 +84,7 @@ static void *script_thread(void *p)
|
|||||||
|
|
||||||
mp_verbose(log, "Exiting...\n");
|
mp_verbose(log, "Exiting...\n");
|
||||||
|
|
||||||
mpv_destroy(arg->client);
|
mpv_detach_destroy(arg->client);
|
||||||
talloc_free(arg);
|
talloc_free(arg);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user