ASControlTools.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. //
  2. // ASControlTools.h
  3. // libAS-Control
  4. //
  5. // Created by Alex Zhou on 15/12/2.
  6. // Copyright © 2015年 AirSmart. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. //#import "upnp.h"
  10. #import <Foundation/Foundation.h>
  11. //#define M3U_LOCATION "/web/playlist.m3u"
  12. //#define M3U_LEN strlen(mGetM3UList())+1
  13. //#define M3U_CONTENT_TYPE "audio/mpegurl"
  14. @protocol ASControlDelegate
  15. @optional
  16. -(void)ReceivedStopCallBack:(NSString *)nUDN;
  17. -(void)ReceivedPlayCallBack:(NSString *)nUDN;
  18. -(void)ReceivedPauseCallBack:(NSString *)nUDN;
  19. -(void)ReceivedSetVolumeCallBack:(NSString *)nUDN Volume:(NSInteger)Volume;
  20. -(void)ReceivedSetMuteCallBack:(NSString *)nUDN Mute:(NSInteger)Mute;
  21. -(void)ReceivedSetZoneMuteCallBack:(NSString *)nUDN Mute:(NSInteger)Mute;
  22. -(void)ReceivedChangeChannelCallBack:(NSString *)nUDN Channel:(NSString *)channel;
  23. -(void)ReceivedSetGroupIdCallBack:(NSString *)nUDN GrouId:(NSString *)GroupId;
  24. -(void)ReceivedSetSleepStateCallBack:(NSString *)nUDN SleepState:(NSString *)SleepState;
  25. -(void)ReceivedSetSoundSourceCallBack:(NSString *)nUDN SoundSource:(NSString *)SoundSource;
  26. -(void)ReceivedSetVolumeChannelCallBack:(NSString *)nUDN Channel:(NSString *)Channel;
  27. -(void)ReceivedSetZoneVolumeCallBack:(NSString *)nUDN Volume:(NSInteger)Volume;
  28. -(void)CallBackRemoveZoneMedia:(NSString *)nByeUDN BaseURL:(NSString *)BaseURL;
  29. -(void)CallBackRemoveRenderer:(NSString *)nByeUDN BaseURL:(NSString *)BaseURL;
  30. -(void)CallBackRemoveDMS:(NSString *)nByeUDN BaseURL:(NSString *)BaseURL;
  31. -(void)CallBackAddZoneMedia:(NSArray *)nStr Size:(NSInteger)size;
  32. -(void)CallBackAddMediaServer:(NSArray *)nStr Size:(NSInteger)size;
  33. -(void)CallBackAddMediaRenderer:(NSArray *)nStr Size:(NSInteger)size;
  34. -(void)getLocalIp:(NSString *)Ip;
  35. -(void)AddLocalResource:(NSArray *)oneSongID3Info;
  36. -(void) UpdateLocalResourceFinish;
  37. @end
  38. //
  39. //extern UpnpClient_Handle nctrlpt_handle;
  40. //extern UpnpDevice_Handle ndevice_handle;
  41. @interface ASControlTools : NSObject
  42. @property (nonatomic, assign) id<ASControlDelegate> delegate;
  43. @property int ImportLibRc;
  44. @property (strong, nonatomic) NSMutableDictionary *allIpodLibrarySongList;
  45. @property BOOL isTransformingIpodURL;
  46. + (ASControlTools *)sharedInstanceUPNP;
  47. - (NSString *) localWiFiIPAddress;
  48. - (NSString *)getIPAddress;
  49. @property (strong, nonatomic) NSString *myIp;
  50. //int libupnp_UpnpStart(NSString * name,NSString * server,NSString * renderer,int Type,int SearchTime,NSString *Devinfo, int VersionCode);
  51. int libupnp_RELoadUpnp();//检测到断网的时候,用于释放upnp内存用的,使用完这个以后,才能再次重新start upnp
  52. int libupnp_UpnpQuickExit();//退出应用程序的时候用这个释放upnp
  53. int libupnp_UpnpSetWebServerRootDir(NSString *dir);
  54. int libupnp_SearchByUUID(int sleeptime,NSString *UUID, NSString *BaseURL);//按照UUID搜索设备
  55. int libupnp_FirstCheckByBaseURL(int ListCount,NSMutableArray *BaseURList);
  56. int libupnp_SearchBybaseURL( NSString *BaseURL);
  57. int libupnp_SearchDevice( int sleeptime);//搜索设备
  58. int libupnp_SearchServer( int sleeptime);//搜索设备
  59. int libupnp_SearchDeviceAndServer( int sleeptime);//全搜索
  60. int libupnp_RemoveZoneMedia( NSString *UDN, NSString *BaseURL);//上层检测到设备丢失的时候,主动调用底层删除设备
  61. //上层检测到设备丢失的时候,主动调用底层删除设备
  62. int libupnp_RemoveRenderer(NSString *UDN , NSString *BaseURL);//上层检测到设备丢失的时候,主动调用底层删除设备
  63. int libupnp_RemoveDMS(NSString *UDN, NSString *BaseURL);//上层检测到设备丢失的时候,主动调用底层删除设备
  64. -(NSMutableArray *)libupnp_SearchDeviceRes:(NSArray *)oneDMSProperty;
  65. -(NSArray *)libupnp_GetTransportInfo:(NSString *) controlurl;
  66. -(NSArray *)libupnp_GetPositionInfo:(NSString *)controlurl;
  67. int libupnp_SetAVTransportURI(NSString *controlurl,
  68. NSString *encodedURL,
  69. NSString *title,//歌曲名
  70. NSString *artist,//艺人
  71. NSString *album,//专辑名
  72. NSString *albumArtUri,//专辑封面
  73. NSString *duration,//歌曲时长
  74. NSString *protocolInfo,//文件类型
  75. NSString *upnpclass,
  76. NSString *Timestamp,
  77. NSString *channelNum,
  78. NSString *songOrder,
  79. NSString *controlpoint,
  80. NSString *songID,
  81. NSString *songFrom,//来源类别
  82. NSString *songAlbumID);//专辑ID
  83. int libupnp_SetAVTransportURI_DLNA(NSString *controlurl,
  84. NSString *encodedURL,
  85. NSString *title,//歌曲名
  86. NSString *artist,//艺人
  87. NSString *album,//专辑名
  88. NSString *albumArtUri,//专辑封面
  89. NSString *duration,//歌曲时长
  90. NSString *protocolInfo,//文件类型
  91. NSString *upnpclass);//来源类别
  92. //下一首播放连接
  93. int libupnp_SetNextAVTransportURI(NSString *controlurl,
  94. NSString *encodedURL,
  95. NSString *title,//歌曲名
  96. NSString *artist,//艺人
  97. NSString *album,//专辑名
  98. NSString *albumArtUri,//专辑封面
  99. NSString *duration,//歌曲时长
  100. NSString *protocolInfo,//文件类型
  101. NSString *upnpclass,
  102. NSString *Timestamp,
  103. NSString *channelNum,
  104. NSString *songOrder,
  105. NSString *controlpoint);//来源类别
  106. int libupnp_Play(NSString *Controlurl);
  107. int libupnp_Next(NSString *ControlURL) ;
  108. int libupnp_Previous(NSString *ControlURL);
  109. int libupnp_Pause(NSString *ControlURL);
  110. int libupnp_ZonePause(NSString *ControlURL,NSString *ServiceType);
  111. int libupnp_Stop(NSString *Controlurl);
  112. int libupnp_ZoneStop(NSString *Controlurl,NSString *ServiceType);
  113. int libupnp_SetMediaSeek(NSString *ControlURL , NSString *Time);
  114. int libupnp_GetVolume(NSString * ControlURL ,NSString * Channel);
  115. int libupnp_SetVolume( NSString *ControlURL , NSString *Channel,int Volume);
  116. int libupnp_SetZoneVolume(NSString *ControlURL,NSString * ServiceTYPE, NSString *Sign ,int Volume);
  117. int libupnp_ZoneMediaSetChannel( NSString *Controlurl ,NSString * ServiceTYPE,NSString *Channel);
  118. int libupnp_GetMute(NSString *ControlURL ,NSString *Channel);
  119. int libupnp_SetMute(NSString *ControlURL ,NSString *Channel , int Mute);
  120. int libupnp_SetZoneMute(NSString *ControlURL, NSString *ServiceTYPE, NSString *Channel , int Mute);
  121. int libupnp_SetSKYDevName(NSString *ControlURL ,NSString *ServiceTYPE, NSString *Name);
  122. int libupnp_SetWifi(NSString *ControlURL,NSString *ServiceTYPE,NSString *Ssid, NSString *Psk, NSString *Mode);
  123. int libupnp_SetAP(NSString *ControlURL ,NSString *ServiceTYPE);
  124. int libupnp_RebootUpnp(NSString *ControlURL ,NSString *ServiceTYPE);
  125. int libupnp_SetSoundSource(NSString *ControlURL ,NSString *ServiceTYPE,NSString *SoundSource);
  126. int libupnp_SetSleepState(NSString *ControlURL ,NSString *ServiceTYPE,NSString *SleepState);
  127. int libupnp_SetNewM3UList(NSMutableArray *Seconds, NSMutableArray *Artist, NSMutableArray *Title, NSMutableArray *Url, NSMutableArray *CUE, NSMutableArray *StartTimeList, NSMutableArray *EndTimeList,NSMutableArray *VIPCanPlayList, NSMutableArray *Album,NSMutableArray *AlbumArtURI,NSMutableArray *Duration,NSMutableArray *ProtocolInfo,NSMutableArray *UpnpClass, NSMutableArray *ChannelNumList, NSMutableArray *SongOrderList, NSString *ControlPoint, NSMutableArray *SongIDList, NSMutableArray *SongFromList, NSMutableArray *SongAlbumIDList,NSString *CurrentChannel ,NSString *CurrentPlayMode,NSString *Timestamp,NSString *ChannelPure,NSString *AlbumID,NSString *ChannelInfo,NSString *UserID,int StartIndex,int EndIndex,int TotalNum,NSString *DevUUId);
  128. int libupnp_GetTransportSettings(NSString *ControlURL);
  129. int libupnp_SetPlayMode(NSString *ControlURL, NSString *CurrentPlayMode); //设置CurrentPlayMode: NORMAL/REPEAT_ALL/REPEAT_ONE/SHUFFLE
  130. int libupnp_SetGroupId(NSString *ControlURL ,NSString *ServiceTYPE, NSString *GroupId , NSMutableArray *UDN, NSMutableArray *BaseURL, NSMutableArray *GMlist, NSMutableArray *NEWorOLDlist,NSString *Action,NSString *Timestamp);
  131. -(NSArray *)libupnp_GetGroupId:(NSString *)ControlURL ServiceTYPE:(NSString *)ServiceTYPE;
  132. -(NSArray *)libupnp_GetDeviceInfo:(NSString *)ControlURL ServiceTYPE:(NSString *)ServiceTYPE;
  133. -(NSArray *)libupnp_RegistrationDEV:(NSString *)Devinfo VersionCode:(int)VersionCode ClientTypeValue:(NSString *)ClientTypeValue;
  134. int libupnp_SetUpdatePar(NSString *ControlURL,NSString *ServiceTYPE,NSString *Product_Model, NSString *Software_Version, NSString *Md5_Key, NSString *Update_Url);
  135. int libupnp_SetWifiScan(NSString *ControlURL,NSString *ServiceTYPE);
  136. -(NSMutableArray *)libupnp_GetWifiList:(NSString *)ControlURL ServiceTYPE:(NSString *)ServiceTYPE;
  137. int libupnp_SetTransportInfo(NSString *State,NSString *Status,NSString *Speed);
  138. int libupnp_UpnpStart( NSString *MAC_bak,NSString *FriendlyName,int Argc,NSArray *Argv,NSString *Devinfo, int VersionCode);
  139. int libupnp_UpnpStartTest( NSString *MAC_bak,NSString *FriendlyName,int Argc,NSArray *Argv,NSString *Devinfo, int VersionCode);
  140. void libupnp_BuildFilesList();
  141. void libupnp_StopBuildFilesList();
  142. -(void)ipodLibraryURLPlay:(NSString *)exportFileStr;
  143. -(int)getFileSize:(NSString *)filePath;
  144. int AddLocalResource(NSArray *oneSongID3Info);
  145. /*20161208添加得到所有频道的时间戳**/
  146. -(NSMutableDictionary *)libupnp_GetAllChannelTimestamp:(NSString *)ControlURL ServiceTYPE:(NSString *)ServiceTYPE;
  147. /**PlayNumFlag=======x-y代表第几频道第几首歌*/
  148. int libupnp_PlayNumFlag(NSString *ControlURL,
  149. NSString *PlayNumFlag,
  150. NSString *Timestamp,
  151. NSString *UserID,
  152. NSString *LocalPlaylistUrl,
  153. NSString *IsVIP) ;
  154. /*20170215添加得到所有频道的时间戳**/
  155. -(NSMutableDictionary *)libupnp_GetAllChannelPlayMode:(NSString *)ControlURL ServiceTYPE:(NSString *)ServiceTYPE;
  156. /*20170217添加修改频道顺序**/
  157. int libupnp_ChangeChannelOrder(NSString *ControlURL,NSMutableDictionary *orderList);
  158. int libupnp_SetChannelPlayMode(NSString *ControlURL, NSString *ChannelFlag, NSString *CurrentPlayMode);
  159. /*20170303添加清空频道**/
  160. int libupnp_SetChannelClear(NSString *ControlURL, NSString *ChannelFlag,NSString *TimeStamp);
  161. /*20170306添加设置设备闹钟**/
  162. int libupnp_SetAlarm(NSString *ControlURL,NSMutableDictionary *alarmInfo);
  163. /*20171016添加获得设备某频道M3u列表**/
  164. int libupnp_GetM3uList(NSString *ControlURL,NSString *ChannelNum);
  165. /*20180312修改频道信息通知**/
  166. int libupnp_SetChannelUpdate(NSString *ControlURL, NSString *UserID,NSString *TimeStamp,NSString *ChannelOrder,NSString *LocalPlaylistUrl);
  167. /*20180928添加设置设备低电量通知命令**/
  168. int libupnp_SetLowBatteryNotification(NSString *ControlURL,BOOL isNotification);
  169. /*20181023添加设置暂停后多久自动休眠命令**/
  170. int libupnp_SetPauseShutDownTime(NSString *ControlURL,NSString *ShutDownTime);
  171. /*20181127发送度秘token**/
  172. int libupnp_SetDuerAuthToken(NSString *ControlURL,NSString *DuerAccessToken,NSString *DuerRefreshToken);
  173. #pragma mark - 2.0
  174. - (NSDictionary *)libupnp_getPlayInfo:(NSString *)controlUrl;
  175. @end