diff options
author | Stefano Pigozzi <stefano.pigozzi@gmail.com> | 2015-02-28 14:16:16 +0100 |
---|---|---|
committer | Stefano Pigozzi <stefano.pigozzi@gmail.com> | 2015-02-28 14:19:26 +0100 |
commit | 721e430cd2da16e0802781171a3cedb3849eec24 (patch) | |
tree | 6e25b7abee62592ecf27f00ee6c0d2725afcbea7 /DOCS/client_api_examples | |
parent | b74238416237d8a4b9fb02278e7b4fadf1f4b4f7 (diff) | |
download | mpv-721e430cd2da16e0802781171a3cedb3849eec24.tar.bz2 mpv-721e430cd2da16e0802781171a3cedb3849eec24.tar.xz |
examples/cocoabasic: allow to send stop command
Diffstat (limited to 'DOCS/client_api_examples')
-rw-r--r-- | DOCS/client_api_examples/cocoa/cocoabasic.m | 32 |
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}; |