return rv;
}
-io_iterator_t CreateIOServiceIterator() {
+bool CreateIOServiceIterator(io_iterator_t* iterator) {
CFMutableDictionaryRef matching_dict = IOServiceMatching("AppleIRController");
- io_iterator_t iterator;
kern_return_t kr = IOServiceGetMatchingServices(
- kIOMasterPortDefault, matching_dict, &iterator);
+ kIOMasterPortDefault, matching_dict, iterator);
if (kr != KERN_SUCCESS) {
ERROR("Failed to IOServiceGetMatchingServices: 0x%x", kr);
- return 0;
+ return false;
}
- return iterator;
+ return true;;
}
int HandleRead() {
kCFPreferencesAnyUser, kCFPreferencesCurrentHost);
printf("Userspace property value: %s\n", GetBooleanDescription(user_prop));
- io_iterator_t iterator = CreateIOServiceIterator();
- if (!iterator)
+ io_iterator_t iterator;
+ if (!CreateIOServiceIterator(&iterator))
return EXIT_FAILURE;
io_object_t service;
}
if (!did_find) {
- ERROR("Failed to match AppleIRController");
+ ERROR("Failed to match any AppleIRController");
return EXIT_FAILURE;
}
if (!SynchronizePrefs())
return EXIT_FAILURE;
- io_iterator_t iterator = CreateIOServiceIterator();
+ io_iterator_t iterator;
+ if (!CreateIOServiceIterator(&iterator))
+ return EXIT_FAILURE;
+
io_object_t service;
while ((service = IOIteratorNext(iterator))) {
io_name_t name;