mirror of
https://github.com/jkcoxson/idevice.git
synced 2026-03-02 06:26:15 +01:00
Implement ideviceinfo in cpp
This commit is contained in:
@@ -15,16 +15,19 @@ int main() {
|
||||
if (!u) {
|
||||
std::cerr << "failed to connect to usbmuxd";
|
||||
std::cerr << e.message;
|
||||
return 1;
|
||||
}
|
||||
|
||||
auto devices = u->get_devices(e);
|
||||
if (!devices) {
|
||||
std::cerr << "failed to get devices from usbmuxd";
|
||||
std::cerr << e.message;
|
||||
return 1;
|
||||
}
|
||||
if (devices->empty()) {
|
||||
std::cerr << "no devices connected";
|
||||
std::cerr << e.message;
|
||||
return 1;
|
||||
}
|
||||
|
||||
auto& dev = (*devices)[0];
|
||||
@@ -55,7 +58,14 @@ int main() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
auto values = client->get_value("", "", e);
|
||||
auto pf = prov->get_pairing_file(e);
|
||||
if (!pf) {
|
||||
std::cerr << "failed to get pairing file: " << e.message << "\n";
|
||||
return 1;
|
||||
}
|
||||
client->start_session(*pf, e);
|
||||
|
||||
auto values = client->get_value(NULL, NULL, e);
|
||||
if (!values) {
|
||||
std::cerr << "get values failed: " << e.message << "\n";
|
||||
return 1;
|
||||
|
||||
@@ -37,6 +37,8 @@ class Provider {
|
||||
Provider(const Provider&) = delete;
|
||||
Provider& operator=(const Provider&) = delete;
|
||||
|
||||
std::optional<PairingFile> get_pairing_file(FfiError& err);
|
||||
|
||||
IdeviceProviderHandle* raw() const noexcept { return handle_.get(); }
|
||||
static Provider adopt(IdeviceProviderHandle* h) noexcept { return Provider(h); }
|
||||
IdeviceProviderHandle* release() noexcept { return handle_.release(); }
|
||||
|
||||
@@ -49,4 +49,15 @@ std::optional<Provider> Provider::usbmuxd_new(UsbmuxdAddr&& addr,
|
||||
return Provider::adopt(out);
|
||||
}
|
||||
|
||||
std::optional<PairingFile> Provider::get_pairing_file(FfiError& err) {
|
||||
|
||||
IdevicePairingFile* out = nullptr;
|
||||
if (IdeviceFfiError* e = idevice_provider_get_pairing_file(handle_.get(), &out)) {
|
||||
err = FfiError(e);
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
return PairingFile(out);
|
||||
}
|
||||
|
||||
} // namespace IdeviceFFI
|
||||
|
||||
Reference in New Issue
Block a user