| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2016 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2016 The WebRTC Project Authors. All rights reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| 11 #import "ARDSettingsViewController.h" | 11 #import "ARDSettingsViewController.h" |
| 12 #import "ARDSettingsModel.h" | 12 #import "ARDSettingsModel.h" |
| 13 | 13 |
| 14 NS_ASSUME_NONNULL_BEGIN | 14 NS_ASSUME_NONNULL_BEGIN |
| 15 | 15 |
| 16 typedef NS_ENUM(int, ARDSettingsSections) { | 16 typedef NS_ENUM(int, ARDSettingsSections) { |
| 17 ARDSettingsSectionMediaConstraints = 0, | 17 ARDSettingsSectionVideoResolution = 0, |
| 18 ARDSettingsSectionVideoCodec, | 18 ARDSettingsSectionVideoCodec, |
| 19 ARDSettingsSectionBitRate, | 19 ARDSettingsSectionBitRate, |
| 20 }; | 20 }; |
| 21 | 21 |
| 22 @interface ARDSettingsViewController () <UITextFieldDelegate> { | 22 @interface ARDSettingsViewController () <UITextFieldDelegate> { |
| 23 ARDSettingsModel *_settingsModel; | 23 ARDSettingsModel *_settingsModel; |
| 24 } | 24 } |
| 25 | 25 |
| 26 @end | 26 @end |
| 27 | 27 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 39 #pragma mark - View lifecycle | 39 #pragma mark - View lifecycle |
| 40 | 40 |
| 41 - (void)viewDidLoad { | 41 - (void)viewDidLoad { |
| 42 [super viewDidLoad]; | 42 [super viewDidLoad]; |
| 43 self.title = @"Settings"; | 43 self.title = @"Settings"; |
| 44 [self addDoneBarButton]; | 44 [self addDoneBarButton]; |
| 45 } | 45 } |
| 46 | 46 |
| 47 - (void)viewWillAppear:(BOOL)animated { | 47 - (void)viewWillAppear:(BOOL)animated { |
| 48 [super viewWillAppear:animated]; | 48 [super viewWillAppear:animated]; |
| 49 [self addCheckmarkInSection:ARDSettingsSectionMediaConstraints | 49 [self addCheckmarkInSection:ARDSettingsSectionVideoResolution |
| 50 withArray:[self mediaConstraintsArray] | 50 withArray:[self videoResolutionArray] |
| 51 selecting:[_settingsModel currentVideoResoultionConstraintFr
omStore]]; | 51 selecting:[_settingsModel currentVideoResolutionSettingFromS
tore]]; |
| 52 [self addCheckmarkInSection:ARDSettingsSectionVideoCodec | 52 [self addCheckmarkInSection:ARDSettingsSectionVideoCodec |
| 53 withArray:[self videoCodecArray] | 53 withArray:[self videoCodecArray] |
| 54 selecting:[_settingsModel currentVideoCodecSettingFromStore]
]; | 54 selecting:[_settingsModel currentVideoCodecSettingFromStore]
]; |
| 55 } | 55 } |
| 56 | 56 |
| 57 - (void)viewDidAppear:(BOOL)animated { | 57 - (void)viewDidAppear:(BOOL)animated { |
| 58 [super viewDidAppear:animated]; | 58 [super viewDidAppear:animated]; |
| 59 } | 59 } |
| 60 | 60 |
| 61 #pragma mark - Data source | 61 #pragma mark - Data source |
| 62 | 62 |
| 63 - (NSArray<NSString *> *)mediaConstraintsArray { | 63 - (NSArray<NSString *> *)videoResolutionArray { |
| 64 return _settingsModel.availableVideoResoultionsMediaConstraints; | 64 return _settingsModel.availableVideoResolutions; |
| 65 } | 65 } |
| 66 | 66 |
| 67 - (NSArray<NSString *> *)videoCodecArray { | 67 - (NSArray<NSString *> *)videoCodecArray { |
| 68 return _settingsModel.availableVideoCodecs; | 68 return _settingsModel.availableVideoCodecs; |
| 69 } | 69 } |
| 70 | 70 |
| 71 #pragma mark - | 71 #pragma mark - |
| 72 | 72 |
| 73 - (void)addDoneBarButton { | 73 - (void)addDoneBarButton { |
| 74 UIBarButtonItem *barItem = | 74 UIBarButtonItem *barItem = |
| (...skipping 20 matching lines...) Expand all Loading... |
| 95 } | 95 } |
| 96 | 96 |
| 97 #pragma mark - Table view data source | 97 #pragma mark - Table view data source |
| 98 | 98 |
| 99 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { | 99 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { |
| 100 return 3; | 100 return 3; |
| 101 } | 101 } |
| 102 | 102 |
| 103 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger
)section { | 103 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger
)section { |
| 104 switch (section) { | 104 switch (section) { |
| 105 case ARDSettingsSectionMediaConstraints: | 105 case ARDSettingsSectionVideoResolution: |
| 106 return self.mediaConstraintsArray.count; | 106 return self.videoResolutionArray.count; |
| 107 case ARDSettingsSectionVideoCodec: | 107 case ARDSettingsSectionVideoCodec: |
| 108 return self.videoCodecArray.count; | 108 return self.videoCodecArray.count; |
| 109 default: | 109 default: |
| 110 return 1; | 110 return 1; |
| 111 } | 111 } |
| 112 } | 112 } |
| 113 | 113 |
| 114 #pragma mark - Table view delegate helpers | 114 #pragma mark - Table view delegate helpers |
| 115 | 115 |
| 116 - (void)removeAllAccessories:(UITableView *)tableView | 116 - (void)removeAllAccessories:(UITableView *)tableView |
| (...skipping 13 matching lines...) Expand all Loading... |
| 130 UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; | 130 UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; |
| 131 cell.accessoryType = UITableViewCellAccessoryCheckmark; | 131 cell.accessoryType = UITableViewCellAccessoryCheckmark; |
| 132 [tableView deselectRowAtIndexPath:indexPath animated:YES]; | 132 [tableView deselectRowAtIndexPath:indexPath animated:YES]; |
| 133 } | 133 } |
| 134 | 134 |
| 135 #pragma mark - Table view delegate | 135 #pragma mark - Table view delegate |
| 136 | 136 |
| 137 - (nullable NSString *)tableView:(UITableView *)tableView | 137 - (nullable NSString *)tableView:(UITableView *)tableView |
| 138 titleForHeaderInSection:(NSInteger)section { | 138 titleForHeaderInSection:(NSInteger)section { |
| 139 switch (section) { | 139 switch (section) { |
| 140 case ARDSettingsSectionMediaConstraints: | 140 case ARDSettingsSectionVideoResolution: |
| 141 return @"Media constraints"; | 141 return @"Video resolution"; |
| 142 case ARDSettingsSectionVideoCodec: | 142 case ARDSettingsSectionVideoCodec: |
| 143 return @"Video codec"; | 143 return @"Video codec"; |
| 144 case ARDSettingsSectionBitRate: | 144 case ARDSettingsSectionBitRate: |
| 145 return @"Maximum bitrate"; | 145 return @"Maximum bitrate"; |
| 146 default: | 146 default: |
| 147 return @""; | 147 return @""; |
| 148 } | 148 } |
| 149 } | 149 } |
| 150 | 150 |
| 151 - (UITableViewCell *)tableView:(UITableView *)tableView | 151 - (UITableViewCell *)tableView:(UITableView *)tableView |
| 152 cellForRowAtIndexPath:(NSIndexPath *)indexPath { | 152 cellForRowAtIndexPath:(NSIndexPath *)indexPath { |
| 153 switch (indexPath.section) { | 153 switch (indexPath.section) { |
| 154 case ARDSettingsSectionMediaConstraints: | 154 case ARDSettingsSectionVideoResolution: |
| 155 return [self mediaConstraintsTableViewCellForTableView:tableView atIndexPa
th:indexPath]; | 155 return [self videoResolutionTableViewCellForTableView:tableView atIndexPat
h:indexPath]; |
| 156 | 156 |
| 157 case ARDSettingsSectionVideoCodec: | 157 case ARDSettingsSectionVideoCodec: |
| 158 return [self videoCodecTableViewCellForTableView:tableView atIndexPath:ind
exPath]; | 158 return [self videoCodecTableViewCellForTableView:tableView atIndexPath:ind
exPath]; |
| 159 | 159 |
| 160 case ARDSettingsSectionBitRate: | 160 case ARDSettingsSectionBitRate: |
| 161 return [self bitrateTableViewCellForTableView:tableView atIndexPath:indexP
ath]; | 161 return [self bitrateTableViewCellForTableView:tableView atIndexPath:indexP
ath]; |
| 162 | 162 |
| 163 default: | 163 default: |
| 164 return [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault | 164 return [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault |
| 165 reuseIdentifier:@"identifier"]; | 165 reuseIdentifier:@"identifier"]; |
| 166 } | 166 } |
| 167 } | 167 } |
| 168 | 168 |
| 169 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath
*)indexPath { | 169 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath
*)indexPath { |
| 170 switch (indexPath.section) { | 170 switch (indexPath.section) { |
| 171 case ARDSettingsSectionMediaConstraints: | 171 case ARDSettingsSectionVideoResolution: |
| 172 [self tableView:tableView didSelectMediaConstraintsCellAtIndexPath:indexPa
th]; | 172 [self tableView:tableView disSelectVideoResolutionAtIndex:indexPath]; |
| 173 break; | 173 break; |
| 174 | 174 |
| 175 case ARDSettingsSectionVideoCodec: | 175 case ARDSettingsSectionVideoCodec: |
| 176 [self tableView:tableView didSelectVideoCodecCellAtIndexPath:indexPath]; | 176 [self tableView:tableView didSelectVideoCodecCellAtIndexPath:indexPath]; |
| 177 break; | 177 break; |
| 178 } | 178 } |
| 179 } | 179 } |
| 180 | 180 |
| 181 #pragma mark - Table view delegate(Media Constraints) | 181 #pragma mark - Table view delegate(Video Resolution) |
| 182 | 182 |
| 183 - (UITableViewCell *)mediaConstraintsTableViewCellForTableView:(UITableView *)ta
bleView | 183 - (UITableViewCell *)videoResolutionTableViewCellForTableView:(UITableView *)tab
leView |
| 184 atIndexPath:(NSIndexPath *)in
dexPath { | 184 atIndexPath:(NSIndexPath *)ind
exPath { |
| 185 NSString *dequeueIdentifier = @"ARDSettingsMediaConstraintsViewCellIdentifier"
; | 185 NSString *dequeueIdentifier = @"ARDSettingsVideoResolutionViewCellIdentifier"; |
| 186 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:dequeueId
entifier]; | 186 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:dequeueId
entifier]; |
| 187 if (!cell) { | 187 if (!cell) { |
| 188 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault | 188 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault |
| 189 reuseIdentifier:dequeueIdentifier]; | 189 reuseIdentifier:dequeueIdentifier]; |
| 190 } | 190 } |
| 191 cell.textLabel.text = self.mediaConstraintsArray[indexPath.row]; | 191 cell.textLabel.text = self.videoResolutionArray[indexPath.row]; |
| 192 return cell; | 192 return cell; |
| 193 } | 193 } |
| 194 | 194 |
| 195 - (void)tableView:(UITableView *)tableView | 195 - (void)tableView:(UITableView *)tableView |
| 196 didSelectMediaConstraintsCellAtIndexPath:(NSIndexPath *)indexPath { | 196 disSelectVideoResolutionAtIndex:(NSIndexPath *)indexPath { |
| 197 [self tableView:tableView | 197 [self tableView:tableView |
| 198 updateListSelectionAtIndexPath:indexPath | 198 updateListSelectionAtIndexPath:indexPath |
| 199 inSection:ARDSettingsSectionMediaConstraints]; | 199 inSection:ARDSettingsSectionVideoResolution]; |
| 200 | 200 |
| 201 NSString *mediaConstraintsString = self.mediaConstraintsArray[indexPath.row]; | 201 NSString *videoResolution = self.videoResolutionArray[indexPath.row]; |
| 202 [_settingsModel storeVideoResoultionConstraint:mediaConstraintsString]; | 202 [_settingsModel storeVideoResolutionSetting:videoResolution]; |
| 203 } | 203 } |
| 204 | 204 |
| 205 #pragma mark - Table view delegate(Video Codec) | 205 #pragma mark - Table view delegate(Video Codec) |
| 206 | 206 |
| 207 - (UITableViewCell *)videoCodecTableViewCellForTableView:(UITableView *)tableVie
w | 207 - (UITableViewCell *)videoCodecTableViewCellForTableView:(UITableView *)tableVie
w |
| 208 atIndexPath:(NSIndexPath *)indexPat
h { | 208 atIndexPath:(NSIndexPath *)indexPat
h { |
| 209 NSString *dequeueIdentifier = @"ARDSettingsVideoCodecCellIdentifier"; | 209 NSString *dequeueIdentifier = @"ARDSettingsVideoCodecCellIdentifier"; |
| 210 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:dequeueId
entifier]; | 210 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:dequeueId
entifier]; |
| 211 if (!cell) { | 211 if (!cell) { |
| 212 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault | 212 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 274 | 274 |
| 275 if (textField.text.length != 0) { | 275 if (textField.text.length != 0) { |
| 276 bitrateNumber = [NSNumber numberWithInteger:textField.text.intValue]; | 276 bitrateNumber = [NSNumber numberWithInteger:textField.text.intValue]; |
| 277 } | 277 } |
| 278 | 278 |
| 279 [_settingsModel storeMaxBitrateSetting:bitrateNumber]; | 279 [_settingsModel storeMaxBitrateSetting:bitrateNumber]; |
| 280 } | 280 } |
| 281 | 281 |
| 282 @end | 282 @end |
| 283 NS_ASSUME_NONNULL_END | 283 NS_ASSUME_NONNULL_END |
| OLD | NEW |