pnck / foo_input_ncm Goto Github PK
View Code? Open in Web Editor NEWA foobar2000 component which allows you to load and play ncm files directly.
License: Apache License 2.0
A foobar2000 component which allows you to load and play ncm files directly.
License: Apache License 2.0
while ( 1 )
{
v76 = v31;
v32 = v31[7];
bundleRef = 0LL;
init_bundleRef(&bundleRef, v32);
api = (__int64 **)operator new(0x10uLL);
*api = v69;
api[1] = 0LL;
client = get_component_client(&bundleRef, api);
if ( !client )
{
exception = (std::runtime_error *)__cxa_allocate_exception(0x10uLL);
std::runtime_error::runtime_error(exception, "Component entrypoint returned null interface");
__cxa_throw(
exception,
(struct type_info *)&`typeinfo for'std::runtime_error,
(void (__fastcall *)(void *))&std::runtime_error::~runtime_error);
}
ver = (**(__int64 (__fastcall ***)(void *))client)(client);
sub_10063BFF0((__int64)v54, (const char *)v76[7]);
v35 = v77;
v73 = v77;
v74 = "";
memset(v75, 0, 25);
sub_10005A9A3(
(void (__fastcall ***)(_QWORD, const char *, size_t))&v73,
"Component : ",
(__int64)v54,
(__int64)" API ",
(__int64)&ver);
void __fastcall init_bundleRef(CFBundleRef **a1, __int64 a2)
{
CFBundleRef *v2; // rbx
sub_1002E0424((void **)a1);
v2 = (CFBundleRef *)operator new(8uLL);
load_bundle_(v2, a2);
*a1 = v2;
}
void __fastcall load_bundle(CFBundleRef *a1, __int64 a2)
{
void *v2; // r15
NSString *v3; // rax
NSString *v4; // r12
NSURL *v5; // rax
const __CFURL *v6; // rbx
std::runtime_error *exception; // rbx
*a1 = 0LL;
v2 = objc_autoreleasePoolPush();
v3 = +[NSString stringWithUTF8String:](&OBJC_CLASS___NSString, "stringWithUTF8String:", a2);
v4 = objc_retainAutoreleasedReturnValue(v3);
v5 = +[NSURL fileURLWithPath:](&OBJC_CLASS___NSURL, "fileURLWithPath:", v4);
v6 = objc_retainAutoreleasedReturnValue(v5);
*a1 = CFBundleCreate(kCFAllocatorDefault, v6);
objc_release(v6);
objc_release(v4);
objc_autoreleasePoolPop(v2);
if ( !*a1 )
{
exception = (std::runtime_error *)__cxa_allocate_exception(0x10uLL);
std::runtime_error::runtime_error(exception, "Could not load component");
__cxa_throw(
exception,
(struct type_info *)&`typeinfo for'std::runtime_error,
(void (__fastcall *)(void *))&std::runtime_error::~runtime_error);
}
}
void *__fastcall get_component_client(CFBundleRef **a1, void *api)
{
void *(__fastcall *foobar2000_get_interface)(void *, void *); // rax
std::runtime_error *exception; // rbx
foobar2000_get_interface = (void *(__fastcall *)(void *, void *))find_func(*a1, "foobar2000_get_interface");
if ( !foobar2000_get_interface )
{
exception = (std::runtime_error *)__cxa_allocate_exception(0x10uLL);
std::runtime_error::runtime_error(exception, "Component entrypoint inaccessible");
__cxa_throw(
exception,
(struct type_info *)&`typeinfo for'std::runtime_error,
(void (__fastcall *)(void *))&std::runtime_error::~runtime_error);
}
return foobar2000_get_interface(api, **a1);
}
According to the official site and the discussion, fb2k for Mac should have supported component / addon feature.
SDK should be bumped to a newer version and Mac support should be considered.
The same artist is shown twice. See picture:
Example file: https://1drv.ms/u/s!AnsQDRnK8xdghdwV7ksMemOC0SRxCQ?e=mtO4o9
Foobar2000: v2.1.2 [x64] on Win11
foo_input_ncm: v0.3.4
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.