denicija | d17d536 | 2016-11-02 02:56:09 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Copyright 2016 The WebRTC Project Authors. All rights reserved. |
| 3 | * |
| 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 |
| 6 | * tree. An additional intellectual property rights grant can be found |
| 7 | * in the file PATENTS. All contributing project authors may |
| 8 | * be found in the AUTHORS file in the root of the source tree. |
| 9 | */ |
| 10 | |
| 11 | #import <Foundation/Foundation.h> |
| 12 | |
| 13 | NS_ASSUME_NONNULL_BEGIN |
| 14 | /** |
denicija | 2256e04 | 2016-11-09 06:26:18 -0800 | [diff] [blame] | 15 | * Model class for user defined settings. |
denicija | d17d536 | 2016-11-02 02:56:09 -0700 | [diff] [blame] | 16 | * |
denicija | 2256e04 | 2016-11-09 06:26:18 -0800 | [diff] [blame] | 17 | * Currently used for streaming media constraints and bitrate only. |
denicija | d17d536 | 2016-11-02 02:56:09 -0700 | [diff] [blame] | 18 | * In future audio media constraints support can be added as well. |
| 19 | * Offers list of avaliable video resolutions that can construct streaming media constraint. |
| 20 | * Exposes methods for reading and storing media constraints from persistent store. |
| 21 | * Also translates current user defined media constraint into RTCMediaConstraints |
| 22 | * dictionary. |
| 23 | */ |
denicija | 2256e04 | 2016-11-09 06:26:18 -0800 | [diff] [blame] | 24 | @interface ARDSettingsModel : NSObject |
denicija | d17d536 | 2016-11-02 02:56:09 -0700 | [diff] [blame] | 25 | |
| 26 | /** |
| 27 | * Returns array of available capture resoultions. |
| 28 | * |
| 29 | * The capture resolutions are represented as strings in the following format |
| 30 | * [width]x[height] |
| 31 | */ |
| 32 | - (NSArray<NSString *> *)availableVideoResoultionsMediaConstraints; |
| 33 | |
| 34 | /** |
| 35 | * Returns current video resolution media constraint string. |
| 36 | * If no constraint is in store, default value of 640x480 is returned. |
| 37 | * When defaulting to value, the default is saved in store for consistency reasons. |
| 38 | */ |
| 39 | - (NSString *)currentVideoResoultionConstraintFromStore; |
| 40 | |
| 41 | /** |
| 42 | * Stores the provided video resolution media constraint string into the store. |
| 43 | * |
| 44 | * If the provided constraint is no part of the available video resolutions |
| 45 | * the store operation will not be executed and NO will be returned. |
| 46 | * @param constraint the string to be stored. |
| 47 | * @return YES/NO depending on success. |
| 48 | */ |
| 49 | - (BOOL)storeVideoResoultionConstraint:(NSString *)constraint; |
| 50 | |
| 51 | /** |
| 52 | * Converts the current media constraints from store into dictionary with RTCMediaConstraints |
| 53 | * values. |
| 54 | * |
| 55 | * @return NSDictionary with RTC width and height parameters |
| 56 | */ |
| 57 | - (nullable NSDictionary *)currentMediaConstraintFromStoreAsRTCDictionary; |
denicija | d17d536 | 2016-11-02 02:56:09 -0700 | [diff] [blame] | 58 | @end |
| 59 | NS_ASSUME_NONNULL_END |