annotate foosdk/sdk/foobar2000/SDK/commonObjects-Apple.mm @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 #include "foobar2000-sdk-pch.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 #include "commonObjects-Apple.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 #include <Cocoa/Cocoa.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 namespace {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 class NSObjectWrapperImpl : public fb2k::NSObjectWrapper {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8 id obj;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 void * get_() override {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 return (__bridge void*) obj;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 namespace fb2k {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 service_ptr wrapNSObject(id arg) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 if (!arg) return nullptr;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 auto ret = fb2k::service_new<NSObjectWrapperImpl>();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 ret->obj = arg;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 return ret;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21 id unwrapNSObject(service_ptr arg) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 id ret = nil;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 fb2k::NSObjectWrapper::ptr obj;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 if ( obj &= arg ) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 ret = obj->get();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 return ret;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 }