ContentDirectoryXmlBuilder.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. using Emby.Dlna.Common;
  2. using Emby.Dlna.Service;
  3. using System.Collections.Generic;
  4. namespace Emby.Dlna.ContentDirectory
  5. {
  6. public class ContentDirectoryXmlBuilder
  7. {
  8. public string GetXml()
  9. {
  10. return new ServiceXmlBuilder().GetXml(new ServiceActionListBuilder().GetActions(),
  11. GetStateVariables());
  12. }
  13. private IEnumerable<StateVariable> GetStateVariables()
  14. {
  15. var list = new List<StateVariable>();
  16. list.Add(new StateVariable
  17. {
  18. Name = "A_ARG_TYPE_Filter",
  19. DataType = "string",
  20. SendsEvents = false
  21. });
  22. list.Add(new StateVariable
  23. {
  24. Name = "A_ARG_TYPE_SortCriteria",
  25. DataType = "string",
  26. SendsEvents = false
  27. });
  28. list.Add(new StateVariable
  29. {
  30. Name = "A_ARG_TYPE_Index",
  31. DataType = "ui4",
  32. SendsEvents = false
  33. });
  34. list.Add(new StateVariable
  35. {
  36. Name = "A_ARG_TYPE_Count",
  37. DataType = "ui4",
  38. SendsEvents = false
  39. });
  40. list.Add(new StateVariable
  41. {
  42. Name = "A_ARG_TYPE_UpdateID",
  43. DataType = "ui4",
  44. SendsEvents = false
  45. });
  46. list.Add(new StateVariable
  47. {
  48. Name = "SearchCapabilities",
  49. DataType = "string",
  50. SendsEvents = false
  51. });
  52. list.Add(new StateVariable
  53. {
  54. Name = "SortCapabilities",
  55. DataType = "string",
  56. SendsEvents = false
  57. });
  58. list.Add(new StateVariable
  59. {
  60. Name = "SystemUpdateID",
  61. DataType = "ui4",
  62. SendsEvents = true
  63. });
  64. list.Add(new StateVariable
  65. {
  66. Name = "A_ARG_TYPE_SearchCriteria",
  67. DataType = "string",
  68. SendsEvents = false
  69. });
  70. list.Add(new StateVariable
  71. {
  72. Name = "A_ARG_TYPE_Result",
  73. DataType = "string",
  74. SendsEvents = false
  75. });
  76. list.Add(new StateVariable
  77. {
  78. Name = "A_ARG_TYPE_ObjectID",
  79. DataType = "string",
  80. SendsEvents = false
  81. });
  82. list.Add(new StateVariable
  83. {
  84. Name = "A_ARG_TYPE_BrowseFlag",
  85. DataType = "string",
  86. SendsEvents = false,
  87. AllowedValues = new List<string>
  88. {
  89. "BrowseMetadata",
  90. "BrowseDirectChildren"
  91. }
  92. });
  93. list.Add(new StateVariable
  94. {
  95. Name = "A_ARG_TYPE_BrowseLetter",
  96. DataType = "string",
  97. SendsEvents = false
  98. });
  99. list.Add(new StateVariable
  100. {
  101. Name = "A_ARG_TYPE_CategoryType",
  102. DataType = "ui4",
  103. SendsEvents = false
  104. });
  105. list.Add(new StateVariable
  106. {
  107. Name = "A_ARG_TYPE_RID",
  108. DataType = "ui4",
  109. SendsEvents = false
  110. });
  111. list.Add(new StateVariable
  112. {
  113. Name = "A_ARG_TYPE_PosSec",
  114. DataType = "ui4",
  115. SendsEvents = false
  116. });
  117. list.Add(new StateVariable
  118. {
  119. Name = "A_ARG_TYPE_Featurelist",
  120. DataType = "string",
  121. SendsEvents = false
  122. });
  123. return list;
  124. }
  125. }
  126. }