//
// © 2018-2020 Qualcomm Technologies, Inc. and/or its subsidiaries. All rights reserved.
//

#import "IoTClient+Private.h"
#import "IoTPlayer+Private.h"
#import "IoTPlayerGroup+Private.h"
#import "IoTAppListenerProtocol.h"
#import "IoTWrappedRepresentation.h"
#import "IoTAllPlayController.h"
#import "IoTSysController.h"
#import "IoTResourceAttributes.h"

@interface IoTWrappedRepresentation (Tests)
- (int)intValueForKey:(NSString *)key;
- (double)doubleValueForKey:(NSString *)key;
- (NSString *)stringValueForKey:(NSString *)key;
- (BOOL)boolValueForKey:(NSString *)key;
@end

@interface IoTAllPlayController (Tests)
- (void)createResourceClientsForHost:(NSString *)host; // Expose internal method
@end

@interface IoTSysController (Tests)
- (void)createResourceClientsForHost:(NSString *)host; // Expose internal method
@end

@interface IoTMediaPlayerAttr (Tests)
- (void)setCapabilities:(NSArray <NSString *> *)caps;
- (void)setDisplayName:(NSString *)newName;
- (void)setEnabledControls:(IoTEnabledControlsAttr *)controls;
- (void)setPlayState:(IoTPlayStateAttr *)state;
@end

@interface IoTPlaylistGetRangeOutAttr (Tests)
- (void)setLatestSnapshotId:(NSString *)latestSnapshotId;
- (void)setItemsInRange:(NSArray <IoTPlayItemAttr *> *)itemsInRange;
- (void)setTotalSize:(int)totalSize;
@end

@interface IoTEnabledControlsAttr (Tests)
- (void)setLoopMode:(BOOL)enabled;
- (void)setNext:(BOOL)enabled;
- (void)setPause:(BOOL)enabled;
- (void)setPrevious:(BOOL)enabled;
- (void)setSeek:(BOOL)enabled;
- (void)setShuffleMode:(BOOL)enabled;
@end

@interface IoTPlayStateAttr (Tests)
- (void)setPlayState:(IoTPlayState)playState;
- (void)setPositionMsecs:(int)positionMsecs;
- (void)setQueuedItems:(NSArray <IoTQueuedItemAttr *> *)queuedItems;
@end

@interface IoTQueuedItemAttr (Tests)
- (void)setIndex:(int)index;
- (void)setPlayItem:(IoTPlayItemAttr *)playItem;
@end

@interface IoTMultichannelGroupMainAttr (Tests)
- (void)setGroup:(NSArray <IoTGroupPlayersAttr *> *)group;
@end

@interface IoTGroupPlayersAttr (Tests)
- (void)setChannelMap:(NSArray <NSNumber *> *)channelMap;
- (void)setConnected:(BOOL)connected;
- (void)setDeviceId:(NSString *)deviceId;
- (void)setDisplayName:(NSString *)displayName;
- (void)setVolumeRatio:(double)volumeRatio;
@end
