mirror of
https://github.com/jellyfin/jellyfin-sdk-kotlin.git
synced 2024-12-11 16:06:01 +00:00
sync model
This commit is contained in:
parent
6f910007d6
commit
424be1953d
497
.idea/workspace.xml
generated
497
.idea/workspace.xml
generated
@ -7,11 +7,67 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="5b626835-6518-4586-bf6c-5bbba32974d2" name="Default" comment="">
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\AndroidApiClient$1.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\AndroidApiClient.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\AndroidConnectionManager.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\AndroidCredentialProvider.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\AndroidDevice.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\AndroidNetworkConnection.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\FindServersRunnable.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\GsonJsonSerializer.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\OkHttpStack.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\UploadFileRunnable.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\VolleyErrorListener.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\VolleyHttpClient.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\VolleyStringListener.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\VolleyStringRequest.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\images\DiskLruImageCache.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\images\ImageCacheManager$1.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\images\ImageCacheManager$CacheType.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\images\ImageCacheManager.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\images\LruBitmapCache.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\profiles\AndroidProfile.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\profiles\Api16Builder.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\profiles\Api21Builder.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\sync\Authenticator.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\sync\AuthenticatorService.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\sync\ISyncLoggerFactory.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\sync\MediaContentProvider.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\sync\MediaSyncAdapter.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\sync\MediaSyncService.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\sync\MultiServerSyncProgress.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\sync\OnDemandSync.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\sync\PeriodicSync.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\sync\data\AndroidAssetManager.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\sync\data\AndroidFileRepository.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\sync\data\AndroidImageFileRepository.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\sync\data\ItemRepository.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\sync\data\UserActionRepository.class" afterPath="" />
|
||||
<change type="DELETED" beforePath="C:\Dev\MediaBrowser.ApiClient.Java\out\classes\Production\android\mediabrowser\apiinteraction\android\sync\data\UserRepository.class" afterPath="" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/out/artifacts/jar/emby.apiclient.android.jar" afterPath="$PROJECT_DIR$/out/artifacts/jar/emby.apiclient.android.jar" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/out/artifacts/jar/emby.apiclient.jar" afterPath="$PROJECT_DIR$/out/artifacts/jar/emby.apiclient.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/ConditionProcessor.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/dlna/ConditionProcessor.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/dlna/DeviceProfile.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/dlna/DeviceProfile.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/configuration/EncodingOptions.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/configuration/EncodingOptions.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/GetPlaybackInfoResponse.java" afterPath="$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/GetPlaybackInfoResponse.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/sync/LocalItem.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/sync/LocalItem.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/dto/MediaSourceInfo.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/dto/MediaSourceInfo.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/dto/MediaSourceType.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/dto/MediaSourceType.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/entities/MediaStream.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/entities/MediaStream.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/mediainfo/PlaybackInfoRequest.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/mediainfo/PlaybackInfoRequest.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/mediainfo/PlaybackInfoResponse.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/mediainfo/PlaybackInfoResponse.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/StreamInfoSorterComparator.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamInfoSorterComparator.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/session/PlaybackProgressInfo.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/session/PlaybackProgressInfo.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/session/PlaybackStopInfo.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/session/PlaybackStopInfo.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/dlna/ProfileConditionValue.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/dlna/ProfileConditionValue.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/ReportPlaybackStopResponse.java" afterPath="$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/ReportPlaybackStopResponse.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/StopTranscodingResponse.java" afterPath="$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/StopTranscodingResponse.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/dlna/StreamInfo.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamInfo.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/dlna/SubtitleProfile.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/dlna/SubtitleProfile.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/model/dlna/SubtitleStreamInfo.java" afterPath="$PROJECT_DIR$/src/mediabrowser/model/dlna/SubtitleStreamInfo.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/mediasync/SyncDataInnerResponse.java" afterPath="$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/mediasync/SyncDataInnerResponse.java" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
||||
</list>
|
||||
<ignored path="MediaBrowser.ApiClient.Java.iws" />
|
||||
@ -39,41 +95,104 @@
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<leaf>
|
||||
<file leaf-file-name="StreamInfoSorter.java" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamInfoSorter.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="391">
|
||||
<caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="PlaybackManager.java" pinned="false" current-in-tab="true">
|
||||
<file leaf-file-name="PlaybackManager.java" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/PlaybackManager.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.6686047" vertical-offset="1605" max-vertical-offset="3638">
|
||||
<caret line="157" column="0" selection-start-line="157" selection-start-column="0" selection-end-line="157" selection-end-column="0" />
|
||||
<state vertical-scroll-proportion="-15.344828" vertical-offset="2530" max-vertical-offset="3842">
|
||||
<caret line="197" column="33" selection-start-line="197" selection-start-column="33" selection-end-line="197" selection-end-column="33" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="StopTranscodingResponse.java" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/StopTranscodingResponse.java">
|
||||
<file leaf-file-name="StreamBuilder.java" pinned="false" current-in-tab="false">
|
||||
<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="0" max-vertical-offset="901">
|
||||
<caret line="20" column="11" selection-start-line="20" selection-start-column="11" selection-end-line="20" selection-end-column="11" />
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="10090" max-vertical-offset="15742">
|
||||
<caret line="623" column="38" selection-start-line="623" selection-start-column="38" selection-end-line="623" selection-end-column="38" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="StreamInfo.java" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamInfo.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="3834" max-vertical-offset="11101">
|
||||
<caret line="440" column="24" selection-start-line="440" selection-start-column="24" selection-end-line="440" selection-end-column="24" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="ReportPlaybackStopResponse.java" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/ReportPlaybackStopResponse.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="935">
|
||||
<caret line="36" column="82" selection-start-line="36" selection-start-column="82" selection-end-line="36" selection-end-column="82" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="MediaSync.java" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/mediasync/MediaSync.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="616" max-vertical-offset="8721">
|
||||
<caret line="534" column="9" selection-start-line="534" selection-start-column="9" selection-end-line="534" selection-end-column="9" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="SecondSyncDataResponse.java" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/mediasync/SecondSyncDataResponse.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="595">
|
||||
<caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="MediaSyncProgress.java" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/mediasync/MediaSyncProgress.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="680">
|
||||
<caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="SyncDataInnerResponse.java" pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/mediasync/SyncDataInnerResponse.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.3813495" vertical-offset="7" max-vertical-offset="1326">
|
||||
<caret line="39" column="15" selection-start-line="39" selection-start-column="15" selection-end-line="39" selection-end-column="15" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="LocalItem.java" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/sync/LocalItem.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1309">
|
||||
<caret line="96" column="50" selection-start-line="96" selection-start-column="50" selection-end-line="96" selection-end-column="50" />
|
||||
<folding>
|
||||
<element signature="e#1818#1819#0" expanded="true" />
|
||||
<element signature="e#1847#1848#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="GetPlaybackInfoResponse.java" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/GetPlaybackInfoResponse.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1020">
|
||||
<caret line="24" column="43" selection-start-line="24" selection-start-column="43" selection-end-line="24" selection-end-column="43" />
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="816" max-vertical-offset="1020">
|
||||
<caret line="48" column="63" selection-start-line="48" selection-start-column="63" selection-end-line="48" selection-end-column="63" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
@ -81,42 +200,6 @@
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="ChainedComparator.java" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/dlna/ChainedComparator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="578">
|
||||
<caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="StreamInfoSorterComparator.java" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamInfoSorterComparator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1037">
|
||||
<caret line="20" column="54" selection-start-line="20" selection-start-column="54" selection-end-line="20" selection-end-column="54" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="e#271#272#0" expanded="true" />
|
||||
<element signature="e#296#297#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="BaseStreamInfoSorter.java" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/dlna/BaseStreamInfoSorter.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="323">
|
||||
<caret line="4" column="22" selection-start-line="4" selection-start-column="22" selection-end-line="4" selection-end-column="22" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
@ -125,13 +208,10 @@
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/ReportPlaybackStopResponse.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/IConnectionManager.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/connectionmanager/DeviceResumeFromSleepObservable.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/connectionmanager/ConnectionManager.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/data/comparators/NameComparator.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/data/comparators/SortNameComparator.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/StopTranscodingResponse.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/model/results/ReadySyncItemsResult.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/data/ILocalAssetManager.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/data/NullAssetManager.java" />
|
||||
@ -162,11 +242,8 @@
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/model/tasks/TaskTriggerInfo.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/model/dto/BaseItemDto.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/data/LocalAssetManager.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamBuilder.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/model/dlna/profiles/DefaultProfile.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/model/apiclient/ServerInfo.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamInfo.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/ApiClient.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/model/apiclient/ServerCredentials.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/model/dlna/BaseStreamInfoSorter.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/model/dlna/ChainedComparator.java" />
|
||||
@ -174,8 +251,14 @@
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamInfoSorter.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamInfoSorterComparator.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/Video.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/StopTranscodingResponse.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/GetPlaybackInfoResponse.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/mediasync/SyncDataInnerResponse.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" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/ReportPlaybackStopResponse.java" />
|
||||
<option value="$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamInfo.java" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@ -282,6 +365,96 @@
|
||||
<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="sync" />
|
||||
<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="sync" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="server" />
|
||||
<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="sync" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="server" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="mediasync" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="MediaBrowser.ApiClient.Java" />
|
||||
@ -569,7 +742,7 @@
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="54" y="-8" width="2514" height="1456" extended-state="0" />
|
||||
<editor active="false" />
|
||||
<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" />
|
||||
@ -581,20 +754,20 @@
|
||||
<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.19135308" 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.21306607" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.21306607" 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="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">
|
||||
@ -624,41 +797,6 @@
|
||||
<option name="FILTER_TARGETS" value="false" />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/android/src/mediabrowser/apiinteraction/android/images/DiskLruImageCache.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="2635">
|
||||
<caret line="112" column="0" selection-start-line="112" selection-start-column="0" selection-end-line="112" selection-end-column="0" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/data/IItemRepository.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="527">
|
||||
<caret line="12" column="21" selection-start-line="12" selection-start-column="14" selection-end-line="12" selection-end-column="21" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/tangible/DotNetToJavaStringHelper.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.3328279" vertical-offset="71" max-vertical-offset="5865">
|
||||
<caret line="33" column="25" selection-start-line="33" selection-start-column="25" selection-end-line="33" selection-end-column="25" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/AppData/Local/Android/sdk/sources/android-21/java/util/ArrayList.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.3328279" vertical-offset="7857" max-vertical-offset="10863">
|
||||
<caret line="515" column="29" selection-start-line="515" selection-start-column="29" selection-end-line="515" selection-end-column="29" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/sync/LocalItemQuery.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.025777103" vertical-offset="0" max-vertical-offset="1319">
|
||||
<caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/sync/LocalItemInfo.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.025777103" vertical-offset="0" max-vertical-offset="1319">
|
||||
@ -757,13 +895,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/mediasync/MediaSync.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.02868217" vertical-offset="4791" max-vertical-offset="7667">
|
||||
<caret line="381" column="51" selection-start-line="381" selection-start-column="51" selection-end-line="381" selection-end-column="51" />
|
||||
</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="0" max-vertical-offset="2074">
|
||||
@ -775,7 +906,6 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1309">
|
||||
<caret line="43" column="0" selection-start-line="43" selection-start-column="0" selection-end-line="43" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@ -811,10 +941,6 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="532" max-vertical-offset="1581">
|
||||
<caret line="72" column="47" selection-start-line="72" selection-start-column="47" selection-end-line="85" selection-end-column="9" />
|
||||
<folding>
|
||||
<element signature="e#1315#1316#0" expanded="false" />
|
||||
<element signature="e#1364#1365#0" expanded="false" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@ -822,7 +948,6 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.47156936" vertical-offset="398" max-vertical-offset="1717">
|
||||
<caret line="72" column="45" selection-start-line="72" selection-start-column="45" selection-end-line="72" selection-end-column="45" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@ -830,7 +955,6 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.4253222" vertical-offset="0" max-vertical-offset="1319">
|
||||
<caret line="53" column="23" selection-start-line="53" selection-start-column="23" selection-end-line="53" selection-end-column="23" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@ -838,7 +962,6 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.09021986" vertical-offset="0" max-vertical-offset="1319">
|
||||
<caret line="11" column="47" selection-start-line="11" selection-start-column="47" selection-end-line="11" selection-end-column="47" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@ -846,7 +969,6 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="459" max-vertical-offset="4743">
|
||||
<caret line="37" column="5" selection-start-line="37" selection-start-column="5" selection-end-line="37" selection-end-column="5" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@ -854,7 +976,6 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.21910538" vertical-offset="0" max-vertical-offset="1319">
|
||||
<caret line="22" column="37" selection-start-line="22" selection-start-column="37" selection-end-line="22" selection-end-column="37" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@ -862,7 +983,6 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="544" max-vertical-offset="2754">
|
||||
<caret line="37" column="42" selection-start-line="37" selection-start-column="42" selection-end-line="37" selection-end-column="42" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@ -870,9 +990,6 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="476">
|
||||
<caret line="16" column="32" selection-start-line="16" selection-start-column="32" selection-end-line="16" selection-end-column="32" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@ -880,7 +997,6 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="-0.45640635" vertical-offset="993" max-vertical-offset="2312">
|
||||
<caret line="32" column="48" selection-start-line="32" selection-start-column="48" selection-end-line="32" selection-end-column="48" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@ -888,7 +1004,6 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.6444276" vertical-offset="0" max-vertical-offset="1319">
|
||||
<caret line="77" column="41" selection-start-line="77" selection-start-column="41" selection-end-line="77" selection-end-column="41" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@ -896,7 +1011,6 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.49886277" vertical-offset="22037" max-vertical-offset="23647">
|
||||
<caret line="2272" column="80" selection-start-line="2272" selection-start-column="80" selection-end-line="2272" selection-end-column="80" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@ -904,15 +1018,6 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="6601" max-vertical-offset="11424">
|
||||
<caret line="448" column="49" selection-start-line="448" selection-start-column="49" selection-end-line="448" selection-end-column="49" />
|
||||
<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="9767" max-vertical-offset="15283">
|
||||
<caret line="626" column="5" selection-start-line="626" selection-start-column="5" selection-end-line="626" selection-end-column="5" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@ -920,7 +1025,6 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.03420523" vertical-offset="0" max-vertical-offset="1139">
|
||||
<caret line="2" column="8" selection-start-line="2" selection-start-column="8" selection-end-line="2" selection-end-column="8" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@ -932,59 +1036,31 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamInfo.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.12327718" vertical-offset="3936" max-vertical-offset="11186">
|
||||
<caret line="441" column="158" selection-start-line="441" selection-start-column="158" selection-end-line="441" selection-end-column="158" />
|
||||
<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="39768" max-vertical-offset="45237">
|
||||
<caret line="2373" column="68" selection-start-line="2373" selection-start-column="68" selection-end-line="2373" selection-end-column="68" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/apiclient/ServerCredentials.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="704" max-vertical-offset="2023">
|
||||
<caret line="99" column="17" selection-start-line="99" selection-start-column="17" selection-end-line="99" selection-end-column="17" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/dlna/BaseStreamInfoSorter.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="323">
|
||||
<state vertical-scroll-proportion="0.051554207" vertical-offset="0" max-vertical-offset="1319">
|
||||
<caret line="4" column="22" selection-start-line="4" selection-start-column="22" selection-end-line="4" selection-end-column="22" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamInfoSorterComparator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1037">
|
||||
<state vertical-scroll-proportion="0.25777104" vertical-offset="0" max-vertical-offset="1319">
|
||||
<caret line="20" column="54" selection-start-line="20" selection-start-column="54" selection-end-line="20" selection-end-column="54" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="e#271#272#0" expanded="true" />
|
||||
<element signature="e#296#297#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/dlna/ChainedComparator.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="578">
|
||||
<state vertical-scroll-proportion="0.07733131" vertical-offset="0" max-vertical-offset="1319">
|
||||
<caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@ -996,28 +1072,105 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/StopTranscodingResponse.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="918">
|
||||
<caret line="39" column="59" selection-start-line="39" selection-start-column="8" selection-end-line="39" selection-end-column="59" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/GetPlaybackInfoResponse.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1020">
|
||||
<caret line="24" column="43" selection-start-line="24" selection-start-column="43" selection-end-line="24" selection-end-column="43" />
|
||||
<caret line="48" column="63" selection-start-line="48" selection-start-column="63" selection-end-line="48" selection-end-column="63" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/StopTranscodingResponse.java">
|
||||
<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="0" max-vertical-offset="901">
|
||||
<caret line="20" column="11" selection-start-line="20" selection-start-column="11" selection-end-line="20" selection-end-column="11" />
|
||||
<state vertical-scroll-proportion="0.41708043" vertical-offset="37014" max-vertical-offset="45237">
|
||||
<caret line="2206" column="42" selection-start-line="2206" selection-start-column="42" selection-end-line="2206" selection-end-column="42" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</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="10090" max-vertical-offset="15742">
|
||||
<caret line="623" column="38" selection-start-line="623" selection-start-column="38" selection-end-line="623" selection-end-column="38" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/playback/ReportPlaybackStopResponse.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="935">
|
||||
<caret line="36" column="82" selection-start-line="36" selection-start-column="82" selection-end-line="36" selection-end-column="82" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/dlna/StreamInfo.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="3834" max-vertical-offset="11101">
|
||||
<caret line="440" column="24" selection-start-line="440" selection-start-column="24" selection-end-line="440" selection-end-column="24" />
|
||||
<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.6686047" vertical-offset="1605" max-vertical-offset="3638">
|
||||
<caret line="157" column="0" selection-start-line="157" selection-start-column="0" selection-end-line="157" selection-end-column="0" />
|
||||
<state vertical-scroll-proportion="-15.344828" vertical-offset="2530" max-vertical-offset="3842">
|
||||
<caret line="197" column="33" selection-start-line="197" selection-start-column="33" selection-end-line="197" selection-end-column="33" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/mediasync/MediaSync.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="616" max-vertical-offset="8721">
|
||||
<caret line="534" column="9" selection-start-line="534" selection-start-column="9" selection-end-line="534" selection-end-column="9" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/mediasync/SecondSyncDataResponse.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="595">
|
||||
<caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/mediasync/MediaSyncProgress.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="680">
|
||||
<caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/model/sync/LocalItem.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1309">
|
||||
<caret line="96" column="50" selection-start-line="96" selection-start-column="50" selection-end-line="96" selection-end-column="50" />
|
||||
<folding>
|
||||
<element signature="e#1818#1819#0" expanded="true" />
|
||||
<element signature="e#1847#1848#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/mediabrowser/apiinteraction/sync/server/mediasync/SyncDataInnerResponse.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state vertical-scroll-proportion="0.3813495" vertical-offset="7" max-vertical-offset="1326">
|
||||
<caret line="39" column="15" selection-start-line="39" selection-start-column="15" selection-end-line="39" selection-end-column="15" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
|
Binary file not shown.
Binary file not shown.
@ -2199,12 +2199,12 @@ public class ApiClient extends BaseApiClient {
|
||||
Send(url, "GET", new SerializedResponse<SessionInfoDto>(response, jsonSerializer, SessionInfoDto.class));
|
||||
}
|
||||
|
||||
public void StopTranscodingProcesses(String deviceId, String streamId, final EmptyResponse response)
|
||||
public void StopTranscodingProcesses(String deviceId, String playSessionId, final EmptyResponse response)
|
||||
{
|
||||
QueryStringDictionary queryString = new QueryStringDictionary();
|
||||
|
||||
queryString.Add("DeviceId", getDeviceId());
|
||||
queryString.AddIfNotNullOrEmpty("StreamId", streamId);
|
||||
queryString.AddIfNotNullOrEmpty("PlaySessionId", playSessionId);
|
||||
String url = GetApiUrl("Videos/ActiveEncodings", queryString);
|
||||
|
||||
DeleteAsync(url, response);
|
||||
|
@ -42,11 +42,11 @@ public class GetPlaybackInfoResponse extends Response<PlaybackInfoResponse> {
|
||||
if (isVideo){
|
||||
StreamInfo streamInfo = playbackManager.getVideoStreamInfoInternal(serverId, (VideoOptions)options);
|
||||
streamInfo.setPlaybackInfo(playbackInfo);
|
||||
response.onResponse(streamInfo);
|
||||
playbackManager.SendResponse(response, streamInfo);
|
||||
}
|
||||
else{
|
||||
StreamInfo streamInfo = streamBuilder.BuildAudioItem(options);
|
||||
response.onResponse(streamInfo);
|
||||
playbackManager.SendResponse(response, streamInfo);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -93,6 +93,18 @@ public class PlaybackManager {
|
||||
options.setDeviceId(device.getDeviceId());
|
||||
}
|
||||
|
||||
void SendResponse(Response<StreamInfo> response, StreamInfo info){
|
||||
|
||||
if (info == null){
|
||||
PlaybackException error = new PlaybackException();
|
||||
error.setErrorCode(PlaybackErrorCode.NoCompatibleStream);
|
||||
response.onError(error);
|
||||
}
|
||||
else{
|
||||
response.onResponse(info);
|
||||
}
|
||||
}
|
||||
|
||||
public void getAudioStreamInfo(String serverId, AudioOptions options, boolean isOffline, ApiClient apiClient, Response<StreamInfo> response)
|
||||
{
|
||||
Normalize(options);
|
||||
@ -116,7 +128,7 @@ public class PlaybackManager {
|
||||
|
||||
StreamInfo result = streamBuilder.BuildAudioItem(options);
|
||||
result.setPlayMethod(PlayMethod.DirectPlay);
|
||||
response.onResponse(result);
|
||||
SendResponse(response, result);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -128,7 +140,7 @@ public class PlaybackManager {
|
||||
return;
|
||||
}
|
||||
|
||||
response.onResponse(streamBuilder.BuildAudioItem(options));
|
||||
SendResponse(response, streamBuilder.BuildAudioItem(options));
|
||||
}
|
||||
|
||||
public void getVideoStreamInfo(final String serverId, final VideoOptions options, boolean isOffline, ApiClient apiClient, final Response<StreamInfo> response)
|
||||
@ -142,18 +154,18 @@ public class PlaybackManager {
|
||||
return;
|
||||
}
|
||||
|
||||
response.onResponse(getVideoStreamInfoInternal(serverId, options));
|
||||
SendResponse(response, getVideoStreamInfoInternal(serverId, options));
|
||||
}
|
||||
|
||||
public void changeVideoStream(final StreamInfo currentStreamInfo, final String serverId, final VideoOptions options, ApiClient apiClient, final Response<StreamInfo> response)
|
||||
{
|
||||
Normalize(options);
|
||||
|
||||
String streamId = currentStreamInfo.getPlaybackInfo() == null ?
|
||||
String playSessionId = currentStreamInfo.getPlaybackInfo() == null ?
|
||||
null :
|
||||
currentStreamInfo.getPlaybackInfo().getStreamId();
|
||||
currentStreamInfo.getPlaybackInfo().getPlaySessionId();
|
||||
|
||||
apiClient.StopTranscodingProcesses(device.getDeviceId(), streamId, new StopTranscodingResponse(this, serverId, currentStreamInfo, options, logger, response));
|
||||
apiClient.StopTranscodingProcesses(device.getDeviceId(), playSessionId, new StopTranscodingResponse(this, serverId, currentStreamInfo, options, logger, response));
|
||||
}
|
||||
|
||||
StreamInfo getVideoStreamInfoInternal(String serverId, VideoOptions options)
|
||||
|
@ -30,11 +30,11 @@ public class ReportPlaybackStopResponse extends EmptyResponse {
|
||||
|
||||
if (streamInfo.getMediaType() == DlnaProfileType.Video)
|
||||
{
|
||||
String streamId = streamInfo.getPlaybackInfo() == null ?
|
||||
String playSessionId = streamInfo.getPlaybackInfo() == null ?
|
||||
null :
|
||||
streamInfo.getPlaybackInfo().getStreamId();
|
||||
streamInfo.getPlaybackInfo().getPlaySessionId();
|
||||
|
||||
apiClient.StopTranscodingProcesses(device.getDeviceId(), streamId, response);
|
||||
apiClient.StopTranscodingProcesses(device.getDeviceId(), playSessionId, response);
|
||||
}
|
||||
else{
|
||||
response.onResponse();
|
||||
|
@ -36,7 +36,8 @@ public class StopTranscodingResponse extends EmptyResponse {
|
||||
|
||||
StreamInfo streamInfo = playbackManager.getVideoStreamInfoInternal(serverId, options);
|
||||
streamInfo.setPlaybackInfo(currentStreamInfo.getPlaybackInfo());
|
||||
response.onResponse(streamInfo);
|
||||
|
||||
playbackManager.SendResponse(response, streamInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -4,6 +4,7 @@ import mediabrowser.apiinteraction.IResponse;
|
||||
import mediabrowser.apiinteraction.Response;
|
||||
import mediabrowser.apiinteraction.sync.data.ILocalAssetManager;
|
||||
import mediabrowser.model.apiclient.ServerInfo;
|
||||
import mediabrowser.model.logging.ILogger;
|
||||
import mediabrowser.model.sync.ItemFileInfo;
|
||||
import mediabrowser.model.sync.LocalItem;
|
||||
import mediabrowser.model.sync.SyncDataResponse;
|
||||
@ -18,6 +19,7 @@ public class SyncDataInnerResponse extends Response<SyncDataResponse>
|
||||
private ILocalAssetManager localAssetManager;
|
||||
private ServerInfo serverInfo;
|
||||
private boolean syncUserItemAccess;
|
||||
private ILogger logger;
|
||||
|
||||
public SyncDataInnerResponse(IResponse innerResponse, ILocalAssetManager localAssetManager, ServerInfo serverInfo, boolean syncUserItemAccess){
|
||||
|
||||
@ -56,6 +58,7 @@ public class SyncDataInnerResponse extends Response<SyncDataResponse>
|
||||
|
||||
private void removeItem(String serverId, String itemId)
|
||||
{
|
||||
logger.Debug("Removing item. ServerId: {0}, ItemId: {1}", serverId, itemId);
|
||||
LocalItem localItem = localAssetManager.getLocalItem(serverId, itemId);
|
||||
|
||||
if (localItem == null)
|
||||
@ -63,13 +66,16 @@ public class SyncDataInnerResponse extends Response<SyncDataResponse>
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayList<ItemFileInfo> files = localAssetManager.getFiles(localItem);
|
||||
|
||||
for (ItemFileInfo file : files)
|
||||
{
|
||||
localAssetManager.deleteFile(file.getPath());
|
||||
}
|
||||
ArrayList<String> additionalFiles = localItem.getAdditionalFiles();
|
||||
String localPath = localItem.getLocalPath();
|
||||
|
||||
localAssetManager.delete(localItem);
|
||||
|
||||
for (String file : additionalFiles)
|
||||
{
|
||||
localAssetManager.deleteFile(file);
|
||||
}
|
||||
|
||||
localAssetManager.deleteFile(localPath);
|
||||
}
|
||||
}
|
||||
|
@ -47,11 +47,31 @@ public class EncodingOptions
|
||||
{
|
||||
EnableDebugLogging = value;
|
||||
}
|
||||
private boolean EnableThrottling;
|
||||
public final boolean getEnableThrottling()
|
||||
{
|
||||
return EnableThrottling;
|
||||
}
|
||||
public final void setEnableThrottling(boolean value)
|
||||
{
|
||||
EnableThrottling = value;
|
||||
}
|
||||
private int ThrottleThresholdSeconds;
|
||||
public final int getThrottleThresholdSeconds()
|
||||
{
|
||||
return ThrottleThresholdSeconds;
|
||||
}
|
||||
public final void setThrottleThresholdSeconds(int value)
|
||||
{
|
||||
ThrottleThresholdSeconds = value;
|
||||
}
|
||||
|
||||
public EncodingOptions()
|
||||
{
|
||||
setH264Encoder("libx264");
|
||||
setDownMixAudioBoost(2);
|
||||
setEncodingQuality(EncodingQuality.Auto);
|
||||
setEnableThrottling(true);
|
||||
setThrottleThresholdSeconds(120);
|
||||
}
|
||||
}
|
@ -5,7 +5,7 @@ import mediabrowser.model.mediainfo.*;
|
||||
|
||||
public class ConditionProcessor
|
||||
{
|
||||
public final boolean IsVideoConditionSatisfied(ProfileCondition condition, Integer audioBitrate, Integer audioChannels, Integer width, Integer height, Integer bitDepth, Integer videoBitrate, String videoProfile, Double videoLevel, Float videoFramerate, Integer packetLength, TransportStreamTimestamp timestamp, Boolean isAnamorphic, Boolean isCabac, Integer refFrames)
|
||||
public final boolean IsVideoConditionSatisfied(ProfileCondition condition, Integer audioBitrate, Integer audioChannels, Integer width, Integer height, Integer bitDepth, Integer videoBitrate, String videoProfile, Double videoLevel, Float videoFramerate, Integer packetLength, TransportStreamTimestamp timestamp, Boolean isAnamorphic, Boolean isCabac, Integer refFrames, Integer numVideoStreams, Integer numAudioStreams)
|
||||
{
|
||||
switch (condition.getProperty())
|
||||
{
|
||||
@ -41,6 +41,10 @@ public class ConditionProcessor
|
||||
return IsConditionSatisfied(condition, width);
|
||||
case RefFrames:
|
||||
return IsConditionSatisfied(condition, refFrames);
|
||||
case NumAudioStreams:
|
||||
return IsConditionSatisfied(condition, numAudioStreams);
|
||||
case NumVideoStreams:
|
||||
return IsConditionSatisfied(condition, numVideoStreams);
|
||||
case VideoTimestamp:
|
||||
return IsConditionSatisfied(condition, timestamp);
|
||||
default:
|
||||
@ -74,7 +78,7 @@ public class ConditionProcessor
|
||||
}
|
||||
}
|
||||
|
||||
public final boolean IsVideoAudioConditionSatisfied(ProfileCondition condition, Integer audioChannels, Integer audioBitrate, String audioProfile)
|
||||
public final boolean IsVideoAudioConditionSatisfied(ProfileCondition condition, Integer audioChannels, Integer audioBitrate, String audioProfile, Boolean isSecondaryTrack)
|
||||
{
|
||||
switch (condition.getProperty())
|
||||
{
|
||||
@ -84,6 +88,8 @@ public class ConditionProcessor
|
||||
return IsConditionSatisfied(condition, audioBitrate);
|
||||
case AudioChannels:
|
||||
return IsConditionSatisfied(condition, audioChannels);
|
||||
case IsSecondaryAudio:
|
||||
return IsConditionSatisfied(condition, isSecondaryTrack);
|
||||
default:
|
||||
throw new IllegalArgumentException("Unexpected condition on audio file: " + condition.getProperty());
|
||||
}
|
||||
|
@ -601,7 +601,7 @@ public class DeviceProfile
|
||||
return null;
|
||||
}
|
||||
|
||||
public final ResponseProfile GetVideoMediaProfile(String container, String audioCodec, String videoCodec, Integer audioBitrate, Integer audioChannels, Integer width, Integer height, Integer bitDepth, Integer videoBitrate, String videoProfile, Double videoLevel, Float videoFramerate, Integer packetLength, TransportStreamTimestamp timestamp, Boolean isAnamorphic, Boolean isCabac, Integer refFrames)
|
||||
public final ResponseProfile GetVideoMediaProfile(String container, String audioCodec, String videoCodec, Integer audioBitrate, Integer audioChannels, Integer width, Integer height, Integer bitDepth, Integer videoBitrate, String videoProfile, Double videoLevel, Float videoFramerate, Integer packetLength, TransportStreamTimestamp timestamp, Boolean isAnamorphic, Boolean isCabac, Integer refFrames, Integer numVideoStreams, Integer numAudioStreams)
|
||||
{
|
||||
container = StringHelper.TrimStart(((container != null) ? container : ""), '.');
|
||||
|
||||
@ -635,7 +635,7 @@ public class DeviceProfile
|
||||
boolean anyOff = false;
|
||||
for (ProfileCondition c : i.getConditions())
|
||||
{
|
||||
if (!conditionProcessor.IsVideoConditionSatisfied(c, audioBitrate, audioChannels, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, isCabac, refFrames))
|
||||
if (!conditionProcessor.IsVideoConditionSatisfied(c, audioBitrate, audioChannels, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, isCabac, refFrames, numVideoStreams, numAudioStreams))
|
||||
{
|
||||
anyOff = true;
|
||||
break;
|
||||
|
@ -17,7 +17,10 @@ public enum ProfileConditionValue
|
||||
VideoTimestamp(12),
|
||||
IsAnamorphic(13),
|
||||
RefFrames(14),
|
||||
IsCabac(15);
|
||||
IsCabac(15),
|
||||
NumAudioStreams(16),
|
||||
NumVideoStreams(17),
|
||||
IsSecondaryAudio(18);
|
||||
|
||||
private int intValue;
|
||||
private static java.util.HashMap<Integer, ProfileConditionValue> mappings;
|
||||
|
@ -234,6 +234,16 @@ public class StreamBuilder
|
||||
return playlistItem;
|
||||
}
|
||||
|
||||
private Integer GetBitrateForDirectPlayCheck(MediaSourceInfo item, AudioOptions options)
|
||||
{
|
||||
if (item.getProtocol() == MediaProtocol.File)
|
||||
{
|
||||
return options.getProfile().getMaxStaticBitrate();
|
||||
}
|
||||
|
||||
return options.GetMaxBitrate();
|
||||
}
|
||||
|
||||
private java.util.ArrayList<PlayMethod> GetAudioDirectPlayMethods(MediaSourceInfo item, MediaStream audioStream, AudioOptions options)
|
||||
{
|
||||
DirectPlayProfile directPlayProfile = null;
|
||||
@ -258,7 +268,7 @@ public class StreamBuilder
|
||||
|
||||
// The profile describes what the device supports
|
||||
// If device requirements are satisfied then allow both direct stream and direct play
|
||||
if (IsAudioEligibleForDirectPlay(item, options.getProfile().getMaxStaticBitrate()))
|
||||
if (IsAudioEligibleForDirectPlay(item, GetBitrateForDirectPlayCheck(item, options)))
|
||||
{
|
||||
playMethods.add(PlayMethod.DirectPlay);
|
||||
}
|
||||
@ -289,7 +299,7 @@ public class StreamBuilder
|
||||
MediaStream videoStream = item.getVideoStream();
|
||||
|
||||
// TODO: This doesn't accout for situation of device being able to handle media bitrate, but wifi connection not fast enough
|
||||
boolean isEligibleForDirectPlay = IsEligibleForDirectPlay(item, options.getProfile().getMaxStaticBitrate(), subtitleStream, options);
|
||||
boolean isEligibleForDirectPlay = IsEligibleForDirectPlay(item, GetBitrateForDirectPlayCheck(item, options), subtitleStream, options);
|
||||
boolean isEligibleForDirectStream = IsEligibleForDirectPlay(item, options.GetMaxBitrate(), subtitleStream, options);
|
||||
|
||||
if (isEligibleForDirectPlay || isEligibleForDirectStream)
|
||||
@ -478,10 +488,13 @@ public class StreamBuilder
|
||||
Integer packetLength = videoStream == null ? null : videoStream.getPacketLength();
|
||||
Integer refFrames = videoStream == null ? null : videoStream.getRefFrames();
|
||||
|
||||
Integer numAudioStreams = mediaSource.GetStreamCount(MediaStreamType.Audio);
|
||||
Integer numVideoStreams = mediaSource.GetStreamCount(MediaStreamType.Video);
|
||||
|
||||
// Check container conditions
|
||||
for (ProfileCondition i : conditions)
|
||||
{
|
||||
if (!conditionProcessor.IsVideoConditionSatisfied(i, audioBitrate, audioChannels, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, isCabac, refFrames))
|
||||
if (!conditionProcessor.IsVideoConditionSatisfied(i, audioBitrate, audioChannels, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, isCabac, refFrames, numVideoStreams, numAudioStreams))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
@ -508,7 +521,7 @@ public class StreamBuilder
|
||||
|
||||
for (ProfileCondition i : conditions)
|
||||
{
|
||||
if (!conditionProcessor.IsVideoConditionSatisfied(i, audioBitrate, audioChannels, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, isCabac, refFrames))
|
||||
if (!conditionProcessor.IsVideoConditionSatisfied(i, audioBitrate, audioChannels, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, isCabac, refFrames, numVideoStreams, numAudioStreams))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
@ -537,7 +550,8 @@ public class StreamBuilder
|
||||
|
||||
for (ProfileCondition i : conditions)
|
||||
{
|
||||
if (!conditionProcessor.IsVideoAudioConditionSatisfied(i, audioChannels, audioBitrate, audioProfile))
|
||||
Boolean isSecondaryAudio = audioStream == null ? null : mediaSource.IsSecondaryAudio(audioStream);
|
||||
if (!conditionProcessor.IsVideoAudioConditionSatisfied(i, audioChannels, audioBitrate, audioProfile, isSecondaryAudio))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
@ -594,6 +608,11 @@ public class StreamBuilder
|
||||
// Look for an external profile that matches the stream type (text/graphical)
|
||||
for (SubtitleProfile profile : subtitleProfiles)
|
||||
{
|
||||
if (!profile.SupportsLanguage(subtitleStream.getLanguage()))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (profile.getMethod() == SubtitleDeliveryMethod.External && subtitleStream.getIsTextSubtitleStream() == MediaStream.IsTextFormat(profile.getFormat()))
|
||||
{
|
||||
if (subtitleStream.getSupportsExternalStream())
|
||||
@ -611,6 +630,11 @@ public class StreamBuilder
|
||||
|
||||
for (SubtitleProfile profile : subtitleProfiles)
|
||||
{
|
||||
if (!profile.SupportsLanguage(subtitleStream.getLanguage()))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (profile.getMethod() == SubtitleDeliveryMethod.Embed && subtitleStream.getIsTextSubtitleStream() == MediaStream.IsTextFormat(profile.getFormat()))
|
||||
{
|
||||
return profile;
|
||||
@ -730,6 +754,9 @@ public class StreamBuilder
|
||||
case AudioProfile:
|
||||
case Has64BitOffsets:
|
||||
case PacketLength:
|
||||
case NumAudioStreams:
|
||||
case NumVideoStreams:
|
||||
case IsSecondaryAudio:
|
||||
case VideoTimestamp:
|
||||
{
|
||||
// Not supported yet
|
||||
|
@ -456,60 +456,35 @@ public class StreamInfo
|
||||
list.add(new NameValuePair("Profile", (tempVar6 != null) ? tempVar6 : ""));
|
||||
list.add(new NameValuePair("Cabac", item.getCabac() != null ? item.getCabac().toString() : ""));
|
||||
|
||||
String streamId = item.getPlaybackInfo() == null ? null : item.getPlaybackInfo().getStreamId();
|
||||
list.add(new NameValuePair("StreamId", (streamId != null) ? streamId : ""));
|
||||
String playSessionId = item.getPlaybackInfo() == null ? null : item.getPlaybackInfo().getPlaySessionId();
|
||||
list.add(new NameValuePair("PlaySessionId", (playSessionId != null) ? playSessionId : ""));
|
||||
list.add(new NameValuePair("api_key", (accessToken != null) ? accessToken : ""));
|
||||
|
||||
String liveStreamId = item.getMediaSource() == null ? null : item.getMediaSource().getLiveStreamId();
|
||||
list.add(new NameValuePair("LiveStreamId", (liveStreamId != null) ? liveStreamId : ""));
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public final java.util.ArrayList<SubtitleStreamInfo> GetExternalSubtitles(boolean includeSelectedTrackOnly)
|
||||
public final java.util.ArrayList<SubtitleStreamInfo> GetExternalSubtitles(boolean includeSelectedTrackOnly, String baseUrl, String accessToken)
|
||||
{
|
||||
java.util.ArrayList<SubtitleStreamInfo> list = new java.util.ArrayList<SubtitleStreamInfo>();
|
||||
java.util.ArrayList<SubtitleStreamInfo> list = GetSubtitleProfiles(includeSelectedTrackOnly, baseUrl, accessToken);
|
||||
java.util.ArrayList<SubtitleStreamInfo> newList = new java.util.ArrayList<SubtitleStreamInfo>();
|
||||
|
||||
// First add the selected track
|
||||
if (getSubtitleStreamIndex() != null)
|
||||
for (SubtitleStreamInfo stream : list)
|
||||
{
|
||||
for (MediaStream stream : getMediaSource().getMediaStreams())
|
||||
if (stream.getDeliveryMethod() == SubtitleDeliveryMethod.External)
|
||||
{
|
||||
if (stream.getType() == MediaStreamType.Subtitle && stream.getIndex() == getSubtitleStreamIndex())
|
||||
{
|
||||
SubtitleStreamInfo info = GetSubtitleStreamInfo(stream);
|
||||
|
||||
if (info != null)
|
||||
{
|
||||
list.add(info);
|
||||
}
|
||||
}
|
||||
newList.add(stream);
|
||||
}
|
||||
}
|
||||
|
||||
if (!includeSelectedTrackOnly)
|
||||
{
|
||||
for (MediaStream stream : getMediaSource().getMediaStreams())
|
||||
{
|
||||
if (stream.getType() == MediaStreamType.Subtitle && (getSubtitleStreamIndex() == null || stream.getIndex() != getSubtitleStreamIndex()))
|
||||
{
|
||||
SubtitleStreamInfo info = GetSubtitleStreamInfo(stream);
|
||||
|
||||
if (info != null)
|
||||
{
|
||||
list.add(info);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
return newList;
|
||||
}
|
||||
|
||||
public final java.util.ArrayList<SubtitleStreamInfo> GetExternalSubtitles(String baseUrl, String accessToken, boolean includeSelectedTrackOnly)
|
||||
public final java.util.ArrayList<SubtitleStreamInfo> GetSubtitleProfiles(boolean includeSelectedTrackOnly, String baseUrl, String accessToken)
|
||||
{
|
||||
if (tangible.DotNetToJavaStringHelper.isNullOrEmpty(baseUrl))
|
||||
{
|
||||
throw new IllegalArgumentException(baseUrl);
|
||||
}
|
||||
|
||||
java.util.ArrayList<SubtitleStreamInfo> list = new java.util.ArrayList<SubtitleStreamInfo>();
|
||||
|
||||
// HLS will preserve timestamps so we can just grab the full subtitle stream
|
||||
@ -524,10 +499,7 @@ public class StreamInfo
|
||||
{
|
||||
SubtitleStreamInfo info = GetSubtitleStreamInfo(stream, baseUrl, accessToken, startPositionTicks);
|
||||
|
||||
if (info != null)
|
||||
{
|
||||
list.add(info);
|
||||
}
|
||||
list.add(info);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -540,10 +512,7 @@ public class StreamInfo
|
||||
{
|
||||
SubtitleStreamInfo info = GetSubtitleStreamInfo(stream, baseUrl, accessToken, startPositionTicks);
|
||||
|
||||
if (info != null)
|
||||
{
|
||||
list.add(info);
|
||||
}
|
||||
list.add(info);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -555,7 +524,7 @@ public class StreamInfo
|
||||
{
|
||||
SubtitleStreamInfo info = GetSubtitleStreamInfo(stream);
|
||||
|
||||
if (info != null)
|
||||
if (info.getDeliveryMethod() == SubtitleDeliveryMethod.External && !tangible.DotNetToJavaStringHelper.isNullOrEmpty(baseUrl))
|
||||
{
|
||||
info.setUrl(String.format("%1$s/Videos/%2$s/%3$s/Subtitles/%4$s/%5$s/Stream.%6$s", baseUrl, getItemId(), getMediaSourceId(), StringHelper.ToStringCultureInvariant(stream.getIndex()), StringHelper.ToStringCultureInvariant(startPositionTicks), getSubtitleFormat()));
|
||||
}
|
||||
@ -567,11 +536,6 @@ public class StreamInfo
|
||||
{
|
||||
SubtitleProfile subtitleProfile = StreamBuilder.GetSubtitleProfile(stream, getDeviceProfile().getSubtitleProfiles(), getContext());
|
||||
|
||||
if (subtitleProfile.getMethod() != SubtitleDeliveryMethod.External)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
SubtitleStreamInfo tempVar = new SubtitleStreamInfo();
|
||||
tempVar.setIsForced(stream.getIsForced());
|
||||
tempVar.setLanguage(stream.getLanguage());
|
||||
@ -579,6 +543,7 @@ public class StreamInfo
|
||||
tempVar.setName((tempVar2 != null) ? tempVar2 : "Unknown");
|
||||
tempVar.setFormat(getSubtitleFormat());
|
||||
tempVar.setIndex(stream.getIndex());
|
||||
tempVar.setDeliveryMethod(subtitleProfile.getMethod());
|
||||
return tempVar;
|
||||
}
|
||||
|
||||
@ -826,6 +791,36 @@ public class StreamInfo
|
||||
return getMaxHeight();
|
||||
}
|
||||
|
||||
public final Integer getTargetVideoStreamCount()
|
||||
{
|
||||
if (getIsDirectStream())
|
||||
{
|
||||
return GetMediaStreamCount(MediaStreamType.Video, Integer.MAX_VALUE);
|
||||
}
|
||||
return GetMediaStreamCount(MediaStreamType.Video, 1);
|
||||
}
|
||||
|
||||
public final Integer getTargetAudioStreamCount()
|
||||
{
|
||||
if (getIsDirectStream())
|
||||
{
|
||||
return GetMediaStreamCount(MediaStreamType.Audio, Integer.MAX_VALUE);
|
||||
}
|
||||
return GetMediaStreamCount(MediaStreamType.Audio, 1);
|
||||
}
|
||||
|
||||
private Integer GetMediaStreamCount(MediaStreamType type, int limit)
|
||||
{
|
||||
Integer count = getMediaSource().GetStreamCount(type);
|
||||
|
||||
if (count != null)
|
||||
{
|
||||
count = Math.min(count, limit);
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
public final java.util.ArrayList<MediaStream> GetSelectableAudioStreams()
|
||||
{
|
||||
return GetSelectableStreams(MediaStreamType.Audio);
|
||||
|
@ -1,5 +1,7 @@
|
||||
package mediabrowser.model.dlna;
|
||||
|
||||
import mediabrowser.model.extensions.*;
|
||||
|
||||
public class SubtitleProfile
|
||||
{
|
||||
//C# TO JAVA CONVERTER TODO TASK: Java annotations will not correspond to .NET attributes:
|
||||
@ -38,4 +40,39 @@ public class SubtitleProfile
|
||||
DidlMode = value;
|
||||
}
|
||||
|
||||
//C# TO JAVA CONVERTER TODO TASK: Java annotations will not correspond to .NET attributes:
|
||||
//ORIGINAL LINE: [XmlAttribute("language")] public string Language {get;set;}
|
||||
private String Language;
|
||||
public final String getLanguage()
|
||||
{
|
||||
return Language;
|
||||
}
|
||||
public final void setLanguage(String value)
|
||||
{
|
||||
Language = value;
|
||||
}
|
||||
|
||||
public final java.util.ArrayList<String> GetLanguages()
|
||||
{
|
||||
java.util.ArrayList<String> list = new java.util.ArrayList<String>();
|
||||
for (String i : ((getLanguage() != null) ? getLanguage() : "").split("[,]", -1))
|
||||
{
|
||||
if (!tangible.DotNetToJavaStringHelper.isNullOrEmpty(i))
|
||||
{
|
||||
list.add(i);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public final boolean SupportsLanguage(String language)
|
||||
{
|
||||
if (tangible.DotNetToJavaStringHelper.isNullOrEmpty(language))
|
||||
{
|
||||
language = "und";
|
||||
}
|
||||
|
||||
java.util.ArrayList<String> languages = GetLanguages();
|
||||
return languages.isEmpty() || ListHelper.ContainsIgnoreCase(languages, language);
|
||||
}
|
||||
}
|
@ -56,4 +56,13 @@ public class SubtitleStreamInfo
|
||||
{
|
||||
Index = value;
|
||||
}
|
||||
private SubtitleDeliveryMethod DeliveryMethod = SubtitleDeliveryMethod.values()[0];
|
||||
public final SubtitleDeliveryMethod getDeliveryMethod()
|
||||
{
|
||||
return DeliveryMethod;
|
||||
}
|
||||
public final void setDeliveryMethod(SubtitleDeliveryMethod value)
|
||||
{
|
||||
DeliveryMethod = value;
|
||||
}
|
||||
}
|
@ -120,6 +120,52 @@ public class MediaSourceInfo
|
||||
SupportsDirectPlay = value;
|
||||
}
|
||||
|
||||
private boolean RequiresOpening;
|
||||
public final boolean getRequiresOpening()
|
||||
{
|
||||
return RequiresOpening;
|
||||
}
|
||||
public final void setRequiresOpening(boolean value)
|
||||
{
|
||||
RequiresOpening = value;
|
||||
}
|
||||
private String OpenToken;
|
||||
public final String getOpenToken()
|
||||
{
|
||||
return OpenToken;
|
||||
}
|
||||
public final void setOpenToken(String value)
|
||||
{
|
||||
OpenToken = value;
|
||||
}
|
||||
private boolean RequiresClosing;
|
||||
public final boolean getRequiresClosing()
|
||||
{
|
||||
return RequiresClosing;
|
||||
}
|
||||
public final void setRequiresClosing(boolean value)
|
||||
{
|
||||
RequiresClosing = value;
|
||||
}
|
||||
private String LiveStreamId;
|
||||
public final String getLiveStreamId()
|
||||
{
|
||||
return LiveStreamId;
|
||||
}
|
||||
public final void setLiveStreamId(String value)
|
||||
{
|
||||
LiveStreamId = value;
|
||||
}
|
||||
private Integer BufferMs = null;
|
||||
public final Integer getBufferMs()
|
||||
{
|
||||
return BufferMs;
|
||||
}
|
||||
public final void setBufferMs(Integer value)
|
||||
{
|
||||
BufferMs = value;
|
||||
}
|
||||
|
||||
private VideoType VideoType = null;
|
||||
public final VideoType getVideoType()
|
||||
{
|
||||
@ -335,4 +381,34 @@ public class MediaSourceInfo
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public final Integer GetStreamCount(MediaStreamType type)
|
||||
{
|
||||
int numMatches = 0;
|
||||
int numStreams = 0;
|
||||
|
||||
for (MediaStream i : getMediaStreams())
|
||||
{
|
||||
numStreams++;
|
||||
if (i.getType() == type)
|
||||
{
|
||||
numMatches++;
|
||||
}
|
||||
}
|
||||
|
||||
return numStreams == 0 ? (Integer)null : numMatches;
|
||||
}
|
||||
|
||||
public final Boolean IsSecondaryAudio(MediaStream stream)
|
||||
{
|
||||
for (MediaStream currentStream : getMediaStreams())
|
||||
{
|
||||
if (currentStream.getType() == MediaStreamType.Audio)
|
||||
{
|
||||
return currentStream.getIndex() != stream.getIndex();
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
@ -4,7 +4,7 @@ public enum MediaSourceType
|
||||
{
|
||||
Default(0),
|
||||
Grouping(1),
|
||||
Cache(2);
|
||||
Placeholder(2);
|
||||
|
||||
private int intValue;
|
||||
private static java.util.HashMap<Integer, MediaSourceType> mappings;
|
||||
|
@ -1,5 +1,6 @@
|
||||
package mediabrowser.model.entities;
|
||||
|
||||
import mediabrowser.model.dlna.*;
|
||||
import mediabrowser.model.extensions.*;
|
||||
|
||||
/**
|
||||
@ -324,6 +325,35 @@ public class MediaStream
|
||||
IsExternal = value;
|
||||
}
|
||||
|
||||
/**
|
||||
Gets or sets the method.
|
||||
|
||||
<value>The method.</value>
|
||||
*/
|
||||
private SubtitleDeliveryMethod DeliveryMethod = null;
|
||||
public final SubtitleDeliveryMethod getDeliveryMethod()
|
||||
{
|
||||
return DeliveryMethod;
|
||||
}
|
||||
public final void setDeliveryMethod(SubtitleDeliveryMethod value)
|
||||
{
|
||||
DeliveryMethod = value;
|
||||
}
|
||||
/**
|
||||
Gets or sets the delivery URL.
|
||||
|
||||
<value>The delivery URL.</value>
|
||||
*/
|
||||
private String DeliveryUrl;
|
||||
public final String getDeliveryUrl()
|
||||
{
|
||||
return DeliveryUrl;
|
||||
}
|
||||
public final void setDeliveryUrl(String value)
|
||||
{
|
||||
DeliveryUrl = value;
|
||||
}
|
||||
|
||||
public final boolean getIsTextSubtitleStream()
|
||||
{
|
||||
if (getType() != MediaStreamType.Subtitle)
|
||||
@ -331,6 +361,11 @@ public class MediaStream
|
||||
return false;
|
||||
}
|
||||
|
||||
if (tangible.DotNetToJavaStringHelper.isNullOrEmpty(getCodec()) && !getIsExternal())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return IsTextFormat(getCodec());
|
||||
}
|
||||
|
||||
@ -373,6 +408,21 @@ public class MediaStream
|
||||
Path = value;
|
||||
}
|
||||
|
||||
/**
|
||||
Gets or sets the external identifier.
|
||||
|
||||
<value>The external identifier.</value>
|
||||
*/
|
||||
private String ExternalId;
|
||||
public final String getExternalId()
|
||||
{
|
||||
return ExternalId;
|
||||
}
|
||||
public final void setExternalId(String value)
|
||||
{
|
||||
ExternalId = value;
|
||||
}
|
||||
|
||||
/**
|
||||
Gets or sets the pixel format.
|
||||
|
||||
|
98
src/mediabrowser/model/mediainfo/LiveStreamRequest.java
Normal file
98
src/mediabrowser/model/mediainfo/LiveStreamRequest.java
Normal file
@ -0,0 +1,98 @@
|
||||
package mediabrowser.model.mediainfo;
|
||||
|
||||
import mediabrowser.model.dlna.*;
|
||||
|
||||
public class LiveStreamRequest
|
||||
{
|
||||
private String OpenToken;
|
||||
public final String getOpenToken()
|
||||
{
|
||||
return OpenToken;
|
||||
}
|
||||
public final void setOpenToken(String value)
|
||||
{
|
||||
OpenToken = value;
|
||||
}
|
||||
private String UserId;
|
||||
public final String getUserId()
|
||||
{
|
||||
return UserId;
|
||||
}
|
||||
public final void setUserId(String value)
|
||||
{
|
||||
UserId = value;
|
||||
}
|
||||
private Integer MaxStreamingBitrate;
|
||||
public final Integer getMaxStreamingBitrate()
|
||||
{
|
||||
return MaxStreamingBitrate;
|
||||
}
|
||||
public final void setMaxStreamingBitrate(Integer value)
|
||||
{
|
||||
MaxStreamingBitrate = value;
|
||||
}
|
||||
private Long StartTimeTicks;
|
||||
public final Long getStartTimeTicks()
|
||||
{
|
||||
return StartTimeTicks;
|
||||
}
|
||||
public final void setStartTimeTicks(Long value)
|
||||
{
|
||||
StartTimeTicks = value;
|
||||
}
|
||||
private Integer AudioStreamIndex;
|
||||
public final Integer getAudioStreamIndex()
|
||||
{
|
||||
return AudioStreamIndex;
|
||||
}
|
||||
public final void setAudioStreamIndex(Integer value)
|
||||
{
|
||||
AudioStreamIndex = value;
|
||||
}
|
||||
private Integer SubtitleStreamIndex;
|
||||
public final Integer getSubtitleStreamIndex()
|
||||
{
|
||||
return SubtitleStreamIndex;
|
||||
}
|
||||
public final void setSubtitleStreamIndex(Integer value)
|
||||
{
|
||||
SubtitleStreamIndex = value;
|
||||
}
|
||||
private String ItemId;
|
||||
public final String getItemId()
|
||||
{
|
||||
return ItemId;
|
||||
}
|
||||
public final void setItemId(String value)
|
||||
{
|
||||
ItemId = value;
|
||||
}
|
||||
private DeviceProfile DeviceProfile;
|
||||
public final DeviceProfile getDeviceProfile()
|
||||
{
|
||||
return DeviceProfile;
|
||||
}
|
||||
public final void setDeviceProfile(DeviceProfile value)
|
||||
{
|
||||
DeviceProfile = value;
|
||||
}
|
||||
|
||||
public LiveStreamRequest()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public LiveStreamRequest(AudioOptions options)
|
||||
{
|
||||
setMaxStreamingBitrate(options.getMaxBitrate());
|
||||
setItemId(options.getItemId());
|
||||
setDeviceProfile(options.getProfile());
|
||||
|
||||
VideoOptions videoOptions = (VideoOptions)((options instanceof VideoOptions) ? options : null);
|
||||
if (videoOptions != null)
|
||||
{
|
||||
setAudioStreamIndex(videoOptions.getAudioStreamIndex());
|
||||
setSubtitleStreamIndex(videoOptions.getSubtitleStreamIndex());
|
||||
}
|
||||
}
|
||||
}
|
16
src/mediabrowser/model/mediainfo/LiveStreamResponse.java
Normal file
16
src/mediabrowser/model/mediainfo/LiveStreamResponse.java
Normal file
@ -0,0 +1,16 @@
|
||||
package mediabrowser.model.mediainfo;
|
||||
|
||||
import mediabrowser.model.dto.*;
|
||||
|
||||
public class LiveStreamResponse
|
||||
{
|
||||
private MediaSourceInfo MediaSource;
|
||||
public final MediaSourceInfo getMediaSource()
|
||||
{
|
||||
return MediaSource;
|
||||
}
|
||||
public final void setMediaSource(MediaSourceInfo value)
|
||||
{
|
||||
MediaSource = value;
|
||||
}
|
||||
}
|
@ -1,7 +1,6 @@
|
||||
package mediabrowser.model.mediainfo;
|
||||
|
||||
import mediabrowser.model.dlna.*;
|
||||
import mediabrowser.model.dto.*;
|
||||
|
||||
public class PlaybackInfoRequest
|
||||
{
|
||||
@ -14,13 +13,4 @@ public class PlaybackInfoRequest
|
||||
{
|
||||
DeviceProfile = value;
|
||||
}
|
||||
private MediaSourceInfo MediaSource;
|
||||
public final MediaSourceInfo getMediaSource()
|
||||
{
|
||||
return MediaSource;
|
||||
}
|
||||
public final void setMediaSource(MediaSourceInfo value)
|
||||
{
|
||||
MediaSource = value;
|
||||
}
|
||||
}
|
@ -21,18 +21,18 @@ public class PlaybackInfoResponse
|
||||
}
|
||||
|
||||
/**
|
||||
Gets or sets the stream identifier.
|
||||
Gets or sets the play session identifier.
|
||||
|
||||
<value>The stream identifier.</value>
|
||||
<value>The play session identifier.</value>
|
||||
*/
|
||||
private String StreamId;
|
||||
public final String getStreamId()
|
||||
private String PlaySessionId;
|
||||
public final String getPlaySessionId()
|
||||
{
|
||||
return StreamId;
|
||||
return PlaySessionId;
|
||||
}
|
||||
public final void setStreamId(String value)
|
||||
public final void setPlaySessionId(String value)
|
||||
{
|
||||
StreamId = value;
|
||||
PlaySessionId = value;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -186,4 +186,18 @@ public class PlaybackProgressInfo
|
||||
{
|
||||
PlayMethod = value;
|
||||
}
|
||||
/**
|
||||
Gets or sets the live stream identifier.
|
||||
|
||||
<value>The live stream identifier.</value>
|
||||
*/
|
||||
private String LiveStreamId;
|
||||
public final String getLiveStreamId()
|
||||
{
|
||||
return LiveStreamId;
|
||||
}
|
||||
public final void setLiveStreamId(String value)
|
||||
{
|
||||
LiveStreamId = value;
|
||||
}
|
||||
}
|
@ -81,4 +81,18 @@ public class PlaybackStopInfo
|
||||
{
|
||||
PositionTicks = value;
|
||||
}
|
||||
/**
|
||||
Gets or sets the live stream identifier.
|
||||
|
||||
<value>The live stream identifier.</value>
|
||||
*/
|
||||
private String LiveStreamId;
|
||||
public final String getLiveStreamId()
|
||||
{
|
||||
return LiveStreamId;
|
||||
}
|
||||
public final void setLiveStreamId(String value)
|
||||
{
|
||||
LiveStreamId = value;
|
||||
}
|
||||
}
|
@ -88,9 +88,24 @@ public class LocalItem
|
||||
{
|
||||
UserIdsWithAccess = value;
|
||||
}
|
||||
/**
|
||||
Gets or sets the additional files.
|
||||
|
||||
<value>The additional files.</value>
|
||||
*/
|
||||
private java.util.ArrayList<String> AdditionalFiles;
|
||||
public final java.util.ArrayList<String> getAdditionalFiles()
|
||||
{
|
||||
return AdditionalFiles;
|
||||
}
|
||||
public final void setAdditionalFiles(java.util.ArrayList<String> value)
|
||||
{
|
||||
AdditionalFiles = value;
|
||||
}
|
||||
|
||||
public LocalItem()
|
||||
{
|
||||
setAdditionalFiles(new java.util.ArrayList<String>());
|
||||
setUserIdsWithAccess(new java.util.ArrayList<String>());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user