summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefano Pigozzi <stefano.pigozzi@gmail.com>2015-02-28 14:16:16 +0100
committerStefano Pigozzi <stefano.pigozzi@gmail.com>2015-02-28 14:19:26 +0100
commit721e430cd2da16e0802781171a3cedb3849eec24 (patch)
tree6e25b7abee62592ecf27f00ee6c0d2725afcbea7
parentb74238416237d8a4b9fb02278e7b4fadf1f4b4f7 (diff)
downloadmpv-721e430cd2da16e0802781171a3cedb3849eec24.tar.bz2
mpv-721e430cd2da16e0802781171a3cedb3849eec24.tar.xz
examples/cocoabasic: allow to send stop command
-rw-r--r--DOCS/client_api_examples/cocoa/cocoabasic.m32
1 files changed, 19 insertions, 13 deletions
diff --git a/DOCS/client_api_examples/cocoa/cocoabasic.m b/DOCS/client_api_examples/cocoa/cocoabasic.m
index 08c9b18e14..80656815ca 100644
--- a/DOCS/client_api_examples/cocoa/cocoabasic.m
+++ b/DOCS/client_api_examples/cocoa/cocoabasic.m
@@ -59,7 +59,9 @@ static void wakeup(void *);
NSMenuItem *item = [m addItemWithTitle:@"Apple" action:nil keyEquivalent:@""];
NSMenu *sm = [[NSMenu alloc] initWithTitle:@"Apple"];
[m setSubmenu:sm forItem:item];
- [sm addItemWithTitle: @"Shutdown mpv" action:@selector(shutdown) keyEquivalent:@"s"];
+ [sm addItemWithTitle: @"mpv_command('stop')" action:@selector(mpv_stop) keyEquivalent:@""];
+ [sm addItemWithTitle: @"mpv_command('quit')" action:@selector(mpv_quit) keyEquivalent:@""];
+ [sm addItemWithTitle: @"quit" action:@selector(terminate:) keyEquivalent:@"q"];
[NSApp setMenu:m];
[NSApp activateIgnoringOtherApps:YES];
}
@@ -122,24 +124,23 @@ static void wakeup(void *);
- (void) handleEvent:(mpv_event *)event
{
switch (event->event_id) {
- case MPV_EVENT_SHUTDOWN:
- // Clean up and shut down.
- mpv_terminate_destroy(mpv);
+ case MPV_EVENT_SHUTDOWN: {
+ mpv_detach_destroy(mpv);
mpv = NULL;
- dispatch_async(dispatch_get_main_queue(), ^{
- [[NSApplication sharedApplication] terminate:nil];
- });
+ printf("event: shutdown\n");
break;
+ }
case MPV_EVENT_LOG_MESSAGE: {
struct mpv_event_log_message *msg = (struct mpv_event_log_message *)event->data;
printf("[%s] %s: %s", msg->prefix, msg->level, msg->text);
}
- case MPV_EVENT_VIDEO_RECONFIG:
+ case MPV_EVENT_VIDEO_RECONFIG: {
dispatch_async(dispatch_get_main_queue(), ^{
[self->w selectNextKeyView:nil];
});
+ }
default:
printf("event: %s\n", mpv_event_name(event->event_id));
@@ -166,13 +167,18 @@ static void wakeup(void *context) {
// Ostensibly, mpv's window would be hooked up to this.
- (BOOL) windowShouldClose:(id)sender
{
- [self shutdown];
- if (self->w)
- [self->w release];
- return YES;
+ return NO;
+}
+
+- (void) mpv_stop
+{
+ if (mpv) {
+ const char *args[] = {"stop", NULL};
+ mpv_command(mpv, args);
+ }
}
-- (void) shutdown
+- (void) mpv_quit
{
if (mpv) {
const char *args[] = {"quit", NULL};