summaryrefslogtreecommitdiff
path: root/SmartDeviceLink/public/SDLSetMediaClockTimer.m
blob: c506477820fa20c2b2f21981e97affc15526b11c (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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
//  SDLSetMediaClockTimer.m
//


#import "SDLSetMediaClockTimer.h"

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

NS_ASSUME_NONNULL_BEGIN

@implementation SDLSetMediaClockTimer

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- (instancetype)init {
    if (self = [super initWithName:SDLRPCFunctionNameSetMediaClockTimer]) {
    }
    return self;
}
#pragma clang diagnostic pop

- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode {
    self = [self init];
    if (!self) {
        return nil;
    }
    self.updateMode = updateMode;
    return self;
}

- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode startTime:(nullable SDLStartTime *)startTime endTime:(nullable SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
    return [self initWithUpdateMode:updateMode startTime:startTime endTime:endTime audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}

- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode startTime:(nullable SDLStartTime *)startTime endTime:(nullable SDLStartTime *)endTime audioStreamingIndicator:(nullable SDLAudioStreamingIndicator)audioStreamingIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
    self = [self initWithUpdateMode:updateMode];
    if (!self) {
        return nil;
    }
    self.startTime = startTime;
    self.endTime = endTime;
    self.audioStreamingIndicator = audioStreamingIndicator;
    self.forwardSeekIndicator = forwardSeekIndicator;
    self.backSeekIndicator = backSeekIndicator;
    self.countRate = countRate;
    return self;
}

+ (instancetype)countUpFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
    return [self countUpFromStartTimeInterval:startTime toEndTimeInterval:endTime playPauseIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}

+ (instancetype)countUpFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
    SDLStartTime *startTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:startTime];
    SDLStartTime *endTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:endTime];

    return [[self alloc] initWithUpdateMode:SDLUpdateModeCountUp startTime:startTimeRPC endTime:endTimeRPC audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:forwardSeekIndicator backSeekIndicator:backSeekIndicator countRate:countRate];
}

+ (instancetype)countUpFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
    return [self countUpFromStartTime:startTime toEndTime:endTime playPauseIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}

+ (instancetype)countUpFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
    return [[self alloc] initWithUpdateMode:SDLUpdateModeCountUp startTime:startTime endTime:endTime audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:forwardSeekIndicator backSeekIndicator:backSeekIndicator countRate:countRate];
}

+ (instancetype)countDownFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
    return [self countDownFromStartTimeInterval:startTime toEndTimeInterval:endTime playPauseIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}

+ (instancetype)countDownFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
    SDLStartTime *startTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:startTime];
    SDLStartTime *endTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:endTime];

    return [[self alloc] initWithUpdateMode:SDLUpdateModeCountDown startTime:startTimeRPC endTime:endTimeRPC audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:forwardSeekIndicator backSeekIndicator:backSeekIndicator countRate:countRate];
}

+ (instancetype)countDownFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
    return [self countDownFromStartTime:startTime toEndTime:endTime playPauseIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}

+ (instancetype)countDownFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
    return [[self alloc] initWithUpdateMode:SDLUpdateModeCountDown startTime:startTime endTime:endTime audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:forwardSeekIndicator backSeekIndicator:backSeekIndicator countRate:countRate];
}

+ (instancetype)pauseWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
    return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:nil endTime:nil audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}

+ (instancetype)updatePauseWithNewStartTimeInterval:(NSTimeInterval)startTime endTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
    SDLStartTime *startTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:startTime];
    SDLStartTime *endTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:endTime];

    return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:startTimeRPC endTime:endTimeRPC audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}

+ (instancetype)updatePauseWithNewStartTime:(SDLStartTime *)startTime endTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
    return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:startTime endTime:endTime audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}

+ (instancetype)resumeWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
    return [self resumeWithPlayPauseIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}

+ (instancetype)resumeWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
    return [[self alloc] initWithUpdateMode:SDLUpdateModeResume startTime:nil endTime:nil audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:forwardSeekIndicator backSeekIndicator:backSeekIndicator countRate:countRate];
}

+ (instancetype)clearWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
    return [[self alloc] initWithUpdateMode:SDLUpdateModeClear startTime:nil endTime:nil audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}

- (void)setStartTime:(nullable SDLStartTime *)startTime {
    [self.parameters sdl_setObject:startTime forName:SDLRPCParameterNameStartTime];
}

- (nullable SDLStartTime *)startTime {
    return [self.parameters sdl_objectForName:SDLRPCParameterNameStartTime ofClass:SDLStartTime.class error:nil];
}

- (void)setEndTime:(nullable SDLStartTime *)endTime {
    [self.parameters sdl_setObject:endTime forName:SDLRPCParameterNameEndTime];
}

- (nullable SDLStartTime *)endTime {
    return [self.parameters sdl_objectForName:SDLRPCParameterNameEndTime ofClass:SDLStartTime.class error:nil];
}

- (void)setUpdateMode:(SDLUpdateMode)updateMode {
    [self.parameters sdl_setObject:updateMode forName:SDLRPCParameterNameUpdateMode];
}

- (SDLUpdateMode)updateMode {
    NSError *error = nil;
    return [self.parameters sdl_enumForName:SDLRPCParameterNameUpdateMode error:&error];
}

- (void)setAudioStreamingIndicator:(nullable SDLAudioStreamingIndicator)audioStreamingIndicator {
    [self.parameters sdl_setObject:audioStreamingIndicator forName:SDLRPCParameterNameAudioStreamingIndicator];
}

- (nullable SDLAudioStreamingIndicator)audioStreamingIndicator {
    return [self.parameters sdl_enumForName:SDLRPCParameterNameAudioStreamingIndicator error:nil];
}

- (void)setForwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator {
    [self.parameters sdl_setObject:forwardSeekIndicator forName:SDLRPCParameterNameForwardSeekIndicator];
}

- (nullable SDLSeekStreamingIndicator *)forwardSeekIndicator {
    return [self.parameters sdl_objectForName:SDLRPCParameterNameForwardSeekIndicator ofClass:SDLSeekStreamingIndicator.class error:nil];
}

- (void)setBackSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator {
    [self.parameters sdl_setObject:backSeekIndicator forName:SDLRPCParameterNameBackSeekIndicator];
}

- (nullable SDLSeekStreamingIndicator *)backSeekIndicator {
    return [self.parameters sdl_objectForName:SDLRPCParameterNameBackSeekIndicator ofClass:SDLSeekStreamingIndicator.class error:nil];
}

- (void)setCountRate:(nullable NSNumber<SDLFloat> *)countRate {
    [self.parameters sdl_setObject:countRate forName:SDLRPCParameterNameCountRate];
}

- (nullable NSNumber<SDLFloat> *)countRate {
    return [self.parameters sdl_objectForName:SDLRPCParameterNameCountRate ofClass:NSNumber.class error:nil];
}

@end

NS_ASSUME_NONNULL_END