using System;
|
|
using ObjCRuntime;
|
using Foundation;
|
using UIKit;
|
|
namespace Shared.IOS.ESVideoPhoneSDK
|
{
|
// The first step to creating a binding is to add your native library ("libNativeLibrary.a")
|
// to the project by right-clicking (or Control-clicking) the folder containing this source
|
// file and clicking "Add files..." and then simply select the native library (or libraries)
|
// that you want to bind.
|
//
|
// When you do that, you'll notice that MonoDevelop generates a code-behind file for each
|
// native library which will contain a [LinkWith] attribute. VisualStudio auto-detects the
|
// architectures that the native library supports and fills in that information for you,
|
// however, it cannot auto-detect any Frameworks or other system libraries that the
|
// native library may depend on, so you'll need to fill in that information yourself.
|
//
|
// Once you've done that, you're ready to move on to binding the API...
|
//
|
//
|
// Here is where you'd define your API definition for the native Objective-C library.
|
//
|
// For example, to bind the following Objective-C class:
|
//
|
// @interface Widget : NSObject {
|
// }
|
//
|
// The C# binding would look like this:
|
//
|
// [BaseType (typeof (NSObject))]
|
// interface Widget {
|
// }
|
//
|
// To bind Objective-C properties, such as:
|
//
|
// @property (nonatomic, readwrite, assign) CGPoint center;
|
//
|
// You would add a property definition in the C# interface like so:
|
//
|
// [Export ("center")]
|
// CGPoint Center { get; set; }
|
//
|
// To bind an Objective-C method, such as:
|
//
|
// -(void) doSomething:(NSObject *)object atIndex:(NSInteger)index;
|
//
|
// You would add a method definition to the C# interface like so:
|
//
|
// [Export ("doSomething:atIndex:")]
|
// void DoSomething (NSObject object, int index);
|
//
|
// Objective-C "constructors" such as:
|
//
|
// -(id)initWithElmo:(ElmoMuppet *)elmo;
|
//
|
// Can be bound as:
|
//
|
// [Export ("initWithElmo:")]
|
// IntPtr Constructor (ElmoMuppet elmo);
|
//
|
// For more information, see https://aka.ms/ios-binding
|
//
|
|
//***************************监控页面***********************
|
// typedef void (^CollectButtonCallBack)(_Bool);
|
delegate void CollectButtonCallBack(bool arg0);
|
|
// @interface ESVideoMonitorViewController : UIViewController
|
[BaseType(typeof(UIViewController))]
|
interface ESVideoMonitorViewController
|
{
|
// @property (nonatomic, strong) NSString * _Nonnull mESVideoID;
|
[Export("mESVideoID", ArgumentSemantic.Strong)]
|
string MESVideoID { get; set; }
|
|
// @property (assign, nonatomic) int mESRoomID;
|
[Export("mESRoomID")]
|
int MESRoomID { get; set; }
|
|
// @property (nonatomic, strong) NSString * _Nonnull roomName;
|
[Export("roomName", ArgumentSemantic.Strong)]
|
string RoomName { get; set; }
|
|
// @property (nonatomic, strong) NSString * _Nonnull deviceName;
|
[Export("deviceName", ArgumentSemantic.Strong)]
|
string DeviceName { get; set; }
|
|
// @property (assign, nonatomic) BOOL isCollect;
|
[Export("isCollect")]
|
bool IsCollect { get; set; }
|
|
// @property (copy, nonatomic) CollectButtonCallBack _Nonnull collectButtonCallBack;
|
[Export("collectButtonCallBack", ArgumentSemantic.Copy)]
|
CollectButtonCallBack CollectButtonCallBack { get; set; }
|
}
|
|
//***************************被呼叫页面***********************
|
//// typedef void (^CollectButtonCallBack)(_Bool);
|
//delegate void CollectButtonCallBack(bool arg0);
|
|
// @interface ESvideoVideoIntercomViewController : UIViewController
|
[BaseType(typeof(UIViewController))]
|
interface ESvideoVideoIntercomViewController
|
{
|
// @property (nonatomic, strong) NSString * _Nonnull mESVideoID;
|
[Export("mESVideoID", ArgumentSemantic.Strong)]
|
string MESVideoID { get; set; }
|
|
// @property (assign, nonatomic) int mESRoomID;
|
[Export("mESRoomID")]
|
int MESRoomID { get; set; }
|
|
// @property (nonatomic, strong) NSString * _Nonnull roomName;
|
[Export("roomName", ArgumentSemantic.Strong)]
|
string RoomName { get; set; }
|
|
// @property (nonatomic, strong) NSString * _Nonnull deviceName;
|
[Export("deviceName", ArgumentSemantic.Strong)]
|
string DeviceName { get; set; }
|
|
// @property (assign, nonatomic) BOOL isCollect;
|
[Export("isCollect")]
|
bool IsCollect { get; set; }
|
|
// @property (copy, nonatomic) CollectButtonCallBack _Nonnull collectButtonCallBack;
|
[Export("collectButtonCallBack", ArgumentSemantic.Copy)]
|
CollectButtonCallBack CollectButtonCallBack { get; set; }
|
}
|
|
|
|
// @interface ESVideo : NSObject
|
[BaseType(typeof(NSObject))]
|
interface ESVideo
|
{
|
//// @property (nonatomic, strong) int * _Nonnull es;
|
//[Export("es", ArgumentSemantic.Strong)]
|
//unsafe int* Es { get; set; }
|
|
//// @property (copy, nonatomic) int snapImageCallback;
|
//[Export("snapImageCallback", ArgumentSemantic.Copy)]
|
//int SnapImageCallback { get; set; }
|
|
// +(instancetype _Nonnull)shareInstance;
|
[Static]
|
[Export("shareInstance")]
|
ESVideo ShareInstance();
|
|
// +(void)haltSharedInstance;
|
[Static]
|
[Export("haltSharedInstance")]
|
void HaltSharedInstance();
|
|
// -(void)initSDK;
|
[Export("initSDK")]
|
void InitSDK();
|
}
|
}
|