this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

CoreServices: Add BackupCore and MDItem stubs

MDItem's current code is just a bunch of stubs. However, BackupCore's current code is technically implemented (Darling doesn't do backups, so it just tells users that everything is excluded from backups).

Note that I didn't verify the values of each and every MDItem constant, but those kinds of constants usually follow a pattern, and in this case, the pattern seemed to be that their string content is just a copy of their variable names. (I could probably have used a macro to do it, but *shrug*, my editor made it easy).

+566 -2
+38
src/frameworks/CoreServices/include/CarbonCore/BackupCore.h
··· 1 + /** 2 + * This file is part of Darling. 3 + * 4 + * Copyright (C) 2020 Lubos Dolezel 5 + * 6 + * Darling is free software: you can redistribute it and/or modify 7 + * it under the terms of the GNU General Public License as published by 8 + * the Free Software Foundation, either version 3 of the License, or 9 + * (at your option) any later version. 10 + * 11 + * Darling is distributed in the hope that it will be useful, 12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 + * GNU General Public License for more details. 15 + * 16 + * You should have received a copy of the GNU General Public License 17 + * along with Darling. If not, see <http://www.gnu.org/licenses/>. 18 + */ 19 + 20 + #ifndef _CC_BACKUPCORE_H_ 21 + #define _CC_BACKUPCORE_H_ 22 + 23 + #include <CoreFoundation/CFBase.h> 24 + #include <CoreFoundation/CFURL.h> 25 + #include <CoreServices/MacErrors.h> 26 + 27 + #ifdef __cplusplus 28 + extern "C" { 29 + #endif 30 + 31 + Boolean CSBackupIsItemExcluded(CFURLRef item, Boolean* excludeByPath); 32 + OSStatus CSBackupSetItemExcluded(CFURLRef item, Boolean exclude, Boolean excludeByPath); 33 + 34 + #ifdef __cplusplus 35 + }; 36 + #endif 37 + 38 + #endif // _CC_BACKUPCORE_H_
+4
src/frameworks/CoreServices/include/CarbonCore/CarbonCore.h
··· 13 13 #include <MacTypes.h> 14 14 #endif 15 15 16 + #ifndef _CC_BACKUPCORE_H_ 17 + #include <CarbonCore/BackupCore.h> 18 + #endif 19 + 16 20 #endif
+2
src/frameworks/CoreServices/include/CoreServices/CoreServices.h
··· 23 23 #include <CoreServices/UnicodeUtilities.h> 24 24 #include <CoreServices/TextCommon.h> 25 25 #include <CoreServices/TextEncodingConverter.h> 26 + #include <CoreServices/MDItem.h> 27 + #include <CoreServices/MDQuery.h> 26 28 27 29 #include <LaunchServices/LaunchServices.h> 28 30 #include <AE/AE.h>
+235
src/frameworks/CoreServices/include/CoreServices/MDItem.h
··· 1 + /** 2 + * This file is part of Darling. 3 + * 4 + * Copyright (C) 2020 Lubos Dolezel 5 + * 6 + * Darling is free software: you can redistribute it and/or modify 7 + * it under the terms of the GNU General Public License as published by 8 + * the Free Software Foundation, either version 3 of the License, or 9 + * (at your option) any later version. 10 + * 11 + * Darling is distributed in the hope that it will be useful, 12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 + * GNU General Public License for more details. 15 + * 16 + * You should have received a copy of the GNU General Public License 17 + * along with Darling. If not, see <http://www.gnu.org/licenses/>. 18 + */ 19 + 20 + #ifndef _CS_MDITEM_H_ 21 + #define _CS_MDITEM_H_ 22 + 23 + #include <CoreFoundation/CFBase.h> 24 + #include <CoreFoundation/CFString.h> 25 + #include <CoreFoundation/CFURL.h> 26 + #include <CoreFoundation/CFArray.h> 27 + #include <CoreFoundation/CFDictionary.h> 28 + #include <stdarg.h> 29 + 30 + #ifdef __cplusplus 31 + extern "C" { 32 + #endif 33 + 34 + // common attributes 35 + extern const CFStringRef kMDItemAttributeChangeDate; 36 + extern const CFStringRef kMDItemAudiences; 37 + extern const CFStringRef kMDItemAuthorAddresses; 38 + extern const CFStringRef kMDItemAuthorEmailAddresses; 39 + extern const CFStringRef kMDItemAuthors; 40 + extern const CFStringRef kMDItemCFBundleIdentifier; 41 + extern const CFStringRef kMDItemCity; 42 + extern const CFStringRef kMDItemComment; 43 + extern const CFStringRef kMDItemContactKeywords; 44 + extern const CFStringRef kMDItemContentCreationDate; 45 + extern const CFStringRef kMDItemContentModificationDate; 46 + extern const CFStringRef kMDItemContentType; 47 + extern const CFStringRef kMDItemContributors; 48 + extern const CFStringRef kMDItemCopyright; 49 + extern const CFStringRef kMDItemCountry; 50 + extern const CFStringRef kMDItemCoverage; 51 + extern const CFStringRef kMDItemCreator; 52 + extern const CFStringRef kMDItemDescription; 53 + extern const CFStringRef kMDItemDueDate; 54 + extern const CFStringRef kMDItemDurationSeconds; 55 + extern const CFStringRef kMDItemEmailAddresses; 56 + extern const CFStringRef kMDItemEncodingApplications; 57 + extern const CFStringRef kMDItemFinderComment; 58 + extern const CFStringRef kMDItemFonts; 59 + extern const CFStringRef kMDItemFSHasCustomIcon; 60 + extern const CFStringRef kMDItemFSIsStationery; 61 + extern const CFStringRef kMDItemHeadline; 62 + extern const CFStringRef kMDItemIdentifier; 63 + extern const CFStringRef kMDItemInformation; 64 + extern const CFStringRef kMDItemInstantMessageAddresses; 65 + extern const CFStringRef kMDItemInstructions; 66 + extern const CFStringRef kMDItemKeywords; 67 + extern const CFStringRef kMDItemKind; 68 + extern const CFStringRef kMDItemLanguages; 69 + extern const CFStringRef kMDItemLastUsedDate; 70 + extern const CFStringRef kMDItemNumberOfPages; 71 + extern const CFStringRef kMDItemOrganizations; 72 + extern const CFStringRef kMDItemPageHeight; 73 + extern const CFStringRef kMDItemPageWidth; 74 + extern const CFStringRef kMDItemParticipants; 75 + extern const CFStringRef kMDItemPhoneNumbers; 76 + extern const CFStringRef kMDItemProjects; 77 + extern const CFStringRef kMDItemPublishers; 78 + extern const CFStringRef kMDItemRecipientAddresses; 79 + extern const CFStringRef kMDItemRecipientEmailAddresses; 80 + extern const CFStringRef kMDItemRecipients; 81 + extern const CFStringRef kMDItemRights; 82 + extern const CFStringRef kMDItemSecurityMethod; 83 + extern const CFStringRef kMDItemStarRating; 84 + extern const CFStringRef kMDItemStateOrProvince; 85 + extern const CFStringRef kMDItemSubject; 86 + extern const CFStringRef kMDItemSupportFileType; 87 + extern const CFStringRef kMDItemTextContent; 88 + extern const CFStringRef kMDItemTheme; 89 + extern const CFStringRef kMDItemTitle; 90 + extern const CFStringRef kMDItemURL; 91 + extern const CFStringRef kMDItemVersion; 92 + extern const CFStringRef kMDItemWhereFroms; 93 + 94 + // image attributes 95 + extern const CFStringRef kMDItemAcquisitionMake; 96 + extern const CFStringRef kMDItemAcquisitionModel; 97 + extern const CFStringRef kMDItemAlbum; 98 + extern const CFStringRef kMDItemAltitude; 99 + extern const CFStringRef kMDItemAperture; 100 + extern const CFStringRef kMDItemBitsPerSample; 101 + extern const CFStringRef kMDItemColorSpace; 102 + extern const CFStringRef kMDItemEXIFGPSVersion; 103 + extern const CFStringRef kMDItemEXIFVersion; 104 + extern const CFStringRef kMDItemExposureMode; 105 + extern const CFStringRef kMDItemExposureProgram; 106 + extern const CFStringRef kMDItemExposureTimeSeconds; 107 + extern const CFStringRef kMDItemExposureTimeString; 108 + extern const CFStringRef kMDItemFlashOnOff; 109 + extern const CFStringRef kMDItemFNumber; 110 + extern const CFStringRef kMDItemFocalLength; 111 + extern const CFStringRef kMDItemGPSTrack; 112 + extern const CFStringRef kMDItemHasAlphaChannel; 113 + extern const CFStringRef kMDItemImageDirection; 114 + extern const CFStringRef kMDItemISOSpeed; 115 + extern const CFStringRef kMDItemLatitude; 116 + extern const CFStringRef kMDItemLayerNames; 117 + extern const CFStringRef kMDItemLongitude; 118 + extern const CFStringRef kMDItemMaxAperture; 119 + extern const CFStringRef kMDItemMeteringMode; 120 + extern const CFStringRef kMDItemNamedLocation; 121 + extern const CFStringRef kMDItemOrientation; 122 + extern const CFStringRef kMDItemPixelCount; 123 + extern const CFStringRef kMDItemPixelHeight; 124 + extern const CFStringRef kMDItemPixelWidth; 125 + extern const CFStringRef kMDItemProfileName; 126 + extern const CFStringRef kMDItemRedEyeOnOff; 127 + extern const CFStringRef kMDItemResolutionHeightDPI; 128 + extern const CFStringRef kMDItemResolutionWidthDPI; 129 + extern const CFStringRef kMDItemSpeed; 130 + extern const CFStringRef kMDItemTimestamp; 131 + extern const CFStringRef kMDItemWhiteBalance; 132 + 133 + // video attributes 134 + extern const CFStringRef kMDItemAudioBitRate; 135 + extern const CFStringRef kMDItemCodecs; 136 + extern const CFStringRef kMDItemDeliveryType; 137 + extern const CFStringRef kMDItemDirector; 138 + extern const CFStringRef kMDItemGenre; 139 + extern const CFStringRef kMDItemMediaTypes; 140 + extern const CFStringRef kMDItemOriginalFormat; 141 + extern const CFStringRef kMDItemOriginalSource; 142 + extern const CFStringRef kMDItemPerformers; 143 + extern const CFStringRef kMDItemProducer; 144 + extern const CFStringRef kMDItemStreamable; 145 + extern const CFStringRef kMDItemTotalBitRate; 146 + extern const CFStringRef kMDItemVideoBitRate; 147 + 148 + // audio attributes 149 + extern const CFStringRef kMDItemAppleLoopDescriptors; 150 + extern const CFStringRef kMDItemAppleLoopsKeyFilterType; 151 + extern const CFStringRef kMDItemAppleLoopsLoopMode; 152 + extern const CFStringRef kMDItemAppleLoopsRootKey; 153 + extern const CFStringRef kMDItemAudioChannelCount; 154 + extern const CFStringRef kMDItemAudioEncodingApplication; 155 + extern const CFStringRef kMDItemAudioSampleRate; 156 + extern const CFStringRef kMDItemAudioTrackNumber; 157 + extern const CFStringRef kMDItemComposer; 158 + extern const CFStringRef kMDItemIsGeneralMIDISequence; 159 + extern const CFStringRef kMDItemKeySignature; 160 + extern const CFStringRef kMDItemLyricist; 161 + extern const CFStringRef kMDItemMusicalGenre; 162 + extern const CFStringRef kMDItemMusicalInstrumentCategory; 163 + extern const CFStringRef kMDItemMusicalInstrumentName; 164 + extern const CFStringRef kMDItemRecordingDate; 165 + extern const CFStringRef kMDItemRecordingYear; 166 + extern const CFStringRef kMDItemTempo; 167 + extern const CFStringRef kMDItemTimeSignature; 168 + 169 + // filesystem attributes 170 + extern const CFStringRef kMDItemDisplayName; 171 + extern const CFStringRef kMDItemFSContentChangeDate; 172 + extern const CFStringRef kMDItemFSCreationDate; 173 + extern const CFStringRef kMDItemFSExists; 174 + extern const CFStringRef kMDItemFSInvisible; 175 + extern const CFStringRef kMDItemFSIsExtensionHidden; 176 + extern const CFStringRef kMDItemFSIsReadable; 177 + extern const CFStringRef kMDItemFSIsWriteable; 178 + extern const CFStringRef kMDItemFSLabel; 179 + extern const CFStringRef kMDItemFSName; 180 + extern const CFStringRef kMDItemFSNodeCount; 181 + extern const CFStringRef kMDItemFSOwnerGroupID; 182 + extern const CFStringRef kMDItemFSOwnerUserID; 183 + extern const CFStringRef kMDItemFSSize; 184 + extern const CFStringRef kMDItemPath; 185 + 186 + // misc. attributes 187 + extern const CFStringRef kMDItemApplicationCategories; 188 + extern const CFStringRef kMDItemCameraOwner; 189 + extern const CFStringRef kMDItemContentTypeTree; 190 + extern const CFStringRef kMDItemDateAdded; 191 + extern const CFStringRef kMDItemDownloadedDate; 192 + extern const CFStringRef kMDItemEditors; 193 + extern const CFStringRef kMDItemExecutableArchitectures; 194 + extern const CFStringRef kMDItemExecutablePlatform; 195 + extern const CFStringRef kMDItemFocalLength35mm; 196 + extern const CFStringRef kMDItemGPSAreaInformation; 197 + extern const CFStringRef kMDItemGPSDateStamp; 198 + extern const CFStringRef kMDItemGPSDestBearing; 199 + extern const CFStringRef kMDItemGPSDestDistance; 200 + extern const CFStringRef kMDItemGPSDestLatitude; 201 + extern const CFStringRef kMDItemGPSDestLongitude; 202 + extern const CFStringRef kMDItemGPSDifferental; 203 + extern const CFStringRef kMDItemGPSDOP; 204 + extern const CFStringRef kMDItemGPSMapDatum; 205 + extern const CFStringRef kMDItemGPSMeasureMode; 206 + extern const CFStringRef kMDItemGPSProcessingMethod; 207 + extern const CFStringRef kMDItemGPSStatus; 208 + extern const CFStringRef kMDItemHTMLContent; 209 + extern const CFStringRef kMDItemIsApplicationManaged; 210 + extern const CFStringRef kMDItemIsLikelyJunk; 211 + extern const CFStringRef kMDItemLabelIcon; 212 + extern const CFStringRef kMDItemLabelID; 213 + extern const CFStringRef kMDItemLabelKind; 214 + extern const CFStringRef kMDItemLabelUUID; 215 + extern const CFStringRef kMDItemLensModel; 216 + 217 + typedef struct __MDItem* MDItemRef; 218 + 219 + CFTypeID MDItemGetTypeID(); 220 + 221 + MDItemRef MDItemCreate(CFAllocatorRef allocator, CFStringRef path); 222 + MDItemRef MDItemCreateWithURL(CFAllocatorRef allocator, CFURLRef url); 223 + 224 + CFTypeRef MDItemCopyAttribute(MDItemRef item, CFStringRef name); 225 + CFDictionaryRef MDItemCopyAttributes(MDItemRef item, CFArrayRef names); 226 + CFDictionaryRef MDItemCopyAttributeList(MDItemRef item, ...); 227 + CFArrayRef MDItemCopyAttributeNames(MDItemRef item); 228 + 229 + Boolean MDItemSetAttribute(MDItemRef item, CFStringRef name, CFTypeRef value); 230 + 231 + #ifdef __cplusplus 232 + }; 233 + #endif 234 + 235 + #endif // _CS_MDITEM_H_
-1
src/frameworks/CoreServices/include/CoreServices/MDQuery.h
··· 10 10 11 11 typedef CFTypeRef MDQueryRef; 12 12 13 - extern CFStringRef kMDItemPath; 14 13 extern CFStringRef kMDQueryDidFinishNotification; 15 14 extern CFStringRef kMDQueryDidUpdateNotification; 16 15 extern CFStringRef kMDQueryUpdateAddedItems;
+19
src/frameworks/CoreServices/src/CarbonCore/BackupCore.c
··· 1 + #include <CarbonCore/BackupCore.h> 2 + 3 + // these are technically stubs 4 + // although, since Darling doesn't do backups, these are basically implemented 5 + // the return values are *technically* correct: the items being queried *are* excluded from backups... 6 + // ...it's just that *all* items are excluded from backups :) 7 + 8 + Boolean CSBackupIsItemExcluded(CFURLRef item, Boolean* excludeByPath) { 9 + // stub 10 + if (excludeByPath) { 11 + *excludeByPath = false; 12 + } 13 + return true; 14 + }; 15 + 16 + OSStatus CSBackupSetItemExcluded(CFURLRef item, Boolean exclude, Boolean excludeByPath) { 17 + // stub 18 + return noErr; 19 + };
+1
src/frameworks/CoreServices/src/CarbonCore/CMakeLists.txt
··· 26 26 UserBreak.cpp 27 27 Debugging.cpp 28 28 CoreServicesPriv.cpp 29 + BackupCore.c 29 30 ) 30 31 31 32 set(DYLIB_COMPAT_VERSION "1.0.0")
+1
src/frameworks/CoreServices/src/Metadata/CMakeLists.txt
··· 6 6 PARENT "CoreServices" 7 7 SOURCES 8 8 MDQuery.c 9 + MDItem.c 9 10 DEPENDENCIES 10 11 CoreFoundation 11 12 system
+266
src/frameworks/CoreServices/src/Metadata/MDItem.c
··· 1 + #include <CoreServices/MDItem.h> 2 + #include <dispatch/dispatch.h> 3 + #include <CoreFoundation/CFRuntime.h> 4 + 5 + struct __MDItem { 6 + CFRuntimeBase _base; 7 + 8 + // TODO: do stuff with this 9 + }; 10 + 11 + // common attributes 12 + const CFStringRef kMDItemAttributeChangeDate = CFSTR("kMDItemAttributeChangeDate"); 13 + const CFStringRef kMDItemAudiences = CFSTR("kMDItemAudiences"); 14 + const CFStringRef kMDItemAuthorAddresses = CFSTR("kMDItemAuthorAddresses"); 15 + const CFStringRef kMDItemAuthorEmailAddresses = CFSTR("kMDItemAuthorEmailAddresses"); 16 + const CFStringRef kMDItemAuthors = CFSTR("kMDItemAuthors"); 17 + const CFStringRef kMDItemCFBundleIdentifier = CFSTR("kMDItemCFBundleIdentifier"); 18 + const CFStringRef kMDItemCity = CFSTR("kMDItemCity"); 19 + const CFStringRef kMDItemComment = CFSTR("kMDItemComment"); 20 + const CFStringRef kMDItemContactKeywords = CFSTR("kMDItemContactKeywords"); 21 + const CFStringRef kMDItemContentCreationDate = CFSTR("kMDItemContentCreationDate"); 22 + const CFStringRef kMDItemContentModificationDate = CFSTR("kMDItemContentModificationDate"); 23 + const CFStringRef kMDItemContentType = CFSTR("kMDItemContentType"); 24 + const CFStringRef kMDItemContributors = CFSTR("kMDItemContributors"); 25 + const CFStringRef kMDItemCopyright = CFSTR("kMDItemCopyright"); 26 + const CFStringRef kMDItemCountry = CFSTR("kMDItemCountry"); 27 + const CFStringRef kMDItemCoverage = CFSTR("kMDItemCoverage"); 28 + const CFStringRef kMDItemCreator = CFSTR("kMDItemCreator"); 29 + const CFStringRef kMDItemDescription = CFSTR("kMDItemDescription"); 30 + const CFStringRef kMDItemDueDate = CFSTR("kMDItemDueDate"); 31 + const CFStringRef kMDItemDurationSeconds = CFSTR("kMDItemDurationSeconds"); 32 + const CFStringRef kMDItemEmailAddresses = CFSTR("kMDItemEmailAddresses"); 33 + const CFStringRef kMDItemEncodingApplications = CFSTR("kMDItemEncodingApplications"); 34 + const CFStringRef kMDItemFinderComment = CFSTR("kMDItemFinderComment"); 35 + const CFStringRef kMDItemFonts = CFSTR("kMDItemFonts"); 36 + const CFStringRef kMDItemFSHasCustomIcon = CFSTR("kMDItemFSHasCustomIcon"); 37 + const CFStringRef kMDItemFSIsStationery = CFSTR("kMDItemFSIsStationery"); 38 + const CFStringRef kMDItemHeadline = CFSTR("kMDItemHeadline"); 39 + const CFStringRef kMDItemIdentifier = CFSTR("kMDItemIdentifier"); 40 + const CFStringRef kMDItemInformation = CFSTR("kMDItemInformation"); 41 + const CFStringRef kMDItemInstantMessageAddresses = CFSTR("kMDItemInstantMessageAddresses"); 42 + const CFStringRef kMDItemInstructions = CFSTR("kMDItemInstructions"); 43 + const CFStringRef kMDItemKeywords = CFSTR("kMDItemKeywords"); 44 + const CFStringRef kMDItemKind = CFSTR("kMDItemKind"); 45 + const CFStringRef kMDItemLanguages = CFSTR("kMDItemLanguages"); 46 + const CFStringRef kMDItemLastUsedDate = CFSTR("kMDItemLastUsedDate"); 47 + const CFStringRef kMDItemNumberOfPages = CFSTR("kMDItemNumberOfPages"); 48 + const CFStringRef kMDItemOrganizations = CFSTR("kMDItemOrganizations"); 49 + const CFStringRef kMDItemPageHeight = CFSTR("kMDItemPageHeight"); 50 + const CFStringRef kMDItemPageWidth = CFSTR("kMDItemPageWidth"); 51 + const CFStringRef kMDItemParticipants = CFSTR("kMDItemParticipants"); 52 + const CFStringRef kMDItemPhoneNumbers = CFSTR("kMDItemPhoneNumbers"); 53 + const CFStringRef kMDItemProjects = CFSTR("kMDItemProjects"); 54 + const CFStringRef kMDItemPublishers = CFSTR("kMDItemPublishers"); 55 + const CFStringRef kMDItemRecipientAddresses = CFSTR("kMDItemRecipientAddresses"); 56 + const CFStringRef kMDItemRecipientEmailAddresses = CFSTR("kMDItemRecipientEmailAddresses"); 57 + const CFStringRef kMDItemRecipients = CFSTR("kMDItemRecipients"); 58 + const CFStringRef kMDItemRights = CFSTR("kMDItemRights"); 59 + const CFStringRef kMDItemSecurityMethod = CFSTR("kMDItemSecurityMethod"); 60 + const CFStringRef kMDItemStarRating = CFSTR("kMDItemStarRating"); 61 + const CFStringRef kMDItemStateOrProvince = CFSTR("kMDItemStateOrProvince"); 62 + const CFStringRef kMDItemSubject = CFSTR("kMDItemSubject"); 63 + const CFStringRef kMDItemSupportFileType = CFSTR("kMDItemSupportFileType"); 64 + const CFStringRef kMDItemTextContent = CFSTR("kMDItemTextContent"); 65 + const CFStringRef kMDItemTheme = CFSTR("kMDItemTheme"); 66 + const CFStringRef kMDItemTitle = CFSTR("kMDItemTitle"); 67 + const CFStringRef kMDItemURL = CFSTR("kMDItemURL"); 68 + const CFStringRef kMDItemVersion = CFSTR("kMDItemVersion"); 69 + const CFStringRef kMDItemWhereFroms = CFSTR("kMDItemWhereFroms"); 70 + 71 + // image attributes 72 + const CFStringRef kMDItemAcquisitionMake = CFSTR("kMDItemAcquisitionMake"); 73 + const CFStringRef kMDItemAcquisitionModel = CFSTR("kMDItemAcquisitionModel"); 74 + const CFStringRef kMDItemAlbum = CFSTR("kMDItemAlbum"); 75 + const CFStringRef kMDItemAltitude = CFSTR("kMDItemAltitude"); 76 + const CFStringRef kMDItemAperture = CFSTR("kMDItemAperture"); 77 + const CFStringRef kMDItemBitsPerSample = CFSTR("kMDItemBitsPerSample"); 78 + const CFStringRef kMDItemColorSpace = CFSTR("kMDItemColorSpace"); 79 + const CFStringRef kMDItemEXIFGPSVersion = CFSTR("kMDItemEXIFGPSVersion"); 80 + const CFStringRef kMDItemEXIFVersion = CFSTR("kMDItemEXIFVersion"); 81 + const CFStringRef kMDItemExposureMode = CFSTR("kMDItemExposureMode"); 82 + const CFStringRef kMDItemExposureProgram = CFSTR("kMDItemExposureProgram"); 83 + const CFStringRef kMDItemExposureTimeSeconds = CFSTR("kMDItemExposureTimeSeconds"); 84 + const CFStringRef kMDItemExposureTimeString = CFSTR("kMDItemExposureTimeString"); 85 + const CFStringRef kMDItemFlashOnOff = CFSTR("kMDItemFlashOnOff"); 86 + const CFStringRef kMDItemFNumber = CFSTR("kMDItemFNumber"); 87 + const CFStringRef kMDItemFocalLength = CFSTR("kMDItemFocalLength"); 88 + const CFStringRef kMDItemGPSTrack = CFSTR("kMDItemGPSTrack"); 89 + const CFStringRef kMDItemHasAlphaChannel = CFSTR("kMDItemHasAlphaChannel"); 90 + const CFStringRef kMDItemImageDirection = CFSTR("kMDItemImageDirection"); 91 + const CFStringRef kMDItemISOSpeed = CFSTR("kMDItemISOSpeed"); 92 + const CFStringRef kMDItemLatitude = CFSTR("kMDItemLatitude"); 93 + const CFStringRef kMDItemLayerNames = CFSTR("kMDItemLayerNames"); 94 + const CFStringRef kMDItemLongitude = CFSTR("kMDItemLongitude"); 95 + const CFStringRef kMDItemMaxAperture = CFSTR("kMDItemMaxAperture"); 96 + const CFStringRef kMDItemMeteringMode = CFSTR("kMDItemMeteringMode"); 97 + const CFStringRef kMDItemNamedLocation = CFSTR("kMDItemNamedLocation"); 98 + const CFStringRef kMDItemOrientation = CFSTR("kMDItemOrientation"); 99 + const CFStringRef kMDItemPixelCount = CFSTR("kMDItemPixelCount"); 100 + const CFStringRef kMDItemPixelHeight = CFSTR("kMDItemPixelHeight"); 101 + const CFStringRef kMDItemPixelWidth = CFSTR("kMDItemPixelWidth"); 102 + const CFStringRef kMDItemProfileName = CFSTR("kMDItemProfileName"); 103 + const CFStringRef kMDItemRedEyeOnOff = CFSTR("kMDItemRedEyeOnOff"); 104 + const CFStringRef kMDItemResolutionHeightDPI = CFSTR("kMDItemResolutionHeightDPI"); 105 + const CFStringRef kMDItemResolutionWidthDPI = CFSTR("kMDItemResolutionWidthDPI"); 106 + const CFStringRef kMDItemSpeed = CFSTR("kMDItemSpeed"); 107 + const CFStringRef kMDItemTimestamp = CFSTR("kMDItemTimestamp"); 108 + const CFStringRef kMDItemWhiteBalance = CFSTR("kMDItemWhiteBalance"); 109 + 110 + // video attributes 111 + const CFStringRef kMDItemAudioBitRate = CFSTR("kMDItemAudioBitRate"); 112 + const CFStringRef kMDItemCodecs = CFSTR("kMDItemCodecs"); 113 + const CFStringRef kMDItemDeliveryType = CFSTR("kMDItemDeliveryType"); 114 + const CFStringRef kMDItemDirector = CFSTR("kMDItemDirector"); 115 + const CFStringRef kMDItemGenre = CFSTR("kMDItemGenre"); 116 + const CFStringRef kMDItemMediaTypes = CFSTR("kMDItemMediaTypes"); 117 + const CFStringRef kMDItemOriginalFormat = CFSTR("kMDItemOriginalFormat"); 118 + const CFStringRef kMDItemOriginalSource = CFSTR("kMDItemOriginalSource"); 119 + const CFStringRef kMDItemPerformers = CFSTR("kMDItemPerformers"); 120 + const CFStringRef kMDItemProducer = CFSTR("kMDItemProducer"); 121 + const CFStringRef kMDItemStreamable = CFSTR("kMDItemStreamable"); 122 + const CFStringRef kMDItemTotalBitRate = CFSTR("kMDItemTotalBitRate"); 123 + const CFStringRef kMDItemVideoBitRate = CFSTR("kMDItemVideoBitRate"); 124 + 125 + // audio attributes 126 + const CFStringRef kMDItemAppleLoopDescriptors = CFSTR("kMDItemAppleLoopDescriptors"); 127 + const CFStringRef kMDItemAppleLoopsKeyFilterType = CFSTR("kMDItemAppleLoopsKeyFilterType"); 128 + const CFStringRef kMDItemAppleLoopsLoopMode = CFSTR("kMDItemAppleLoopsLoopMode"); 129 + const CFStringRef kMDItemAppleLoopsRootKey = CFSTR("kMDItemAppleLoopsRootKey"); 130 + const CFStringRef kMDItemAudioChannelCount = CFSTR("kMDItemAudioChannelCount"); 131 + const CFStringRef kMDItemAudioEncodingApplication = CFSTR("kMDItemAudioEncodingApplication"); 132 + const CFStringRef kMDItemAudioSampleRate = CFSTR("kMDItemAudioSampleRate"); 133 + const CFStringRef kMDItemAudioTrackNumber = CFSTR("kMDItemAudioTrackNumber"); 134 + const CFStringRef kMDItemComposer = CFSTR("kMDItemComposer"); 135 + const CFStringRef kMDItemIsGeneralMIDISequence = CFSTR("kMDItemIsGeneralMIDISequence"); 136 + const CFStringRef kMDItemKeySignature = CFSTR("kMDItemKeySignature"); 137 + const CFStringRef kMDItemLyricist = CFSTR("kMDItemLyricist"); 138 + const CFStringRef kMDItemMusicalGenre = CFSTR("kMDItemMusicalGenre"); 139 + const CFStringRef kMDItemMusicalInstrumentCategory = CFSTR("kMDItemMusicalInstrumentCategory"); 140 + const CFStringRef kMDItemMusicalInstrumentName = CFSTR("kMDItemMusicalInstrumentName"); 141 + const CFStringRef kMDItemRecordingDate = CFSTR("kMDItemRecordingDate"); 142 + const CFStringRef kMDItemRecordingYear = CFSTR("kMDItemRecordingYear"); 143 + const CFStringRef kMDItemTempo = CFSTR("kMDItemTempo"); 144 + const CFStringRef kMDItemTimeSignature = CFSTR("kMDItemTimeSignature"); 145 + 146 + // filesystem attributes 147 + const CFStringRef kMDItemDisplayName = CFSTR("kMDItemDisplayName"); 148 + const CFStringRef kMDItemFSContentChangeDate = CFSTR("kMDItemFSContentChangeDate"); 149 + const CFStringRef kMDItemFSCreationDate = CFSTR("kMDItemFSCreationDate"); 150 + const CFStringRef kMDItemFSExists = CFSTR("kMDItemFSExists"); 151 + const CFStringRef kMDItemFSInvisible = CFSTR("kMDItemFSInvisible"); 152 + const CFStringRef kMDItemFSIsExtensionHidden = CFSTR("kMDItemFSIsExtensionHidden"); 153 + const CFStringRef kMDItemFSIsReadable = CFSTR("kMDItemFSIsReadable"); 154 + const CFStringRef kMDItemFSIsWriteable = CFSTR("kMDItemFSIsWriteable"); 155 + const CFStringRef kMDItemFSLabel = CFSTR("kMDItemFSLabel"); 156 + const CFStringRef kMDItemFSName = CFSTR("kMDItemFSName"); 157 + const CFStringRef kMDItemFSNodeCount = CFSTR("kMDItemFSNodeCount"); 158 + const CFStringRef kMDItemFSOwnerGroupID = CFSTR("kMDItemFSOwnerGroupID"); 159 + const CFStringRef kMDItemFSOwnerUserID = CFSTR("kMDItemFSOwnerUserID"); 160 + const CFStringRef kMDItemFSSize = CFSTR("kMDItemFSSize"); 161 + const CFStringRef kMDItemPath = CFSTR("kMDItemPath"); 162 + 163 + // misc. attributes 164 + const CFStringRef kMDItemApplicationCategories = CFSTR("kMDItemApplicationCategories"); 165 + const CFStringRef kMDItemCameraOwner = CFSTR("kMDItemCameraOwner"); 166 + const CFStringRef kMDItemContentTypeTree = CFSTR("kMDItemContentTypeTree"); 167 + const CFStringRef kMDItemDateAdded = CFSTR("kMDItemDateAdded"); 168 + const CFStringRef kMDItemDownloadedDate = CFSTR("kMDItemDownloadedDate"); 169 + const CFStringRef kMDItemEditors = CFSTR("kMDItemEditors"); 170 + const CFStringRef kMDItemExecutableArchitectures = CFSTR("kMDItemExecutableArchitectures"); 171 + const CFStringRef kMDItemExecutablePlatform = CFSTR("kMDItemExecutablePlatform"); 172 + const CFStringRef kMDItemFocalLength35mm = CFSTR("kMDItemFocalLength35mm"); 173 + const CFStringRef kMDItemGPSAreaInformation = CFSTR("kMDItemGPSAreaInformation"); 174 + const CFStringRef kMDItemGPSDateStamp = CFSTR("kMDItemGPSDateStamp"); 175 + const CFStringRef kMDItemGPSDestBearing = CFSTR("kMDItemGPSDestBearing"); 176 + const CFStringRef kMDItemGPSDestDistance = CFSTR("kMDItemGPSDestDistance"); 177 + const CFStringRef kMDItemGPSDestLatitude = CFSTR("kMDItemGPSDestLatitude"); 178 + const CFStringRef kMDItemGPSDestLongitude = CFSTR("kMDItemGPSDestLongitude"); 179 + const CFStringRef kMDItemGPSDifferental = CFSTR("kMDItemGPSDifferental"); 180 + const CFStringRef kMDItemGPSDOP = CFSTR("kMDItemGPSDOP"); 181 + const CFStringRef kMDItemGPSMapDatum = CFSTR("kMDItemGPSMapDatum"); 182 + const CFStringRef kMDItemGPSMeasureMode = CFSTR("kMDItemGPSMeasureMode"); 183 + const CFStringRef kMDItemGPSProcessingMethod = CFSTR("kMDItemGPSProcessingMethod"); 184 + const CFStringRef kMDItemGPSStatus = CFSTR("kMDItemGPSStatus"); 185 + const CFStringRef kMDItemHTMLContent = CFSTR("kMDItemHTMLContent"); 186 + const CFStringRef kMDItemIsApplicationManaged = CFSTR("kMDItemIsApplicationManaged"); 187 + const CFStringRef kMDItemIsLikelyJunk = CFSTR("kMDItemIsLikelyJunk"); 188 + const CFStringRef kMDItemLabelIcon = CFSTR("kMDItemLabelIcon"); 189 + const CFStringRef kMDItemLabelID = CFSTR("kMDItemLabelID"); 190 + const CFStringRef kMDItemLabelKind = CFSTR("kMDItemLabelKind"); 191 + const CFStringRef kMDItemLabelUUID = CFSTR("kMDItemLabelUUID"); 192 + const CFStringRef kMDItemLensModel = CFSTR("kMDItemLensModel"); 193 + 194 + static CFTypeID __kMDItemTypeID = _kCFRuntimeNotATypeID; 195 + 196 + static const CFRuntimeClass __MDItemClass = { 197 + _kCFRuntimeScannedObject, // version 198 + "MDItem", // class name 199 + NULL, // init 200 + NULL, // copy 201 + NULL, // deinit 202 + NULL, // equal 203 + NULL, // hash 204 + NULL, // formatting description 205 + NULL, // debug description 206 + }; 207 + 208 + CFTypeID MDItemGetTypeID() { 209 + static dispatch_once_t initOnce; 210 + dispatch_once(&initOnce, ^{ 211 + __kMDItemTypeID = _CFRuntimeRegisterClass(&__MDItemClass); 212 + }); 213 + return __kMDItemTypeID; 214 + }; 215 + 216 + static MDItemRef _MDItemBasicCreate(CFAllocatorRef allocator) { 217 + MDItemRef item = (MDItemRef)_CFRuntimeCreateInstance(allocator, MDItemGetTypeID(), sizeof(struct __MDItem) - sizeof(CFRuntimeBase), NULL); 218 + if (!item) { 219 + return NULL; 220 + } 221 + 222 + // TODO: actually initialize the instance, once we do stuff with it 223 + 224 + return item; 225 + }; 226 + 227 + MDItemRef MDItemCreate(CFAllocatorRef allocator, CFStringRef path) { 228 + MDItemRef item = _MDItemBasicCreate(allocator); 229 + 230 + // TODO: do stuff 231 + 232 + return item; 233 + }; 234 + 235 + MDItemRef MDItemCreateWithURL(CFAllocatorRef allocator, CFURLRef url) { 236 + MDItemRef item = _MDItemBasicCreate(allocator); 237 + 238 + // TODO: do stuff 239 + 240 + return item; 241 + }; 242 + 243 + CFTypeRef MDItemCopyAttribute(MDItemRef item, CFStringRef name) { 244 + // stub 245 + return NULL; 246 + }; 247 + 248 + CFDictionaryRef MDItemCopyAttributes(MDItemRef item, CFArrayRef names) { 249 + // stub 250 + return NULL; 251 + }; 252 + 253 + CFDictionaryRef MDItemCopyAttributeList(MDItemRef item, ...) { 254 + // stub 255 + return NULL; 256 + }; 257 + 258 + CFArrayRef MDItemCopyAttributeNames(MDItemRef item) { 259 + // stub 260 + return NULL; 261 + }; 262 + 263 + Boolean MDItemSetAttribute(MDItemRef item, CFStringRef name, CFTypeRef value) { 264 + // i'm guessing falsy return indicates error? (this is a private function, and the code calling it does no error checking) 265 + return false; 266 + };
-1
src/frameworks/CoreServices/src/Metadata/MDQuery.c
··· 1 1 #include <CoreServices/MDQuery.h> 2 2 3 - CFStringRef kMDItemPath = CFSTR("MDItemPath"); 4 3 CFStringRef kMDQueryDidFinishNotification = CFSTR("MDQueryDidFinishNotification"); 5 4 CFStringRef kMDQueryDidUpdateNotification = CFSTR("MDQueryDidUpdateNotification"); 6 5 CFStringRef kMDQueryUpdateAddedItems = CFSTR("MDQueryUpdateAddedItems");