using System.Collections.Generic; using Emby.Dlna.Common; namespace Emby.Dlna.ContentDirectory { /// /// Defines the . /// public static class ServiceActionListBuilder { /// /// Returns a list of services that this instance provides. /// /// An . public static IEnumerable GetActions() { return new[] { GetSearchCapabilitiesAction(), GetSortCapabilitiesAction(), GetGetSystemUpdateIDAction(), GetBrowseAction(), GetSearchAction(), GetX_GetFeatureListAction(), GetXSetBookmarkAction(), GetBrowseByLetterAction() }; } /// /// Returns the action details for "GetSystemUpdateID". /// /// The . private static ServiceAction GetGetSystemUpdateIDAction() { var action = new ServiceAction { Name = "GetSystemUpdateID" }; action.ArgumentList.Add(new Argument { Name = "Id", Direction = "out", RelatedStateVariable = "SystemUpdateID" }); return action; } /// /// Returns the action details for "GetSearchCapabilities". /// /// The . private static ServiceAction GetSearchCapabilitiesAction() { var action = new ServiceAction { Name = "GetSearchCapabilities" }; action.ArgumentList.Add(new Argument { Name = "SearchCaps", Direction = "out", RelatedStateVariable = "SearchCapabilities" }); return action; } /// /// Returns the action details for "GetSortCapabilities". /// /// The . private static ServiceAction GetSortCapabilitiesAction() { var action = new ServiceAction { Name = "GetSortCapabilities" }; action.ArgumentList.Add(new Argument { Name = "SortCaps", Direction = "out", RelatedStateVariable = "SortCapabilities" }); return action; } /// /// Returns the action details for "X_GetFeatureList". /// /// The . private static ServiceAction GetX_GetFeatureListAction() { var action = new ServiceAction { Name = "X_GetFeatureList" }; action.ArgumentList.Add(new Argument { Name = "FeatureList", Direction = "out", RelatedStateVariable = "A_ARG_TYPE_Featurelist" }); return action; } /// /// Returns the action details for "Search". /// /// The . private static ServiceAction GetSearchAction() { var action = new ServiceAction { Name = "Search" }; action.ArgumentList.Add(new Argument { Name = "ContainerID", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_ObjectID" }); action.ArgumentList.Add(new Argument { Name = "SearchCriteria", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_SearchCriteria" }); action.ArgumentList.Add(new Argument { Name = "Filter", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_Filter" }); action.ArgumentList.Add(new Argument { Name = "StartingIndex", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_Index" }); action.ArgumentList.Add(new Argument { Name = "RequestedCount", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_Count" }); action.ArgumentList.Add(new Argument { Name = "SortCriteria", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_SortCriteria" }); action.ArgumentList.Add(new Argument { Name = "Result", Direction = "out", RelatedStateVariable = "A_ARG_TYPE_Result" }); action.ArgumentList.Add(new Argument { Name = "NumberReturned", Direction = "out", RelatedStateVariable = "A_ARG_TYPE_Count" }); action.ArgumentList.Add(new Argument { Name = "TotalMatches", Direction = "out", RelatedStateVariable = "A_ARG_TYPE_Count" }); action.ArgumentList.Add(new Argument { Name = "UpdateID", Direction = "out", RelatedStateVariable = "A_ARG_TYPE_UpdateID" }); return action; } /// /// Returns the action details for "Browse". /// /// The . private static ServiceAction GetBrowseAction() { var action = new ServiceAction { Name = "Browse" }; action.ArgumentList.Add(new Argument { Name = "ObjectID", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_ObjectID" }); action.ArgumentList.Add(new Argument { Name = "BrowseFlag", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_BrowseFlag" }); action.ArgumentList.Add(new Argument { Name = "Filter", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_Filter" }); action.ArgumentList.Add(new Argument { Name = "StartingIndex", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_Index" }); action.ArgumentList.Add(new Argument { Name = "RequestedCount", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_Count" }); action.ArgumentList.Add(new Argument { Name = "SortCriteria", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_SortCriteria" }); action.ArgumentList.Add(new Argument { Name = "Result", Direction = "out", RelatedStateVariable = "A_ARG_TYPE_Result" }); action.ArgumentList.Add(new Argument { Name = "NumberReturned", Direction = "out", RelatedStateVariable = "A_ARG_TYPE_Count" }); action.ArgumentList.Add(new Argument { Name = "TotalMatches", Direction = "out", RelatedStateVariable = "A_ARG_TYPE_Count" }); action.ArgumentList.Add(new Argument { Name = "UpdateID", Direction = "out", RelatedStateVariable = "A_ARG_TYPE_UpdateID" }); return action; } /// /// Returns the action details for "X_BrowseByLetter". /// /// The . private static ServiceAction GetBrowseByLetterAction() { var action = new ServiceAction { Name = "X_BrowseByLetter" }; action.ArgumentList.Add(new Argument { Name = "ObjectID", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_ObjectID" }); action.ArgumentList.Add(new Argument { Name = "BrowseFlag", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_BrowseFlag" }); action.ArgumentList.Add(new Argument { Name = "Filter", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_Filter" }); action.ArgumentList.Add(new Argument { Name = "StartingLetter", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_BrowseLetter" }); action.ArgumentList.Add(new Argument { Name = "RequestedCount", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_Count" }); action.ArgumentList.Add(new Argument { Name = "SortCriteria", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_SortCriteria" }); action.ArgumentList.Add(new Argument { Name = "Result", Direction = "out", RelatedStateVariable = "A_ARG_TYPE_Result" }); action.ArgumentList.Add(new Argument { Name = "NumberReturned", Direction = "out", RelatedStateVariable = "A_ARG_TYPE_Count" }); action.ArgumentList.Add(new Argument { Name = "TotalMatches", Direction = "out", RelatedStateVariable = "A_ARG_TYPE_Count" }); action.ArgumentList.Add(new Argument { Name = "UpdateID", Direction = "out", RelatedStateVariable = "A_ARG_TYPE_UpdateID" }); action.ArgumentList.Add(new Argument { Name = "StartingIndex", Direction = "out", RelatedStateVariable = "A_ARG_TYPE_Index" }); return action; } /// /// Returns the action details for "X_SetBookmark". /// /// The . private static ServiceAction GetXSetBookmarkAction() { var action = new ServiceAction { Name = "X_SetBookmark" }; action.ArgumentList.Add(new Argument { Name = "CategoryType", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_CategoryType" }); action.ArgumentList.Add(new Argument { Name = "RID", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_RID" }); action.ArgumentList.Add(new Argument { Name = "ObjectID", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_ObjectID" }); action.ArgumentList.Add(new Argument { Name = "PosSecond", Direction = "in", RelatedStateVariable = "A_ARG_TYPE_PosSec" }); return action; } } }