sync model

This commit is contained in:
Luke Pulverenti 2015-03-12 16:13:10 -04:00
parent 490fe9ab2b
commit a3fd97cadb
10 changed files with 386 additions and 253 deletions

425
.idea/workspace.xml generated
View File

@ -7,8 +7,13 @@
</component>
<component name="ChangeListManager">
<list default="true" id="5b626835-6518-4586-bf6c-5bbba32974d2" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/out/artifacts/MediaBrowser_ApiClient_Java_jar/MediaBrowser.ApiClient.Java.jar" afterPath="$PROJECT_DIR$/out/artifacts/MediaBrowser_ApiClient_Java_jar/MediaBrowser.ApiClient.Java.jar" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/apiinteraction/ApiClient.java" afterPath="$PROJECT_DIR$/src/mediabrowser/apiinteraction/ApiClient.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/dlna/AudioOptions.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/dlna/AudioOptions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/livetv/LiveTvInfo.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/livetv/LiveTvInfo.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/livetv/LiveTvOptions.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/livetv/LiveTvOptions.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/PlaybackManager.java" afterPath="$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/PlaybackManager.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamBuilder.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamBuilder.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/sync/SyncJob.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/sync/SyncJob.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/sync/SyncQualityOption.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/sync/SyncQualityOption.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
</list>
<ignored path="MediaBrowser.ApiClient.Java.iws" />
@ -36,116 +41,11 @@
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="MediaSync.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/MediaSync.java">
<file leaf-file-name="PlaybackManager.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/PlaybackManager.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="3587">
<caret line="28" column="16" selection-start-line="28" selection-start-column="16" selection-end-line="28" selection-end-column="16" />
<folding>
<element signature="e#3339#3340#0" expanded="true" />
<element signature="e#3443#3444#0" expanded="true" />
<element signature="e#3612#3613#0" expanded="true" />
<element signature="e#3700#3701#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="UpdateOfflineUsersResponse.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/UpdateOfflineUsersResponse.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="918">
<caret line="25" column="25" selection-start-line="25" selection-start-column="25" selection-end-line="25" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="CameraUploadProgress.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/CameraUploadProgress.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1513">
<caret line="25" column="22" selection-start-line="25" selection-start-column="22" selection-end-line="25" selection-end-column="22" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ServerSync.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/ServerSync.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1479">
<caret line="20" column="17" selection-start-line="20" selection-start-column="17" selection-end-line="20" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="MultiServerSync.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/MultiServerSync.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="782">
<caret line="14" column="27" selection-start-line="14" selection-start-column="27" selection-end-line="14" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="MediaSyncAdapter.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/android/sync/MediaSyncAdapter.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.9550562" vertical-offset="0" max-vertical-offset="1292">
<caret line="68" column="58" selection-start-line="68" selection-start-column="58" selection-end-line="68" selection-end-column="58" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="NullAssetManager.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/data/NullAssetManager.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="2363">
<caret line="32" column="0" selection-start-line="32" selection-start-column="0" selection-end-line="32" selection-end-column="0" />
<folding>
<element signature="e#765#766#0" expanded="true" />
<element signature="e#910#911#0" expanded="true" />
<element signature="e#962#963#0" expanded="true" />
<element signature="e#1684#1685#0" expanded="true" />
<element signature="e#1711#1712#0" expanded="true" />
<element signature="e#1794#1795#0" expanded="true" />
<element signature="e#1821#1822#0" expanded="true" />
<element signature="e#1989#1990#0" expanded="true" />
<element signature="e#2035#2036#0" expanded="true" />
<element signature="e#2622#2623#0" expanded="true" />
<element signature="e#2650#2651#0" expanded="true" />
<element signature="e#2729#2730#0" expanded="true" />
<element signature="e#2757#2758#0" expanded="true" />
<element signature="e#2849#2850#0" expanded="true" />
<element signature="e#2900#2901#0" expanded="true" />
<element signature="e#3104#3105#0" expanded="true" />
<element signature="e#3131#3132#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ApiClient.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/ApiClient.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-17.103449" vertical-offset="42310" max-vertical-offset="43520">
<caret line="2522" column="6" selection-start-line="2522" selection-start-column="6" selection-end-line="2522" selection-end-column="6" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ApiClientRequestListener.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/ApiClientRequestListener.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="714">
<caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
<state vertical-scroll-proportion="0.51348436" vertical-offset="0" max-vertical-offset="2176">
<caret line="46" column="5" selection-start-line="46" selection-start-column="5" selection-end-line="46" selection-end-column="5" />
<folding />
</state>
</provider>
@ -173,12 +73,14 @@
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/android/sync/ISyncLoggerFactory.java" />
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/data/NullAssetManager.java" />
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/ApiClient.java" />
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/PlaybackManager.java" />
<option value="$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamBuilder.java" />
</list>
</option>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="529" />
<option name="y" value="39" />
<option name="x" value="130" />
<option name="y" value="3" />
<option name="width" value="1983" />
<option name="height" value="1389" />
</component>
@ -206,7 +108,6 @@
</navigator>
<panes>
<pane id="PackagesPane" />
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<PATH>
@ -383,6 +284,32 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="MediaBrowser.ApiClient.Java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="MediaBrowser.ApiClient.Java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="mediabrowser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="apiinteraction" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="playback" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="MediaBrowser.ApiClient.Java" />
@ -441,6 +368,7 @@
</PATH>
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
@ -636,33 +564,33 @@
<servers />
</component>
<component name="ToolWindowManager">
<frame x="529" y="39" width="1983" height="1389" extended-state="0" />
<editor active="false" />
<frame x="130" y="3" width="1983" height="1389" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24375" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24375" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32996634" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24300966" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.21328124" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.21328124" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="Vcs.Log.UiProperties">
@ -692,11 +620,212 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/MediaSync.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="204" max-vertical-offset="3587">
<caret line="28" column="16" selection-start-line="28" selection-start-column="16" selection-end-line="28" selection-end-column="16" />
<folding>
<element signature="e#3339#3340#0" expanded="true" />
<element signature="e#3443#3444#0" expanded="true" />
<element signature="e#3612#3613#0" expanded="true" />
<element signature="e#3700#3701#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/UpdateOfflineUsersResponse.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="306" max-vertical-offset="918">
<caret line="25" column="25" selection-start-line="25" selection-start-column="25" selection-end-line="25" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/CameraUploadProgress.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="255" max-vertical-offset="1513">
<caret line="68" column="5" selection-start-line="63" selection-start-column="4" selection-end-line="68" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/ServerSync.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="170" max-vertical-offset="1479">
<caret line="20" column="17" selection-start-line="20" selection-start-column="17" selection-end-line="20" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/MultiServerSync.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="119" max-vertical-offset="782">
<caret line="14" column="27" selection-start-line="14" selection-start-column="27" selection-end-line="14" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/android/sync/MediaSyncAdapter.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="40" max-vertical-offset="1292">
<caret line="50" column="0" selection-start-line="50" selection-start-column="0" selection-end-line="50" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/PlaybackManager.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1989">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/data/NullAssetManager.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="408" max-vertical-offset="2363">
<caret line="32" column="0" selection-start-line="32" selection-start-column="0" selection-end-line="32" selection-end-column="0" />
<folding>
<element signature="e#765#766#0" expanded="true" />
<element signature="e#910#911#0" expanded="true" />
<element signature="e#962#963#0" expanded="true" />
<element signature="e#1684#1685#0" expanded="true" />
<element signature="e#1711#1712#0" expanded="true" />
<element signature="e#1794#1795#0" expanded="true" />
<element signature="e#1821#1822#0" expanded="true" />
<element signature="e#1989#1990#0" expanded="true" />
<element signature="e#2035#2036#0" expanded="true" />
<element signature="e#2622#2623#0" expanded="true" />
<element signature="e#2650#2651#0" expanded="true" />
<element signature="e#2729#2730#0" expanded="true" />
<element signature="e#2757#2758#0" expanded="true" />
<element signature="e#2849#2850#0" expanded="true" />
<element signature="e#2900#2901#0" expanded="true" />
<element signature="e#3104#3105#0" expanded="true" />
<element signature="e#3131#3132#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/ApiClient.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="42310" max-vertical-offset="43520">
<caret line="2522" column="6" selection-start-line="2522" selection-start-column="6" selection-end-line="2522" selection-end-column="6" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/ApiClientRequestListener.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="68" max-vertical-offset="714">
<caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/MediaSync.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="204" max-vertical-offset="3587">
<caret line="28" column="16" selection-start-line="28" selection-start-column="16" selection-end-line="28" selection-end-column="16" />
<folding>
<element signature="e#3339#3340#0" expanded="true" />
<element signature="e#3443#3444#0" expanded="true" />
<element signature="e#3612#3613#0" expanded="true" />
<element signature="e#3700#3701#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/UpdateOfflineUsersResponse.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="306" max-vertical-offset="918">
<caret line="25" column="25" selection-start-line="25" selection-start-column="25" selection-end-line="25" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/CameraUploadProgress.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="255" max-vertical-offset="1513">
<caret line="25" column="22" selection-start-line="25" selection-start-column="22" selection-end-line="25" selection-end-column="22" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/ServerSync.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="170" max-vertical-offset="1479">
<caret line="20" column="17" selection-start-line="20" selection-start-column="17" selection-end-line="20" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/MultiServerSync.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="119" max-vertical-offset="782">
<caret line="14" column="27" selection-start-line="14" selection-start-column="27" selection-end-line="14" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/android/sync/MediaSyncAdapter.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1292">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/data/NullAssetManager.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="408" max-vertical-offset="2363">
<caret line="32" column="0" selection-start-line="32" selection-start-column="0" selection-end-line="32" selection-end-column="0" />
<folding>
<element signature="e#765#766#0" expanded="true" />
<element signature="e#910#911#0" expanded="true" />
<element signature="e#962#963#0" expanded="true" />
<element signature="e#1684#1685#0" expanded="true" />
<element signature="e#1711#1712#0" expanded="true" />
<element signature="e#1794#1795#0" expanded="true" />
<element signature="e#1821#1822#0" expanded="true" />
<element signature="e#1989#1990#0" expanded="true" />
<element signature="e#2035#2036#0" expanded="true" />
<element signature="e#2622#2623#0" expanded="true" />
<element signature="e#2650#2651#0" expanded="true" />
<element signature="e#2729#2730#0" expanded="true" />
<element signature="e#2757#2758#0" expanded="true" />
<element signature="e#2849#2850#0" expanded="true" />
<element signature="e#2900#2901#0" expanded="true" />
<element signature="e#3104#3105#0" expanded="true" />
<element signature="e#3131#3132#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/ApiClient.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="42310" max-vertical-offset="43520">
<caret line="2522" column="6" selection-start-line="2522" selection-start-column="6" selection-end-line="2522" selection-end-column="6" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/ApiClientRequestListener.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="68" max-vertical-offset="714">
<caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/android/profiles/Api21Builder.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.091726616" vertical-offset="0" max-vertical-offset="1751">
<caret line="3" column="19" selection-start-line="3" selection-start-column="19" selection-end-line="3" selection-end-column="19" />
<folding />
</state>
</provider>
</entry>
@ -704,15 +833,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.19009584" vertical-offset="0" max-vertical-offset="1252">
<caret line="14" column="33" selection-start-line="14" selection-start-column="33" selection-end-line="14" selection-end-column="33" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#796#797#0" expanded="true" />
<element signature="e#837#838#0" expanded="true" />
<element signature="e#888#889#0" expanded="true" />
<element signature="e#930#931#0" expanded="true" />
<element signature="e#996#997#0" expanded="true" />
<element signature="e#1043#1044#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
@ -720,7 +840,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0543131" vertical-offset="0" max-vertical-offset="1252">
<caret line="10" column="27" selection-start-line="10" selection-start-column="27" selection-end-line="10" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
@ -728,7 +847,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.41613418" vertical-offset="669" max-vertical-offset="1921">
<caret line="80" column="29" selection-start-line="80" selection-start-column="29" selection-end-line="80" selection-end-column="29" />
<folding />
</state>
</provider>
</entry>
@ -736,7 +854,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.1629393" vertical-offset="0" max-vertical-offset="1252">
<caret line="18" column="26" selection-start-line="18" selection-start-column="26" selection-end-line="18" selection-end-column="26" />
<folding />
</state>
</provider>
</entry>
@ -744,7 +861,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="272">
<caret line="10" column="0" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -752,7 +868,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.19009584" vertical-offset="0" max-vertical-offset="1252">
<caret line="23" column="0" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -777,14 +892,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/CameraUploadProgress.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1513">
<caret line="25" column="22" selection-start-line="25" selection-start-column="22" selection-end-line="25" selection-end-column="22" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/ServerSync.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1479">
@ -829,7 +936,7 @@
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/ApiClient.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-17.103449" vertical-offset="42310" max-vertical-offset="43520">
<state vertical-scroll-proportion="0.0" vertical-offset="42310" max-vertical-offset="43520">
<caret line="2522" column="6" selection-start-line="2522" selection-start-column="6" selection-end-line="2522" selection-end-column="6" />
<folding>
<element signature="imports" expanded="true" />
@ -841,7 +948,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.02715655" vertical-offset="0" max-vertical-offset="1252">
<caret line="2" column="16" selection-start-line="2" selection-start-column="16" selection-end-line="2" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
@ -849,7 +955,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.10559006" vertical-offset="0" max-vertical-offset="1105">
<caret line="17" column="11" selection-start-line="17" selection-start-column="11" selection-end-line="17" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
@ -863,8 +968,32 @@
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/android/sync/MediaSyncAdapter.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.9550562" vertical-offset="0" max-vertical-offset="1292">
<caret line="68" column="58" selection-start-line="68" selection-start-column="58" selection-end-line="68" selection-end-column="58" />
<state vertical-scroll-proportion="0.0" vertical-offset="40" max-vertical-offset="1292">
<caret line="50" column="0" selection-start-line="50" selection-start-column="0" selection-end-line="50" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/CameraUploadProgress.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="255" max-vertical-offset="1513">
<caret line="68" column="5" selection-start-line="63" selection-start-column="4" selection-end-line="68" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamBuilder.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="9670" max-vertical-offset="15164">
<caret line="597" column="38" selection-start-line="597" selection-start-column="38" selection-end-line="597" selection-end-column="38" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/PlaybackManager.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.51348436" vertical-offset="0" max-vertical-offset="2176">
<caret line="46" column="5" selection-start-line="46" selection-start-column="5" selection-end-line="46" selection-end-column="5" />
<folding />
</state>
</provider>

View File

@ -6,10 +6,7 @@ import mediabrowser.apiinteraction.EmptyResponse;
import mediabrowser.apiinteraction.device.IDevice;
import mediabrowser.apiinteraction.sync.data.ILocalAssetManager;
import mediabrowser.apiinteraction.sync.data.NullAssetManager;
import mediabrowser.model.dlna.DlnaProfileType;
import mediabrowser.model.dlna.StreamBuilder;
import mediabrowser.model.dlna.StreamInfo;
import mediabrowser.model.dlna.VideoOptions;
import mediabrowser.model.dlna.*;
import mediabrowser.model.dto.MediaSourceInfo;
import mediabrowser.model.extensions.StringHelper;
import mediabrowser.model.logging.ILogger;
@ -28,22 +25,35 @@ public class PlaybackManager {
private ILocalAssetManager localAssetManager;
private ILogger logger;
private IDevice device;
private ILocalPlayer localPlayer;
public PlaybackManager(ILocalAssetManager localAssetManager, ILogger logger, IDevice device) {
public PlaybackManager(ILocalAssetManager localAssetManager, IDevice device, ILogger logger, ILocalPlayer localPlayer)
{
this.localAssetManager = localAssetManager;
this.logger = logger;
this.device = device;
this.logger = logger;
this.localPlayer = localPlayer;
}
public PlaybackManager(ILogger logger, IDevice device) {
this.localAssetManager = new NullAssetManager();
this.logger = logger;
public PlaybackManager(ILocalAssetManager localAssetManager, IDevice device, ILogger logger)
{
this.localAssetManager = localAssetManager;
this.device = device;
this.logger = logger;
this.localPlayer = new NullLocalPlayer();
}
public PlaybackManager(IDevice device, ILogger logger, ILocalPlayer localPlayer)
{
this.localAssetManager = new NullAssetManager();
this.device = device;
this.logger = logger;
this.localPlayer = localPlayer;
}
private StreamInfo getVideoStreamInfoInternal(String serverId, VideoOptions options)
{
StreamBuilder streamBuilder = new StreamBuilder(_localPlayer);
StreamBuilder streamBuilder = new StreamBuilder(localPlayer);
LocalItem localItem = localAssetManager.getLocalItem(serverId, options.getItemId());

View File

@ -120,35 +120,6 @@ public class AudioOptions
AudioTranscodingBitrate = value;
}
/**
Gets or sets a value indicating whether [supports direct remote content].
<value><c>true</c> if [supports direct remote content]; otherwise, <c>false</c>.</value>
*/
private boolean SupportsDirectRemoteContent;
public final boolean getSupportsDirectRemoteContent()
{
return SupportsDirectRemoteContent;
}
public final void setSupportsDirectRemoteContent(boolean value)
{
SupportsDirectRemoteContent = value;
}
/**
Gets or sets a value indicating whether [supports custom HTTP headers].
<value><c>true</c> if [supports custom HTTP headers]; otherwise, <c>false</c>.</value>
*/
private boolean SupportsCustomHttpHeaders;
public final boolean getSupportsCustomHttpHeaders()
{
return SupportsCustomHttpHeaders;
}
public final void setSupportsCustomHttpHeaders(boolean value)
{
SupportsCustomHttpHeaders = value;
}
/**
Gets the maximum bitrate.

View File

@ -0,0 +1,27 @@
package mediabrowser.model.dlna;
public interface ILocalPlayer
{
/**
Determines whether this instance [can access file] the specified path.
@param path The path.
@return <c>true</c> if this instance [can access file] the specified path; otherwise, <c>false</c>.
*/
boolean CanAccessFile(String path);
/**
Determines whether this instance [can access directory] the specified path.
@param path The path.
@return <c>true</c> if this instance [can access directory] the specified path; otherwise, <c>false</c>.
*/
boolean CanAccessDirectory(String path);
/**
Determines whether this instance [can access URL] the specified URL.
@param url The URL.
@param requiresCustomRequestHeaders if set to <c>true</c> [requires custom request headers].
@return <c>true</c> if this instance [can access URL] the specified URL; otherwise, <c>false</c>.
*/
boolean CanAccessUrl(String url, boolean requiresCustomRequestHeaders);
}

View File

@ -0,0 +1,19 @@
package mediabrowser.model.dlna;
public class NullLocalPlayer implements ILocalPlayer
{
public final boolean CanAccessFile(String path)
{
return false;
}
public final boolean CanAccessDirectory(String path)
{
return false;
}
public final boolean CanAccessUrl(String url, boolean requiresCustomRequestHeaders)
{
return false;
}
}

View File

@ -8,6 +8,17 @@ import mediabrowser.model.session.*;
public class StreamBuilder
{
private ILocalPlayer _localPlayer;
public StreamBuilder(ILocalPlayer localPlayer)
{
_localPlayer = localPlayer;
}
public StreamBuilder()
{
this(new NullLocalPlayer());
}
public final StreamInfo BuildAudioItem(AudioOptions options)
{
ValidateAudioInput(options);
@ -75,7 +86,7 @@ public class StreamBuilder
StreamInfo streamInfo = BuildVideoItem(i, options);
if (streamInfo != null)
{
streams.add(streamInfo);
streams.add(streamInfo);
}
}
@ -181,7 +192,15 @@ public class StreamBuilder
if (all)
{
playlistItem.setPlayMethod(PlayMethod.DirectStream);
if (item.getProtocol() == MediaProtocol.File && _localPlayer.CanAccessFile(item.getPath()))
{
playlistItem.setPlayMethod(PlayMethod.DirectPlay);
}
else
{
playlistItem.setPlayMethod(PlayMethod.DirectStream);
}
playlistItem.setContainer(item.getContainer());
return playlistItem;
@ -534,15 +553,14 @@ public class StreamBuilder
if (mediaSource.getProtocol() == MediaProtocol.Http)
{
if (!options.getSupportsDirectRemoteContent())
if (_localPlayer.CanAccessUrl(mediaSource.getPath(), mediaSource.getRequiredHttpHeaders().size() > 0))
{
return null;
return PlayMethod.DirectPlay;
}
}
if (mediaSource.getRequiredHttpHeaders().size() > 0 && !options.getSupportsCustomHttpHeaders())
{
return null;
}
else if (mediaSource.getProtocol() == MediaProtocol.File && _localPlayer.CanAccessFile(mediaSource.getPath()))
{
return PlayMethod.DirectPlay;
}

View File

@ -17,21 +17,6 @@ public class LiveTvInfo
Services = value;
}
/**
Gets or sets the name of the active service.
<value>The name of the active service.</value>
*/
private String ActiveServiceName;
public final String getActiveServiceName()
{
return ActiveServiceName;
}
public final void setActiveServiceName(String value)
{
ActiveServiceName = value;
}
/**
Gets or sets a value indicating whether this instance is enabled.
@ -62,36 +47,6 @@ public class LiveTvInfo
EnabledUsers = value;
}
/**
Gets or sets the status.
<value>The status.</value>
*/
private LiveTvServiceStatus Status = LiveTvServiceStatus.values()[0];
public final LiveTvServiceStatus getStatus()
{
return Status;
}
public final void setStatus(LiveTvServiceStatus value)
{
Status = value;
}
/**
Gets or sets the status message.
<value>The status message.</value>
*/
private String StatusMessage;
public final String getStatusMessage()
{
return StatusMessage;
}
public final void setStatusMessage(String value)
{
StatusMessage = value;
}
public LiveTvInfo()
{
setServices(new java.util.ArrayList<LiveTvServiceInfo>());

View File

@ -11,13 +11,4 @@ public class LiveTvOptions
{
GuideDays = value;
}
private String ActiveService;
public final String getActiveService()
{
return ActiveService;
}
public final void setActiveService(String value)
{
ActiveService = value;
}
}

View File

@ -49,12 +49,12 @@ public class SyncJob
<value>The quality.</value>
*/
private SyncQuality Quality = SyncQuality.values()[0];
public final SyncQuality getQuality()
private String Quality;
public final String getQuality()
{
return Quality;
}
public final void setQuality(SyncQuality value)
public final void setQuality(String value)
{
Quality = value;
}
@ -272,6 +272,5 @@ public class SyncJob
public SyncJob()
{
setRequestedItemIds(new java.util.ArrayList<String>());
setQuality(SyncQuality.High);
}
}

View File

@ -30,4 +30,18 @@ public class SyncQualityOption
{
Id = value;
}
/**
Gets or sets a value indicating whether this instance is default.
<value><c>true</c> if this instance is default; otherwise, <c>false</c>.</value>
*/
private boolean IsDefault;
public final boolean getIsDefault()
{
return IsDefault;
}
public final void setIsDefault(boolean value)
{
IsDefault = value;
}
}