mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-08 15:50:16 +02:00
Add setting to change default content scaling (#77)
Closes #53 #71 Adds an advanced playback setting to set a different default global content scaling. It can still be changed per playback as well.
This commit is contained in:
parent
4269d27dad
commit
bafd635402
6 changed files with 48 additions and 2 deletions
|
|
@ -522,6 +522,19 @@ sealed interface AppPreference<T> {
|
||||||
valueToIndex = { it.number },
|
valueToIndex = { it.number },
|
||||||
)
|
)
|
||||||
|
|
||||||
|
val GlobalContentScale =
|
||||||
|
AppChoicePreference<PrefContentScale>(
|
||||||
|
title = R.string.global_content_scale,
|
||||||
|
defaultValue = PrefContentScale.FIT,
|
||||||
|
getter = { it.playbackPreferences.globalContentScale },
|
||||||
|
setter = { prefs, value ->
|
||||||
|
prefs.updatePlaybackPreferences { globalContentScale = value }
|
||||||
|
},
|
||||||
|
displayValues = R.array.content_scale,
|
||||||
|
indexToValue = { PrefContentScale.forNumber(it) },
|
||||||
|
valueToIndex = { it.number },
|
||||||
|
)
|
||||||
|
|
||||||
val ClearImageCache =
|
val ClearImageCache =
|
||||||
AppClickablePreference(
|
AppClickablePreference(
|
||||||
title = R.string.clear_image_cache,
|
title = R.string.clear_image_cache,
|
||||||
|
|
@ -639,6 +652,7 @@ val advancedPreferences =
|
||||||
title = R.string.playback_overrides,
|
title = R.string.playback_overrides,
|
||||||
preferences =
|
preferences =
|
||||||
listOf(
|
listOf(
|
||||||
|
AppPreference.GlobalContentScale,
|
||||||
AppPreference.DownMixStereo,
|
AppPreference.DownMixStereo,
|
||||||
AppPreference.Ac3Supported,
|
AppPreference.Ac3Supported,
|
||||||
AppPreference.DirectPlayAss,
|
AppPreference.DirectPlayAss,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.github.damontecres.wholphin.ui.playback
|
package com.github.damontecres.wholphin.ui.playback
|
||||||
|
|
||||||
import androidx.compose.ui.layout.ContentScale
|
import androidx.compose.ui.layout.ContentScale
|
||||||
|
import com.github.damontecres.wholphin.preferences.PrefContentScale
|
||||||
|
|
||||||
val playbackScaleOptions =
|
val playbackScaleOptions =
|
||||||
mapOf(
|
mapOf(
|
||||||
|
|
@ -12,3 +13,15 @@ val playbackScaleOptions =
|
||||||
ContentScale.FillWidth to "Fill Width",
|
ContentScale.FillWidth to "Fill Width",
|
||||||
ContentScale.FillHeight to "Fill Height",
|
ContentScale.FillHeight to "Fill Height",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
val PrefContentScale.scale: ContentScale
|
||||||
|
get() =
|
||||||
|
when (this) {
|
||||||
|
PrefContentScale.FIT -> ContentScale.Fit
|
||||||
|
PrefContentScale.NONE -> ContentScale.None
|
||||||
|
PrefContentScale.CROP -> ContentScale.Crop
|
||||||
|
PrefContentScale.FILL -> ContentScale.FillBounds
|
||||||
|
PrefContentScale.Fill_WIDTH -> ContentScale.FillWidth
|
||||||
|
PrefContentScale.FILL_HEIGHT -> ContentScale.FillHeight
|
||||||
|
PrefContentScale.UNRECOGNIZED -> ContentScale.Fit
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,6 @@ import androidx.compose.ui.focus.focusRequester
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.graphics.RectangleShape
|
import androidx.compose.ui.graphics.RectangleShape
|
||||||
import androidx.compose.ui.input.key.onKeyEvent
|
import androidx.compose.ui.input.key.onKeyEvent
|
||||||
import androidx.compose.ui.layout.ContentScale
|
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.viewinterop.AndroidView
|
import androidx.compose.ui.viewinterop.AndroidView
|
||||||
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
|
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
|
||||||
|
|
@ -147,7 +146,7 @@ fun PlaybackPage(
|
||||||
onDispose { player.removeListener(cueListener) }
|
onDispose { player.removeListener(cueListener) }
|
||||||
}
|
}
|
||||||
AmbientPlayerListener(player)
|
AmbientPlayerListener(player)
|
||||||
var contentScale by remember { mutableStateOf(ContentScale.Fit) }
|
var contentScale by remember { mutableStateOf(prefs.globalContentScale.scale) }
|
||||||
var playbackSpeed by remember { mutableFloatStateOf(1.0f) }
|
var playbackSpeed by remember { mutableFloatStateOf(1.0f) }
|
||||||
LaunchedEffect(playbackSpeed) { player.setPlaybackSpeed(playbackSpeed) }
|
LaunchedEffect(playbackSpeed) { player.setPlaybackSpeed(playbackSpeed) }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,15 @@ enum SkipSegmentBehavior{
|
||||||
ASK_TO_SKIP = 2;
|
ASK_TO_SKIP = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum PrefContentScale{
|
||||||
|
FIT = 0;
|
||||||
|
NONE = 1;
|
||||||
|
CROP = 2;
|
||||||
|
FILL = 3;
|
||||||
|
Fill_WIDTH = 4;
|
||||||
|
FILL_HEIGHT = 5;
|
||||||
|
}
|
||||||
|
|
||||||
message PlaybackOverrides{
|
message PlaybackOverrides{
|
||||||
bool ac3_supported = 1;
|
bool ac3_supported = 1;
|
||||||
bool downmix_stereo = 2;
|
bool downmix_stereo = 2;
|
||||||
|
|
@ -35,6 +44,7 @@ message PlaybackPreferences {
|
||||||
|
|
||||||
PlaybackOverrides overrides = 15;
|
PlaybackOverrides overrides = 15;
|
||||||
int64 pass_out_protection_ms = 16;
|
int64 pass_out_protection_ms = 16;
|
||||||
|
PrefContentScale global_content_scale = 17;
|
||||||
}
|
}
|
||||||
|
|
||||||
message HomePagePreferences{
|
message HomePagePreferences{
|
||||||
|
|
|
||||||
|
|
@ -22,4 +22,13 @@
|
||||||
<item>Ask to skip</item>
|
<item>Ask to skip</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<string-array name="content_scale">
|
||||||
|
<item>Fit</item>
|
||||||
|
<item>None</item>
|
||||||
|
<item>Crop</item>
|
||||||
|
<item>Fill</item>
|
||||||
|
<item>Fill Width</item>
|
||||||
|
<item>Fill Height</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -96,5 +96,6 @@
|
||||||
<string name="send_crash_reports_summary">Will try to send to last connected server</string>
|
<string name="send_crash_reports_summary">Will try to send to last connected server</string>
|
||||||
<string name="send_app_logs">Send app logs to current server</string>
|
<string name="send_app_logs">Send app logs to current server</string>
|
||||||
<string name="send_app_logs_summary">Useful for debugging</string>
|
<string name="send_app_logs_summary">Useful for debugging</string>
|
||||||
|
<string name="global_content_scale">Default content scale</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue