summaryrefslogtreecommitdiff
path: root/SmartDeviceLink/SDLFunctionID.m
blob: 1a3b93bbb2620868e9d592e06b0473cf8252e159 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
//  SDLFunctionID.m
//


#import "SDLFunctionID.h"

#import "NSMutableDictionary+Store.h"
#import "SDLRPCFunctionNames.h"

NS_ASSUME_NONNULL_BEGIN

@interface SDLFunctionID ()

@property (nonatomic, strong, nonnull) NSDictionary* functionIds;

@end

@implementation SDLFunctionID

+ (instancetype)sharedInstance {
    static SDLFunctionID* functionId = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        functionId = [[SDLFunctionID alloc] init];
    });
    return functionId;
}

- (instancetype)init {
    self = [super init];
    if (!self) {
        return nil;
    }

    self.functionIds = @{
                         @0: SDLRPCFunctionNameReserved,
                         @1: SDLRPCFunctionNameRegisterAppInterface,
                         @2: SDLRPCFunctionNameUnregisterAppInterface,
                         @3: SDLRPCFunctionNameSetGlobalProperties,
                         @4: SDLRPCFunctionNameResetGlobalProperties,
                         @5: SDLRPCFunctionNameAddCommand,
                         @6: SDLRPCFunctionNameDeleteCommand,
                         @7: SDLRPCFunctionNameAddSubMenu,
                         @8: SDLRPCFunctionNameDeleteSubMenu,
                         @9: SDLRPCFunctionNameCreateInteractionChoiceSet,
                         @10: SDLRPCFunctionNamePerformInteraction,
                         @11: SDLRPCFunctionNameDeleteInteractionChoiceSet,
                         @12: SDLRPCFunctionNameAlert,
                         @13: SDLRPCFunctionNameShow,
                         @14: SDLRPCFunctionNameSpeak,
                         @15: SDLRPCFunctionNameSetMediaClockTimer,
                         @16: SDLRPCFunctionNamePerformAudioPassThru,
                         @17: SDLRPCFunctionNameEndAudioPassThru,
                         @18: SDLRPCFunctionNameSubscribeButton,
                         @19: SDLRPCFunctionNameUnsubscribeButton,
                         @20: SDLRPCFunctionNameSubscribeVehicleData,
                         @21: SDLRPCFunctionNameUnsubscribeVehicleData,
                         @22: SDLRPCFunctionNameGetVehicleData,
                         @23: SDLRPCFunctionNameReadDID,
                         @24: SDLRPCFunctionNameGetDTCs,
                         @25: SDLRPCFunctionNameScrollableMessage,
                         @26: SDLRPCFunctionNameSlider,
                         @27: SDLRPCFunctionNameShowConstantTBT,
                         @28: SDLRPCFunctionNameAlertManeuver,
                         @29: SDLRPCFunctionNameUpdateTurnList,
                         @30: SDLRPCFunctionNameChangeRegistration,
                         @31: SDLRPCFunctionNameGenericResponse,
                         @32: SDLRPCFunctionNamePutFile,
                         @33: SDLRPCFunctionNameDeleteFile,
                         @34: SDLRPCFunctionNameListFiles,
                         @35: SDLRPCFunctionNameSetAppIcon,
                         @36: SDLRPCFunctionNameSetDisplayLayout,
                         @37: SDLRPCFunctionNameDiagnosticMessage,
                         @38: SDLRPCFunctionNameSystemRequest,
                         @39: SDLRPCFunctionNameSendLocation,
                         @40: SDLRPCFunctionNameDialNumber,
                         @41: SDLRPCFunctionNameButtonPress,
                         @43: SDLRPCFunctionNameGetInteriorVehicleData,
                         @44: SDLRPCFunctionNameSetInteriorVehicleData,
                         @45: SDLRPCFunctionNameGetWayPoints,
                         @46: SDLRPCFunctionNameSubscribeWayPoints,
                         @47: SDLRPCFunctionNameUnsubscribeWayPoints,
                         @48: SDLRPCFunctionNameGetSystemCapability,
                         @49: SDLRPCFunctionNameSendHapticData,
                         @50: SDLRPCFunctionNameSetCloudAppProperties,
                         @51: SDLRPCFunctionNameGetCloudAppProperties,
                         @52: SDLRPCFunctionNamePublishAppService,
                         @53: SDLRPCFunctionNameGetAppServiceData,
                         @54: SDLRPCFunctionNameGetFile,
                         @55: SDLRPCFunctionNamePerformAppServiceInteraction,
                         @56: SDLRPCFunctionNameUnpublishAppService,
                         @57: SDLRPCFunctionNameCancelInteraction,
                         @58: SDLRPCFunctionNameCloseApplication,
                         @59: SDLRPCFunctionNameShowAppMenu,
                         @60: SDLRPCFunctionNameCreateWindow,
                         @61: SDLRPCFunctionNameDeleteWindow,
                         @62: SDLRPCFunctionNameGetInteriorVehicleDataConsent,
                         @63: SDLRPCFunctionNameReleaseInteriorVehicleDataModule,
                         @32768: SDLRPCFunctionNameOnHMIStatus,
                         @32769: SDLRPCFunctionNameOnAppInterfaceUnregistered,
                         @32770: SDLRPCFunctionNameOnButtonEvent,
                         @32771: SDLRPCFunctionNameOnButtonPress,
                         @32772: SDLRPCFunctionNameOnVehicleData,
                         @32773: SDLRPCFunctionNameOnCommand,
                         @32774: SDLRPCFunctionNameOnTBTClientState,
                         @32775: SDLRPCFunctionNameOnDriverDistraction,
                         @32776: SDLRPCFunctionNameOnPermissionsChange,
                         @32777: SDLRPCFunctionNameOnAudioPassThru,
                         @32778: SDLRPCFunctionNameOnLanguageChange,
                         @32779: SDLRPCFunctionNameOnKeyboardInput,
                         @32780: SDLRPCFunctionNameOnTouchEvent,
                         @32781: SDLRPCFunctionNameOnSystemRequest,
                         @32782: SDLRPCFunctionNameOnHashChange,
                         @32783: SDLRPCFunctionNameOnInteriorVehicleData,
                         @32784: SDLRPCFunctionNameOnWayPointChange,
                         @32785: SDLRPCFunctionNameOnRCStatus,
                         @32786: SDLRPCFunctionNameOnAppServiceData,
                         @32787: SDLRPCFunctionNameOnSystemCapabilityUpdated,
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
                         @65536: SDLRPCFunctionNameEncodedSyncPData,
                         @65537: SDLRPCFunctionNameSyncPData,
                         @98304: SDLRPCFunctionNameOnEncodedSyncPData,
                         @98305: SDLRPCFunctionNameOnSyncPData
#pragma clang diagnostic pop
                         };
    return self;
}

- (nullable SDLRPCFunctionName)functionNameForId:(UInt32)functionID {
    return self.functionIds[@(functionID)];
}

- (nullable NSNumber<SDLInt> *)functionIdForName:(SDLRPCFunctionName)functionName {
    return [[self.functionIds allKeysForObject:functionName] firstObject];
}

@end

NS_ASSUME_NONNULL_END