//
|
// Copyright © 2017 dahua. All rights reserved.
|
//
|
|
#ifndef DHPubDefine_h
|
#define DHPubDefine_h
|
|
// 整型索引
|
typedef NSInteger Index;
|
|
// 长整型索引
|
typedef int64_t LongIndex;
|
|
/// Http类型
|
typedef NS_ENUM(NSInteger,DHServerPortType)
|
{
|
DHServerPortTypeHttp = 80, //http 交互方式
|
DHServerPortTypeHttps = 443 //https 交互方式
|
};
|
|
//Mark::NVR,增加通道
|
typedef NS_ENUM(NSInteger, DeviceCatalog)
|
{
|
DeviceCatalogCamera, //摄像头
|
DeviceCatalogBox, //盒子
|
DeviceCatalogBoxPart, //盒子配件
|
DeviceCatalogNVR, //NVR设备
|
DeviceCatalogNVRChannel, //NVR设备通道
|
DeviceCatalogG1, //报警网关
|
DeviceCatalogG1Part //报警网关配件
|
};
|
|
typedef NS_ENUM(NSInteger, DHChannelListType)
|
{
|
DHChannelListTypeCoverFlow,
|
DHChannelListTypeList,
|
DHChannelListTypeRecord
|
} ;
|
|
typedef NS_ENUM(NSInteger, SDCardStatus)
|
{
|
SDCardStatusException = 0,// sd卡异常
|
SDCardStatusNormal = 1,// sd卡正常
|
SDCardStatusNoCard = 2,// 没有sd卡
|
SDCardStatusFormatting = 3,// 正在初始化
|
SDCardStatusError = 4 // 不存在
|
};
|
|
//针对公有云消息
|
typedef NS_ENUM(NSInteger, HlsStatus)
|
{
|
HlsStatusDownloadFail, //下载失败
|
HlsStatusDownloadBegin, //开始下载
|
HlsStatusDownloadEnd, //下载结束
|
HlsStatusSeekSuccess, //定位成功
|
HlsStatusSeekFail, //定位失败
|
HlsStatusAbortDone, //
|
HlsStatusResumeDone, //
|
HlsStatusKeyError = 11, //密码不匹配
|
};
|
|
// 加载状态
|
typedef NS_ENUM(NSInteger, DHLoadingStatus)
|
{
|
DHLoadingStatusUnknown, // 未知
|
DHLoadingStatusLoading, // 加载中
|
DHLoadingStatusSuccess, // 加载成功
|
DHLoadingStatusFail, // 加载失败
|
};
|
|
#pragma mark- 公用宏
|
|
#define SCREEN_WIDTH [[UIScreen mainScreen] bounds].size.width
|
#define SCREEN_HEIGHT [[UIScreen mainScreen] bounds].size.height
|
|
// 屏幕宽度
|
#define DH_SCREEN_SIZE_WIDTH MIN([[UIScreen mainScreen]bounds].size.width, [[UIScreen mainScreen]bounds].size.height)
|
// 屏幕高度
|
#define DH_SCREEN_SIZE_HEIGHT MAX([[UIScreen mainScreen]bounds].size.width, [[UIScreen mainScreen]bounds].size.height)
|
|
// 状态栏高度
|
#define DH_StatusBarHeight ([UIApplication sharedApplication].statusBarFrame.size.height)
|
|
// 导航栏高度
|
#define DHL_NavigationBarHeight 44.f
|
|
// Tabbar高度
|
#define DH_TabbarHeight (DH_IS_IPHONEX ? (49.f+34.f) : 49.f)
|
|
// 导航栏加状态栏高度
|
#define DH_StatusBarAndNavigationBarHeight (44.f + [UIApplication sharedApplication].statusBarFrame.size.height)
|
|
// 安全区域间隔
|
#define DH_ViewSafeAreInsets(view) ({UIEdgeInsets insets; if(@available(iOS 11.f, *)) {insets = view.safeAreaInsets;} else {insets = UIEdgeInsetsZero;} insets;})
|
|
// 底部安全距离
|
#define DH_BottomSafeMargin (DH_IS_IPHONEX ? 34.f : 0.f)
|
// 顶部安全距离
|
#define DH_TopSafeMargin (DH_IS_IPHONEX ? 24.f : 0.f)
|
// 横屏左右的安全距离
|
#define DH_LandscapeSafeMargin (DH_IS_IPHONEX ? 44.f : 0.f)
|
// 横屏左右的视频安全距离
|
#define DH_LandscapeVideoSafeMargin (DH_IS_IPHONEX ? 64.f : 0.f)
|
// 导航栏加状态栏高度
|
#define DH_NavViewHeight (DH_IS_IPHONEX ? 84.f : 64.f)
|
// 屏幕安全高度
|
#define DH_ScreenSafeHeight (DH_IS_IPHONEX ? (DH_SCREEN_SIZE_HEIGHT - 58.f) : DH_SCREEN_SIZE_HEIGHT)
|
|
#define DH_SIZE_SCALE (1.f / [UIScreen mainScreen].scale)
|
// 默认动画时间
|
#define DH_AnimationDuration 0.4f
|
|
#define DH_LEGAL_PASSWORD_REGEX @"^[A-Za-z0-9!#%,<=>@_~`\\-\\.\\/\\(\\)\\*\\+\\?\\$\\[\\]\\\\\\^\\{\\}\\|]$"
|
// 对象释放打印
|
#define DH_LOG_DEALLOCED {NSLog(@" 💔💔💔 %@ dealloced 💔💔💔", NSStringFromClass(self.class));}
|
// 图片快捷方式
|
#define DH_IMAGENAMED(imageName) [UIImage imageNamed:imageName]
|
|
// 主窗口
|
#define DH_KEY_WINDOW ([UIApplication sharedApplication].delegate).window
|
|
#define DH_IOS_VERSION ([[[UIDevice currentDevice] systemVersion] floatValue]) //iOS版本号
|
|
#define DH_CLIENT_OS_VERSION ([NSString stringWithFormat:@"iOS%@", [[UIDevice currentDevice] systemVersion]]) //iOS系统版本号
|
|
#define DH_iOS11_OR_LATER ([[[UIDevice currentDevice] systemVersion] floatValue] >= 11.0)
|
#define DH_iOS10_OR_LATER ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10.0)
|
|
|
// 判断是否为iPhone 5/5s
|
#define DH_IS_IPHONE5 (DH_SCREEN_SIZE_WIDTH == 320.0f && DH_SCREEN_SIZE_HEIGHT == 568.0f)
|
|
// 判断是否为iPhone 6/6s/7/8
|
#define DH_IS_IPHONE6_6s (DH_SCREEN_SIZE_WIDTH == 375.0f && DH_SCREEN_SIZE_HEIGHT == 667.0f)
|
|
// 判断是否为iPhone X
|
#define DH_IS_IPHONEX ((DH_SCREEN_SIZE_WIDTH == 375.0f && DH_SCREEN_SIZE_HEIGHT == 812.0f) || ((DH_SCREEN_SIZE_WIDTH == 414 && DH_SCREEN_SIZE_HEIGHT == 896)))
|
|
// 判断是否为iPhone 6Plus/6sPlus/7Plus/8Plus
|
#define DH_IS_IPHONE6Plus_6sPlus (DH_SCREEN_SIZE_WIDTH == 414.0f && DH_SCREEN_SIZE_HEIGHT == 736.0f)
|
|
#pragma mark - Convinience RETURN Macro
|
#define DH_RETURN_IF_TRUE(checkVal) {if(checkVal) \
|
{NSLog(@"🍎🍎🍎####:%s,Check value true,return...", __FUNCTION__);return;}} //判断为真返回
|
|
#define DH_RETURN_IF_FALSE(checkVal) {if(!(checkVal)) \
|
{ NSLog(@"🍎🍎🍎####:%s,Check value false,return...", __FUNCTION__); return;}} //判断为假返回
|
|
#define DH_RETURN_NIL_IF_TRUE(checkVal) {if(checkVal) \
|
{NSLog(@" 🍎🍎🍎####:%s,Check value true,return...", __FUNCTION__);return nil;}} //判断为真返回空值
|
|
#define DH_RETURN_NIL_IF_FALSE(checkVal) {if(!(checkVal)) \
|
{ NSLog(@" 🍎🍎🍎####:%s,Check value false,return...", __FUNCTION__); return nil;}} //判断为假返回空值
|
|
#define kAutoHideBarTime (4.0f) //悬浮条自动隐藏时间
|
|
#define kPictureHideBarTime (5.0f) //抓图录制图片自动隐藏时间
|
|
#pragma mark - 日期格式
|
//日期格式
|
#define kFormatTimeLocal (@"yyyyMMdd'T'HHmmss")
|
|
#define DEVICE_NAME_MAX_LIMIT 32
|
#define CHANNEL_NAME_MAX_LIMIT 32
|
|
#pragma mark - Text
|
|
//密码允许的字符(由于3.0.5版本引入安全基线需求,需要兼容旧的密码规则)
|
#define DH_LEGAL_PASSWORD_OLD @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~`!@#$%^&*()-_+={[]}|\\:;'\"<,>.?/ "
|
#define DH_LEGAL_PASSWORD @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!#$%()*+,-./<=>?@[\\]^_`{|}~"
|
#define DH_LEGAL_ACCOUNT @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890@_-."
|
#define DH_LEGAL_ACCOUNT_WITHOUT_LIMIT @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!#$%()*+,-./<=>?@[\\]^_`{|}~&'"
|
#define DH_LEGAL_NUMBER @"1234567890"
|
#define DH_LEGAL_NUMBERnABC @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
|
|
#define DH_PASSWORD_MIN_LENGTH 8 //密码最小长度
|
#define DH_PASSWORD_MAX_LENGTH 32 //密码最大长度
|
#define DH_USERNAME_MAX_LENGTH 11 //登录名最大长度
|
|
#define DH_LOG_FUN NSLog(@"FUNCTION____%s____line%d____",__FUNCTION__,__LINE__);
|
|
// 定义单例
|
#pragma mark Singleton
|
|
#define SYNTHESIZE_SINGLETON_FOR_CLASS_HEADER(__CLASSNAME__) \
|
\
|
+ (__CLASSNAME__*) sharedInstance; \
|
|
#define SYNTHESIZE_SINGLETON_FOR_CLASS(__CLASSNAME__) \
|
\
|
+ (__CLASSNAME__ *)sharedInstance { \
|
static __CLASSNAME__ *shared##__CLASSNAME__ = nil; \
|
static dispatch_once_t onceToken; \
|
dispatch_once(&onceToken, ^{ \
|
shared##__CLASSNAME__ = [[self alloc] init]; \
|
}); \
|
return shared##__CLASSNAME__; \
|
}
|
|
///MARK: Fix Category Bug
|
#define TT_FIX_CATEGORY_BUG(name) @interface TT_FIX_CATEGORY_BUG_##name:NSObject @end \
|
@implementation TT_FIX_CATEGORY_BUG_##name @end
|
|
#endif /* DHPubDefine_h */
|