From ea1b57a4d84940af1b928907953cda040ea87093 Mon Sep 17 00:00:00 2001 From: LukePulverenti Date: Fri, 8 Mar 2013 21:34:54 -0500 Subject: [PATCH] fixed installer root suffix --- .../Playback/BaseStreamingService.cs | 31 +- .../Playback/Hls/VideoHlsService.cs | 10 +- .../Playback/Progressive/AudioService.cs | 1 + .../BaseProgressiveStreamingService.cs | 6 +- .../Playback/Progressive/VideoService.cs | 9 +- MediaBrowser.Api/Playback/StreamRequest.cs | 47 +- MediaBrowser.Api/Playback/StreamState.cs | 5 + .../UserLibrary/UserLibraryService.cs | 37 +- MediaBrowser.Api/options.xml | 876 ------------------ MediaBrowser.Installer/MainWindow.xaml.cs | 2 +- 10 files changed, 105 insertions(+), 919 deletions(-) delete mode 100644 MediaBrowser.Api/options.xml diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index bc07f93de0..882eaae698 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -219,7 +219,7 @@ namespace MediaBrowser.Api.Playback var assSubtitleParam = string.Empty; - var request = state.Request; + var request = state.VideoRequest; if (state.SubtitleStream != null) { @@ -354,7 +354,7 @@ namespace MediaBrowser.Api.Playback { var outputSizeParam = string.Empty; - var request = state.Request; + var request = state.VideoRequest; // Add resolution params, if specified if (request.Width.HasValue || request.Height.HasValue || request.MaxHeight.HasValue || request.MaxWidth.HasValue) @@ -439,7 +439,7 @@ namespace MediaBrowser.Api.Playback /// /// The request. /// System.String. - protected string GetVideoCodec(StreamRequest request) + protected string GetVideoCodec(VideoStreamRequest request) { var codec = request.VideoCodec; @@ -630,20 +630,29 @@ namespace MediaBrowser.Api.Playback { request.AudioCodec = InferAudioCodec(url); } - if (!request.VideoCodec.HasValue) - { - request.VideoCodec = InferVideoCodec(url); - } - return new StreamState + var state = new StreamState { Item = item, Request = request, - AudioStream = GetMediaStream(media.MediaStreams, request.AudioStreamIndex, MediaStreamType.Audio, true), - VideoStream = GetMediaStream(media.MediaStreams, request.VideoStreamIndex, MediaStreamType.Video, true), - SubtitleStream = GetMediaStream(media.MediaStreams, request.SubtitleStreamIndex, MediaStreamType.Subtitle, false), Url = url }; + + var videoRequest = request as VideoStreamRequest; + + if (videoRequest != null) + { + if (!videoRequest.VideoCodec.HasValue) + { + videoRequest.VideoCodec = InferVideoCodec(url); + } + + state.AudioStream = GetMediaStream(media.MediaStreams, videoRequest.AudioStreamIndex, MediaStreamType.Audio, true); + state.VideoStream = GetMediaStream(media.MediaStreams, videoRequest.VideoStreamIndex, MediaStreamType.Video, true); + state.SubtitleStream = GetMediaStream(media.MediaStreams, videoRequest.SubtitleStreamIndex, MediaStreamType.Subtitle, false); + } + + return state; } /// diff --git a/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs b/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs index 7fcd4357be..39e1ca9d01 100644 --- a/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs +++ b/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs @@ -60,7 +60,7 @@ namespace MediaBrowser.Api.Playback.Hls /// System.String. protected override string GetVideoArguments(StreamState state) { - var codec = GetVideoCodec(state.Request); + var codec = GetVideoCodec(state.VideoRequest); // Right now all we support is either h264 or copy if (!codec.Equals("copy", StringComparison.OrdinalIgnoreCase) && !codec.Equals("libx264", StringComparison.OrdinalIgnoreCase)) @@ -76,19 +76,19 @@ namespace MediaBrowser.Api.Playback.Hls var args = "-codec:v:0 " + codec + " -preset superfast"; - if (state.Request.VideoBitRate.HasValue) + if (state.VideoRequest.VideoBitRate.HasValue) { - args += string.Format(" -b:v {0}", state.Request.VideoBitRate.Value); + args += string.Format(" -b:v {0}", state.VideoRequest.VideoBitRate.Value); } // Add resolution params, if specified - if (state.Request.Width.HasValue || state.Request.Height.HasValue || state.Request.MaxHeight.HasValue || state.Request.MaxWidth.HasValue) + if (state.VideoRequest.Width.HasValue || state.VideoRequest.Height.HasValue || state.VideoRequest.MaxHeight.HasValue || state.VideoRequest.MaxWidth.HasValue) { args += GetOutputSizeParam(state, codec); } // Get the output framerate based on the FrameRate param - double framerate = state.Request.Framerate ?? 0; + double framerate = state.VideoRequest.Framerate ?? 0; // We have to supply a framerate for hls, so if it's null, account for that here if (framerate.Equals(0)) diff --git a/MediaBrowser.Api/Playback/Progressive/AudioService.cs b/MediaBrowser.Api/Playback/Progressive/AudioService.cs index 86d9931524..3581d006e7 100644 --- a/MediaBrowser.Api/Playback/Progressive/AudioService.cs +++ b/MediaBrowser.Api/Playback/Progressive/AudioService.cs @@ -15,6 +15,7 @@ namespace MediaBrowser.Api.Playback.Progressive [Route("/Audio/{Id}/stream.flac", "GET")] [Route("/Audio/{Id}/stream.ogg", "GET")] [Route("/Audio/{Id}/stream", "GET")] + [ServiceStack.ServiceHost.Api(Description = "Gets an audio stream")] public class GetAudioStream : StreamRequest { diff --git a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs index c2cdf1f9ba..251cd4bd6d 100644 --- a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs +++ b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs @@ -34,14 +34,16 @@ namespace MediaBrowser.Api.Playback.Progressive return ext; } + var videoRequest = state.Request as VideoStreamRequest; + // Try to infer based on the desired video codec - if (state.Request.VideoCodec.HasValue) + if (videoRequest != null && videoRequest.VideoCodec.HasValue) { var video = state.Item as Video; if (video != null) { - switch (state.Request.VideoCodec.Value) + switch (videoRequest.VideoCodec.Value) { case VideoCodecs.H264: return ".ts"; diff --git a/MediaBrowser.Api/Playback/Progressive/VideoService.cs b/MediaBrowser.Api/Playback/Progressive/VideoService.cs index 7849e60ab4..d8ffa61fdc 100644 --- a/MediaBrowser.Api/Playback/Progressive/VideoService.cs +++ b/MediaBrowser.Api/Playback/Progressive/VideoService.cs @@ -21,7 +21,8 @@ namespace MediaBrowser.Api.Playback.Progressive [Route("/Videos/{Id}/stream.mpeg", "GET")] [Route("/Videos/{Id}/stream.avi", "GET")] [Route("/Videos/{Id}/stream", "GET")] - public class GetVideoStream : StreamRequest + [ServiceStack.ServiceHost.Api(Description = "Gets a video stream")] + public class GetVideoStream : VideoStreamRequest { } @@ -59,7 +60,7 @@ namespace MediaBrowser.Api.Playback.Progressive var probeSize = Kernel.Instance.FFMpegManager.GetProbeSizeArgument(video.VideoType, video.IsoType); // Get the output codec name - var videoCodec = GetVideoCodec(state.Request); + var videoCodec = GetVideoCodec(state.VideoRequest); var graphicalSubtitleParam = string.Empty; @@ -103,7 +104,7 @@ namespace MediaBrowser.Api.Playback.Progressive { var args = "-vcodec " + videoCodec; - var request = state.Request; + var request = state.VideoRequest; // If we're encoding video, add additional params if (!videoCodec.Equals("copy", StringComparison.OrdinalIgnoreCase)) @@ -186,7 +187,7 @@ namespace MediaBrowser.Api.Playback.Progressive /// The request. /// The video codec. /// System.String. - private string GetVideoQualityParam(StreamRequest request, string videoCodec) + private string GetVideoQualityParam(VideoStreamRequest request, string videoCodec) { var args = string.Empty; diff --git a/MediaBrowser.Api/Playback/StreamRequest.cs b/MediaBrowser.Api/Playback/StreamRequest.cs index 52118c0511..3ab13d9f65 100644 --- a/MediaBrowser.Api/Playback/StreamRequest.cs +++ b/MediaBrowser.Api/Playback/StreamRequest.cs @@ -1,4 +1,5 @@ using MediaBrowser.Model.Dto; +using ServiceStack.ServiceHost; namespace MediaBrowser.Api.Playback { @@ -11,26 +12,54 @@ namespace MediaBrowser.Api.Playback /// Gets or sets the id. /// /// The id. + [ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] public string Id { get; set; } /// /// Gets or sets the audio codec. /// /// The audio codec. + [ApiMember(Name = "AudioCodec", Description = "Optional. Specify a specific audio codec to encode to, e.g. mp3. If omitted the server will attempt to infer it using the url's extension. Options: aac, mp3, vorbis, wma.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] public AudioCodecs? AudioCodec { get; set; } /// /// Gets or sets the start time ticks. /// /// The start time ticks. + [ApiMember(Name = "StartTimeTicks", Description = "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")] public long? StartTimeTicks { get; set; } /// /// Gets or sets the audio bit rate. /// /// The audio bit rate. + [ApiMember(Name = "AudioBitRate", Description = "Optional. Specify a specific audio bitrate to encode to, e.g. 128000", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")] public int? AudioBitRate { get; set; } + /// + /// Gets or sets the audio channels. + /// + /// The audio channels. + [ApiMember(Name = "AudioChannels", Description = "Optional. Specify a specific number of audio channels to encode to, e.g. 2", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")] + public int? AudioChannels { get; set; } + + /// + /// Gets or sets the audio sample rate. + /// + /// The audio sample rate. + [ApiMember(Name = "AudioSampleRate", Description = "Optional. Specify a specific audio sample rate, e.g. 44100", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")] + public int? AudioSampleRate { get; set; } + + /// + /// Gets or sets a value indicating whether this is static. + /// + /// true if static; otherwise, false. + [ApiMember(Name = "Static", Description = "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")] + public bool Static { get; set; } + } + + public class VideoStreamRequest : StreamRequest + { /// /// Gets or sets the video codec. /// @@ -61,18 +90,6 @@ namespace MediaBrowser.Api.Playback /// The index of the subtitle stream. public int? SubtitleStreamIndex { get; set; } - /// - /// Gets or sets the audio channels. - /// - /// The audio channels. - public int? AudioChannels { get; set; } - - /// - /// Gets or sets the audio sample rate. - /// - /// The audio sample rate. - public int? AudioSampleRate { get; set; } - /// /// Gets or sets the width. /// @@ -102,11 +119,5 @@ namespace MediaBrowser.Api.Playback /// /// The framerate. public double? Framerate { get; set; } - - /// - /// Gets or sets a value indicating whether this is static. - /// - /// true if static; otherwise, false. - public bool Static { get; set; } } } diff --git a/MediaBrowser.Api/Playback/StreamState.cs b/MediaBrowser.Api/Playback/StreamState.cs index c806fbcdec..653c4d57bf 100644 --- a/MediaBrowser.Api/Playback/StreamState.cs +++ b/MediaBrowser.Api/Playback/StreamState.cs @@ -11,6 +11,11 @@ namespace MediaBrowser.Api.Playback public StreamRequest Request { get; set; } + public VideoStreamRequest VideoRequest + { + get { return (VideoStreamRequest) Request; } + } + /// /// Gets or sets the log file stream. /// diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs index 4377cf304e..d351a86961 100644 --- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs +++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs @@ -18,7 +18,6 @@ namespace MediaBrowser.Api.UserLibrary /// Class GetItem /// [Route("/Users/{UserId}/Items/{Id}", "GET")] - [Route("/Users/{UserId}/Items/Root", "GET")] [ServiceStack.ServiceHost.Api(Description = "Gets an item from a user's library")] public class GetItem : IReturn { @@ -37,6 +36,21 @@ namespace MediaBrowser.Api.UserLibrary public string Id { get; set; } } + /// + /// Class GetItem + /// + [Route("/Users/{UserId}/Items/Root", "GET")] + [ServiceStack.ServiceHost.Api(Description = "Gets the root folder from a user's library")] + public class GetRootFolder : IReturn + { + /// + /// Gets or sets the user id. + /// + /// The user id. + [ApiMember(Name = "UserId", Description = "User Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] + public Guid UserId { get; set; } + } + /// /// Class GetIntros /// @@ -214,6 +228,7 @@ namespace MediaBrowser.Api.UserLibrary } [Route("/Users/{UserId}/PlayingItems/{Id}", "POST")] + [ServiceStack.ServiceHost.Api(Description = "Reports that a user has begun playing an item")] public class OnPlaybackStart : IReturnVoid { /// @@ -232,6 +247,7 @@ namespace MediaBrowser.Api.UserLibrary } [Route("/Users/{UserId}/PlayingItems/{Id}/Progress", "POST")] + [ServiceStack.ServiceHost.Api(Description = "Reports a user's playback progress")] public class OnPlaybackProgress : IReturnVoid { /// @@ -257,6 +273,7 @@ namespace MediaBrowser.Api.UserLibrary } [Route("/Users/{UserId}/PlayingItems/{Id}", "DELETE")] + [ServiceStack.ServiceHost.Api(Description = "Reports that a user has stopped playing an item")] public class OnPlaybackStopped : IReturnVoid { /// @@ -402,7 +419,7 @@ namespace MediaBrowser.Api.UserLibrary { var user = _userManager.GetUserById(request.UserId); - var item = string.IsNullOrEmpty(request.Id) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id); + var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id); // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList(); @@ -414,6 +431,22 @@ namespace MediaBrowser.Api.UserLibrary return ToOptimizedResult(result); } + public object Get(GetRootFolder request) + { + var user = _userManager.GetUserById(request.UserId); + + var item = user.RootFolder; + + // Get everything + var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList(); + + var dtoBuilder = new DtoBuilder(Logger); + + var result = dtoBuilder.GetBaseItemDto(item, user, fields, _libraryManager).Result; + + return ToOptimizedResult(result); + } + /// /// Gets the specified request. /// diff --git a/MediaBrowser.Api/options.xml b/MediaBrowser.Api/options.xml deleted file mode 100644 index d410c1c0f1..0000000000 --- a/MediaBrowser.Api/options.xml +++ /dev/null @@ -1,876 +0,0 @@ - - - - - - - D:\Video\TV\ - D:\Video\Movies\ - D:\Video\Music Videos\ - - - - - - - - - - - - - - - - - - - - - - - False - True - 2.2.41 - C:\ProgramData\MetaBrowser 2.0\Cache\ - False - 10 - True - False - False - True - False - True - True - False - True - False - False - False - False - False - False - False - replace - add - replace - replace - replace - replace - .iso;.ts;.avi;.mpg;.mkv;.mp4;.mov;.wmv;.dvr-ms;.m4v;.wtv;.flv;.ogm - True - True - True - True - - - - - AVI - Blu-ray - DVD - HD DVD - MKV - - - Action - Adventure - Animation - Biography - Comedy - Crime - Documentary - Drama - Family - Fantasy - Film-Noir - Game-Show - History - Horror - Music - Musical - Mystery - News - Reality-TV - Romance - Sci-Fi - Short - Sport - Talk-Show - Thriller - War - Western - - - 1.33:1 - 1.78:1 - 1.85:1 - 2.35:1 - 2.40:1 - - - 20th Century Fox - 20th Century Fox Home Entertainment - Amblin Entertainment - Beacon Pictures - Castle Rock - Centropolis Entertainment - Columbia Pictures - Dimension Films - Disney - DreamWorks Pictures - Hollywood Pictures - Hyde Park Entertainment - Imagine Entertainment - Legendary Pictures - Lions Gate - Metro-Goldwyn-Mayer Pictures - Metro-Goldwyn-Mayer Studios - MGM Home Entertainment - Millennium Films - Miramax Films - Momentum Pictures - New Line Cinema - New Line Home Entertainment - Paramount Pictures - Sony Pictures - Sony Pictures Home Entertainment - Spyglass Entertainment - Studio Canal - Summit Entertainment - Touchstone Pictures - Universal Pictures - Universal Studios - Universal Studios Home Entertainment - Valhalla Motion Pictures - Walt Disney Home Entertainment - Walt Disney Pictures - Warner Bros. - Warner Bros. Entertainment - Warner Bros. Pictures - Weinstein Company - Working Title Productions - - - CS - G - NC-17 - NR - PG - PG-13 - R - S - - - Art Director - Assistant Director - Associate Producer - Background Artist - Best Boy - Body Double - Boom Operator - Camera Loader - Casting Director - Choreographer - Cinematographer - Color Consultant - Composer - Conductor - Construction Coordinator - Costume Designer - Costumer - Creator - Dialog Coach - Director - Director of Photography - Dolly Grip - Editor - Executive Producer - Extra - Foley Artist - Gaffer - Greensman - Grip - Key Grip - Line Producer - Location Manager - Matte Artist - Producer - Production Assistant - Production Illustrator - Production Manager - Property Master - Screenwriter - Set Decorator - Set Designer - Sound Designer - Technical Advisor - Unit Production Manager - Wrangler - - - A&E - ABC - AMC - BET - BRAVO - CBS - CMDY - DISC - E! - FOOD - FOX - HBO - HGTV - HIST - LIFE - MSNBC - MTV - MTV2 - NBC - NICK - SPIKE - SPIKE - SYFY - TBS - TLC - TNT - TOON - TOONW - TRUTV - TVLND - USA - - - CS - TV-14 - TV-G - TV-MA - TV-PG - TV-Y - TV-Y7 - TV-Y7-FV - - - ASF - AVC - DivX - H.264 - MPEG-1 - MPEG-2 - RealVideo - VC-1 - WMV - XviD - - - AAC - AC-3 - DTS - DTS-HD MA - E-AC-3 - FLAC - MP2 - MP3 - MPEG AUDIO - PCM - RealAudio - TrueHD - Vorbis - WMA - - - - - - - - - Shameless (US) - Castle (2009) - The River (2012) - Parenthood (2010) - The Office (US) - Smash (2012) - ¡Rob! - Archer (2009) - Once Upon a Time (2011) - Life's Too Short - Eastbound & Down - The Killing (2011) - Touch (2012) - Missing (2012) - Scandal (2012) - Wilfred (US) - Louie (2010) - The Newsroom (2012) - Boss (2011) - - - - - DVD - Blu-ray - HD DVD - - - - False - 8085 - False - - - False - - - False - - - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - - - True - True - True - - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - - - - Poster - top - 50 - - - - - False - -16777216 - -65536 - -16776961 - -16744448 - True - True - True - False - False - True - False - 0 - - - True - 50 - 1 - - - False - True - True - False - False - False - %lt - SortTitle - OriginalTitle - 7291961d-21e7-4ee2-a996-4febdb7661eb - True - 0 - 0 - 1 - 546eda50-7029-4421-9596-09b2bae293f7 - True - 1920 - 0 - 3 - 01a001e8-316b-4e49-8e9a-52b5b3179067 - False - c422bc7f-2910-4e62-9370-a5ba5ee69514 - False - d3dd7a50-859f-4bcd-91c9-51e218ce29eb - False - 0 - True - True - False - True - False - False - - - - - - False - False - True - True - True - True - True - False - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - True - True - True - True - True - - - True - True - True - True - True - True - True - False - False - False - True - True - True - True - False - False - False - True - True - False - False - True - True - True - True - True - True - False - - - - 529c3819-0ca4-4741-b6b5-48360ace62ee - - - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - 6d06642d-d028-4b10-a6fd-3060637e9883 - - - a04f5745-d062-4e14-bc36-24a673cfed22 - d04f5745-d062-4e14-bd36-24a673cfed22 - - - - D:\Video\Coming Soon\ - 1000 - HD - False - True - True - True - True - 120 - 25 - True - -1 - 2/1/0001 12:00:00 AM - True - %ot (%py).%ext - - - - - - Season;Series;Specials - Default - False - True - fcb4d2d3-c609-432a-8c51-25136d847a32 - True - 0 - 0 - 1 - False - False - 621f9839-4750-4ceb-a286-06fe96cd7f98 - True - 1920 - 0 - 3 - 36e97d3d-fa00-43d6-b809-ef3595f0b5da - True - 1 - 01a001e8-316b-4e49-8e9a-52b5b3179067 - False - c422bc7f-2910-4e62-9370-a5ba5ee69514 - False - True - %sn - %sx%0e - %en.%ext - - - False - False - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - True - - - True - False - True - True - - - False - True - True - True - True - True - True - True - True - True - True - True - True - True - True - - - - - True - False - True - False - True - True - False - True - True - True - True - True - False - True - True - True - True - False - False - - - False - False - True - False - False - False - - - True - False - False - True - False - False - False - False - False - False - False - True - - - - - 5b118517-cc37-427c-bf03-34dec95db959 - - - - default - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - - - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - 29f3e4f0-5a4b-4462-a0fe-45f0593ca5f1 - - - - 59e2f1dc-8dc7-49a7-9e47-29ce066084c3 - - - - 50 - True - False - move - True - False - False - .nfo;.txt - Season %s - Season %0s - True - False - D:\Temp\ - True - False - False - PROPER;REPACK - True - True - - D:\Video\TV\ - - - - - - - False - Default - False - - - - False - False - True - True - True - True - True - True - True - True - True - True - True - False - True - True - True - True - True - True - True - True - - - True - False - True - False - True - False - True - False - False - False - True - True - False - False - False - False - False - True - - - - - - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000000 - - - - - - \ No newline at end of file diff --git a/MediaBrowser.Installer/MainWindow.xaml.cs b/MediaBrowser.Installer/MainWindow.xaml.cs index a85a0cb9a4..431a7fb580 100644 --- a/MediaBrowser.Installer/MainWindow.xaml.cs +++ b/MediaBrowser.Installer/MainWindow.xaml.cs @@ -113,7 +113,7 @@ namespace MediaBrowser.Installer { case "mbt": PackageName = "MBTheater"; - RootSuffix = "-UI"; + RootSuffix = "-Theater"; TargetExe = "MediaBrowser.UI.exe"; FriendlyName = "Media Browser Theater"; break;