1 // 2 // DesktopCaptureSourceView.h 3 // TgVoipWebrtc 4 // 5 // Created by Mikhail Filimonov on 28.12.2020. 6 // Copyright © 2020 Mikhail Filimonov. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h> 10 #import <AppKit/AppKit.h> 11 12 13 NS_ASSUME_NONNULL_BEGIN 14 15 @protocol VideoSourceMac 16 -(NSString *)deviceIdKey; 17 -(NSString *)title; 18 -(NSString *)uniqueKey; 19 -(BOOL)isEqual:(id)another; 20 @end 21 22 @interface DesktopCaptureSourceDataMac : NSObject 23 @property CGSize aspectSize; 24 @property double fps; 25 @property bool captureMouse; 26 -(id)initWithSize:(CGSize)size fps:(double)fps captureMouse:(bool)captureMouse; 27 28 -(NSString *)cachedKey; 29 @end 30 31 @interface DesktopCaptureSourceMac : NSObject <VideoSourceMac> 32 -(long)uniqueId; 33 -(BOOL)isWindow; 34 @end 35 36 @interface DesktopCaptureSourceScopeMac : NSObject 37 @property(nonatomic, strong, readonly) DesktopCaptureSourceDataMac *data; 38 @property(nonatomic, strong, readonly) DesktopCaptureSourceMac *source; 39 -(id)initWithSource:(DesktopCaptureSourceMac *)source data:(DesktopCaptureSourceDataMac *)data; 40 -(NSString *)cachedKey; 41 @end 42 43 @interface DesktopCaptureSourceManagerMac : NSObject 44 45 -(instancetype)init_s; 46 -(instancetype)init_w; 47 -(NSArray<DesktopCaptureSourceMac *> *)list; 48 49 -(NSView *)createForScope:(DesktopCaptureSourceScopeMac *)scope; 50 -(void)start:(DesktopCaptureSourceScopeMac *)scope; 51 -(void)stop:(DesktopCaptureSourceScopeMac *)scope; 52 53 @end 54 55 NS_ASSUME_NONNULL_END 56