ServiceActionListBuilder.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. using System.Collections.Generic;
  2. using Emby.Dlna.Common;
  3. namespace Emby.Dlna.ContentDirectory
  4. {
  5. public class ServiceActionListBuilder
  6. {
  7. public IEnumerable<ServiceAction> GetActions()
  8. {
  9. return new[]
  10. {
  11. GetSearchCapabilitiesAction(),
  12. GetSortCapabilitiesAction(),
  13. GetGetSystemUpdateIDAction(),
  14. GetBrowseAction(),
  15. GetSearchAction(),
  16. GetX_GetFeatureListAction(),
  17. GetXSetBookmarkAction(),
  18. GetBrowseByLetterAction()
  19. };
  20. }
  21. private static ServiceAction GetGetSystemUpdateIDAction()
  22. {
  23. var action = new ServiceAction
  24. {
  25. Name = "GetSystemUpdateID"
  26. };
  27. action.ArgumentList.Add(new Argument
  28. {
  29. Name = "Id",
  30. Direction = "out",
  31. RelatedStateVariable = "SystemUpdateID"
  32. });
  33. return action;
  34. }
  35. private static ServiceAction GetSearchCapabilitiesAction()
  36. {
  37. var action = new ServiceAction
  38. {
  39. Name = "GetSearchCapabilities"
  40. };
  41. action.ArgumentList.Add(new Argument
  42. {
  43. Name = "SearchCaps",
  44. Direction = "out",
  45. RelatedStateVariable = "SearchCapabilities"
  46. });
  47. return action;
  48. }
  49. private static ServiceAction GetSortCapabilitiesAction()
  50. {
  51. var action = new ServiceAction
  52. {
  53. Name = "GetSortCapabilities"
  54. };
  55. action.ArgumentList.Add(new Argument
  56. {
  57. Name = "SortCaps",
  58. Direction = "out",
  59. RelatedStateVariable = "SortCapabilities"
  60. });
  61. return action;
  62. }
  63. private static ServiceAction GetX_GetFeatureListAction()
  64. {
  65. var action = new ServiceAction
  66. {
  67. Name = "X_GetFeatureList"
  68. };
  69. action.ArgumentList.Add(new Argument
  70. {
  71. Name = "FeatureList",
  72. Direction = "out",
  73. RelatedStateVariable = "A_ARG_TYPE_Featurelist"
  74. });
  75. return action;
  76. }
  77. private static ServiceAction GetSearchAction()
  78. {
  79. var action = new ServiceAction
  80. {
  81. Name = "Search"
  82. };
  83. action.ArgumentList.Add(new Argument
  84. {
  85. Name = "ContainerID",
  86. Direction = "in",
  87. RelatedStateVariable = "A_ARG_TYPE_ObjectID"
  88. });
  89. action.ArgumentList.Add(new Argument
  90. {
  91. Name = "SearchCriteria",
  92. Direction = "in",
  93. RelatedStateVariable = "A_ARG_TYPE_SearchCriteria"
  94. });
  95. action.ArgumentList.Add(new Argument
  96. {
  97. Name = "Filter",
  98. Direction = "in",
  99. RelatedStateVariable = "A_ARG_TYPE_Filter"
  100. });
  101. action.ArgumentList.Add(new Argument
  102. {
  103. Name = "StartingIndex",
  104. Direction = "in",
  105. RelatedStateVariable = "A_ARG_TYPE_Index"
  106. });
  107. action.ArgumentList.Add(new Argument
  108. {
  109. Name = "RequestedCount",
  110. Direction = "in",
  111. RelatedStateVariable = "A_ARG_TYPE_Count"
  112. });
  113. action.ArgumentList.Add(new Argument
  114. {
  115. Name = "SortCriteria",
  116. Direction = "in",
  117. RelatedStateVariable = "A_ARG_TYPE_SortCriteria"
  118. });
  119. action.ArgumentList.Add(new Argument
  120. {
  121. Name = "Result",
  122. Direction = "out",
  123. RelatedStateVariable = "A_ARG_TYPE_Result"
  124. });
  125. action.ArgumentList.Add(new Argument
  126. {
  127. Name = "NumberReturned",
  128. Direction = "out",
  129. RelatedStateVariable = "A_ARG_TYPE_Count"
  130. });
  131. action.ArgumentList.Add(new Argument
  132. {
  133. Name = "TotalMatches",
  134. Direction = "out",
  135. RelatedStateVariable = "A_ARG_TYPE_Count"
  136. });
  137. action.ArgumentList.Add(new Argument
  138. {
  139. Name = "UpdateID",
  140. Direction = "out",
  141. RelatedStateVariable = "A_ARG_TYPE_UpdateID"
  142. });
  143. return action;
  144. }
  145. private ServiceAction GetBrowseAction()
  146. {
  147. var action = new ServiceAction
  148. {
  149. Name = "Browse"
  150. };
  151. action.ArgumentList.Add(new Argument
  152. {
  153. Name = "ObjectID",
  154. Direction = "in",
  155. RelatedStateVariable = "A_ARG_TYPE_ObjectID"
  156. });
  157. action.ArgumentList.Add(new Argument
  158. {
  159. Name = "BrowseFlag",
  160. Direction = "in",
  161. RelatedStateVariable = "A_ARG_TYPE_BrowseFlag"
  162. });
  163. action.ArgumentList.Add(new Argument
  164. {
  165. Name = "Filter",
  166. Direction = "in",
  167. RelatedStateVariable = "A_ARG_TYPE_Filter"
  168. });
  169. action.ArgumentList.Add(new Argument
  170. {
  171. Name = "StartingIndex",
  172. Direction = "in",
  173. RelatedStateVariable = "A_ARG_TYPE_Index"
  174. });
  175. action.ArgumentList.Add(new Argument
  176. {
  177. Name = "RequestedCount",
  178. Direction = "in",
  179. RelatedStateVariable = "A_ARG_TYPE_Count"
  180. });
  181. action.ArgumentList.Add(new Argument
  182. {
  183. Name = "SortCriteria",
  184. Direction = "in",
  185. RelatedStateVariable = "A_ARG_TYPE_SortCriteria"
  186. });
  187. action.ArgumentList.Add(new Argument
  188. {
  189. Name = "Result",
  190. Direction = "out",
  191. RelatedStateVariable = "A_ARG_TYPE_Result"
  192. });
  193. action.ArgumentList.Add(new Argument
  194. {
  195. Name = "NumberReturned",
  196. Direction = "out",
  197. RelatedStateVariable = "A_ARG_TYPE_Count"
  198. });
  199. action.ArgumentList.Add(new Argument
  200. {
  201. Name = "TotalMatches",
  202. Direction = "out",
  203. RelatedStateVariable = "A_ARG_TYPE_Count"
  204. });
  205. action.ArgumentList.Add(new Argument
  206. {
  207. Name = "UpdateID",
  208. Direction = "out",
  209. RelatedStateVariable = "A_ARG_TYPE_UpdateID"
  210. });
  211. return action;
  212. }
  213. private ServiceAction GetBrowseByLetterAction()
  214. {
  215. var action = new ServiceAction
  216. {
  217. Name = "X_BrowseByLetter"
  218. };
  219. action.ArgumentList.Add(new Argument
  220. {
  221. Name = "ObjectID",
  222. Direction = "in",
  223. RelatedStateVariable = "A_ARG_TYPE_ObjectID"
  224. });
  225. action.ArgumentList.Add(new Argument
  226. {
  227. Name = "BrowseFlag",
  228. Direction = "in",
  229. RelatedStateVariable = "A_ARG_TYPE_BrowseFlag"
  230. });
  231. action.ArgumentList.Add(new Argument
  232. {
  233. Name = "Filter",
  234. Direction = "in",
  235. RelatedStateVariable = "A_ARG_TYPE_Filter"
  236. });
  237. action.ArgumentList.Add(new Argument
  238. {
  239. Name = "StartingLetter",
  240. Direction = "in",
  241. RelatedStateVariable = "A_ARG_TYPE_BrowseLetter"
  242. });
  243. action.ArgumentList.Add(new Argument
  244. {
  245. Name = "RequestedCount",
  246. Direction = "in",
  247. RelatedStateVariable = "A_ARG_TYPE_Count"
  248. });
  249. action.ArgumentList.Add(new Argument
  250. {
  251. Name = "SortCriteria",
  252. Direction = "in",
  253. RelatedStateVariable = "A_ARG_TYPE_SortCriteria"
  254. });
  255. action.ArgumentList.Add(new Argument
  256. {
  257. Name = "Result",
  258. Direction = "out",
  259. RelatedStateVariable = "A_ARG_TYPE_Result"
  260. });
  261. action.ArgumentList.Add(new Argument
  262. {
  263. Name = "NumberReturned",
  264. Direction = "out",
  265. RelatedStateVariable = "A_ARG_TYPE_Count"
  266. });
  267. action.ArgumentList.Add(new Argument
  268. {
  269. Name = "TotalMatches",
  270. Direction = "out",
  271. RelatedStateVariable = "A_ARG_TYPE_Count"
  272. });
  273. action.ArgumentList.Add(new Argument
  274. {
  275. Name = "UpdateID",
  276. Direction = "out",
  277. RelatedStateVariable = "A_ARG_TYPE_UpdateID"
  278. });
  279. action.ArgumentList.Add(new Argument
  280. {
  281. Name = "StartingIndex",
  282. Direction = "out",
  283. RelatedStateVariable = "A_ARG_TYPE_Index"
  284. });
  285. return action;
  286. }
  287. private ServiceAction GetXSetBookmarkAction()
  288. {
  289. var action = new ServiceAction
  290. {
  291. Name = "X_SetBookmark"
  292. };
  293. action.ArgumentList.Add(new Argument
  294. {
  295. Name = "CategoryType",
  296. Direction = "in",
  297. RelatedStateVariable = "A_ARG_TYPE_CategoryType"
  298. });
  299. action.ArgumentList.Add(new Argument
  300. {
  301. Name = "RID",
  302. Direction = "in",
  303. RelatedStateVariable = "A_ARG_TYPE_RID"
  304. });
  305. action.ArgumentList.Add(new Argument
  306. {
  307. Name = "ObjectID",
  308. Direction = "in",
  309. RelatedStateVariable = "A_ARG_TYPE_ObjectID"
  310. });
  311. action.ArgumentList.Add(new Argument
  312. {
  313. Name = "PosSecond",
  314. Direction = "in",
  315. RelatedStateVariable = "A_ARG_TYPE_PosSec"
  316. });
  317. return action;
  318. }
  319. }
  320. }