mirror of
https://github.com/mpv-player/mpv
synced 2025-04-17 12:54:40 +00:00
The symlink trick made waf go crazy (deleting source files, getting tangled up in infinite recursion... I wish I was joking). This means we still can't build the client API examples in a reasonable way using the include files of the local repository (instead of globally installed headers). Not building them at all is better than deleting source files. Instead, provide some manual instructions how to build each example (except for the Qt examples, which provide qmake project files).
55 lines
1.4 KiB
C
55 lines
1.4 KiB
C
// Build with: gcc -o simple simple.c `pkg-config --libs --cflags mpv`
|
|
|
|
#include <stddef.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
#include <mpv/client.h>
|
|
|
|
static inline void check_error(int status)
|
|
{
|
|
if (status < 0) {
|
|
printf("mpv API error: %s\n", mpv_error_string(status));
|
|
exit(1);
|
|
}
|
|
}
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
if (argc != 2) {
|
|
printf("pass a single media file as argument\n");
|
|
return 1;
|
|
}
|
|
|
|
mpv_handle *ctx = mpv_create();
|
|
if (!ctx) {
|
|
printf("failed creating context\n");
|
|
return 1;
|
|
}
|
|
|
|
// Enable default key bindings, so the user can actually interact with
|
|
// the player (and e.g. close the window).
|
|
check_error(mpv_set_option_string(ctx, "input-default-bindings", "yes"));
|
|
mpv_set_option_string(ctx, "input-x11-keyboard", "yes");
|
|
int val = 1;
|
|
check_error(mpv_set_option(ctx, "osc", MPV_FORMAT_FLAG, &val));
|
|
|
|
// Done setting up options.
|
|
check_error(mpv_initialize(ctx));
|
|
|
|
// Play this file.
|
|
const char *cmd[] = {"loadfile", argv[1], NULL};
|
|
check_error(mpv_command(ctx, cmd));
|
|
|
|
// Let it play, and wait until the user quits.
|
|
while (1) {
|
|
mpv_event *event = mpv_wait_event(ctx, 10000);
|
|
printf("event: %s\n", mpv_event_name(event->event_id));
|
|
if (event->event_id == MPV_EVENT_SHUTDOWN)
|
|
break;
|
|
}
|
|
|
|
mpv_terminate_destroy(ctx);
|
|
return 0;
|
|
}
|