mirror of
https://github.com/narrrl/proton-stream.git
synced 2026-11-04 08:56:59 +01:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a475ad3575 | ||
|
|
da13f0547e | ||
|
|
4ca57d9449 |
No files matched your search
Generated
+7
-7
@@ -5279,7 +5279,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pstr-android"
|
name = "pstr-android"
|
||||||
version = "2.0.0"
|
version = "2.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"android_logger",
|
"android_logger",
|
||||||
"futures",
|
"futures",
|
||||||
@@ -5299,7 +5299,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pstr-app"
|
name = "pstr-app"
|
||||||
version = "2.0.0"
|
version = "2.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"chrono",
|
"chrono",
|
||||||
@@ -5333,7 +5333,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pstr-cli"
|
name = "pstr-cli"
|
||||||
version = "2.0.0"
|
version = "2.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
"clap",
|
||||||
@@ -5352,7 +5352,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pstr-core"
|
name = "pstr-core"
|
||||||
version = "2.0.0"
|
version = "2.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"directories",
|
"directories",
|
||||||
"futures",
|
"futures",
|
||||||
@@ -5372,7 +5372,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pstr-meta"
|
name = "pstr-meta"
|
||||||
version = "2.0.0"
|
version = "2.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"pstr-core",
|
"pstr-core",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
@@ -5385,7 +5385,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pstr-player"
|
name = "pstr-player"
|
||||||
version = "2.0.0"
|
version = "2.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"libloading",
|
"libloading",
|
||||||
@@ -5400,7 +5400,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pstr-stream"
|
name = "pstr-stream"
|
||||||
version = "2.0.0"
|
version = "2.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"futures",
|
"futures",
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@ members = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "2.0.0"
|
version = "2.0.1"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://github.com/narrrl/proton-stream"
|
repository = "https://github.com/narrrl/proton-stream"
|
||||||
|
|||||||
@@ -477,8 +477,12 @@ fun PlayerScreen(
|
|||||||
// four seconds after it is reached cannot be found again.
|
// four seconds after it is reached cannot be found again.
|
||||||
val exploring = rememberTouchExploration()
|
val exploring = rememberTouchExploration()
|
||||||
LaunchedEffect(exploring) { if (exploring) showControls = true }
|
LaunchedEffect(exploring) { if (exploring) showControls = true }
|
||||||
LaunchedEffect(showControls, state.paused, exploring) {
|
// A chooser open over the controls. They hold still under it: the
|
||||||
if (showControls && !state.paused && !exploring) {
|
// choosers live inside the controls, so hiding them closed whatever was
|
||||||
|
// being picked from, four seconds after the controls came up.
|
||||||
|
var picking by remember { mutableStateOf(false) }
|
||||||
|
LaunchedEffect(showControls, state.paused, exploring, picking) {
|
||||||
|
if (showControls && !state.paused && !exploring && !picking) {
|
||||||
delay(CONTROLS_SECONDS * 1_000)
|
delay(CONTROLS_SECONDS * 1_000)
|
||||||
showControls = false
|
showControls = false
|
||||||
}
|
}
|
||||||
@@ -698,6 +702,7 @@ fun PlayerScreen(
|
|||||||
landscapeLocked = landscapeLocked,
|
landscapeLocked = landscapeLocked,
|
||||||
media = key,
|
media = key,
|
||||||
sleep = sleep,
|
sleep = sleep,
|
||||||
|
onPicking = { picking = it },
|
||||||
onLock = {
|
onLock = {
|
||||||
locked = true
|
locked = true
|
||||||
showControls = false
|
showControls = false
|
||||||
@@ -949,6 +954,7 @@ private fun PlayerControls(
|
|||||||
landscapeLocked: Boolean,
|
landscapeLocked: Boolean,
|
||||||
media: String,
|
media: String,
|
||||||
sleep: SleepTimer?,
|
sleep: SleepTimer?,
|
||||||
|
onPicking: (Boolean) -> Unit,
|
||||||
onLock: () -> Unit,
|
onLock: () -> Unit,
|
||||||
) {
|
) {
|
||||||
val scope = rememberCoroutineScope()
|
val scope = rememberCoroutineScope()
|
||||||
@@ -957,6 +963,10 @@ private fun PlayerControls(
|
|||||||
var showEpisodes by remember { mutableStateOf(false) }
|
var showEpisodes by remember { mutableStateOf(false) }
|
||||||
var showChapters by remember { mutableStateOf(false) }
|
var showChapters by remember { mutableStateOf(false) }
|
||||||
var showSpeeds by remember { mutableStateOf(false) }
|
var showSpeeds by remember { mutableStateOf(false) }
|
||||||
|
var more by remember { mutableStateOf(false) }
|
||||||
|
val picking = more || showSleep || choosing != null || showEpisodes || showChapters || showSpeeds
|
||||||
|
LaunchedEffect(picking) { onPicking(picking) }
|
||||||
|
DisposableEffect(Unit) { onDispose { onPicking(false) } }
|
||||||
// What the store says, so the dialog opens on the rate that is playing.
|
// What the store says, so the dialog opens on the rate that is playing.
|
||||||
var speed by remember { mutableStateOf(1.0) }
|
var speed by remember { mutableStateOf(1.0) }
|
||||||
LaunchedEffect(Unit) {
|
LaunchedEffect(Unit) {
|
||||||
@@ -1037,7 +1047,6 @@ private fun PlayerControls(
|
|||||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||||
if (!roomForAll) {
|
if (!roomForAll) {
|
||||||
CompactIcon(Icons.Default.Subtitles, "Subtitles") { choosing = "sub" }
|
CompactIcon(Icons.Default.Subtitles, "Subtitles") { choosing = "sub" }
|
||||||
var more by remember { mutableStateOf(false) }
|
|
||||||
Box {
|
Box {
|
||||||
CompactIcon(Icons.Default.MoreVert, "More") { more = true }
|
CompactIcon(Icons.Default.MoreVert, "More") { more = true }
|
||||||
DropdownMenu(expanded = more, onDismissRequest = { more = false }) {
|
DropdownMenu(expanded = more, onDismissRequest = { more = false }) {
|
||||||
|
|||||||
@@ -89,6 +89,8 @@ containers.
|
|||||||
|
|
||||||
## A title's page
|
## A title's page
|
||||||
|
|
||||||
|
<img src="../images/desktop-title.png" alt="A title's page" width="820">
|
||||||
|
|
||||||
Click a title to open its page. **Esc** goes back. On a phone, the picture at the top slides
|
Click a title to open its page. **Esc** goes back. On a phone, the picture at the top slides
|
||||||
away more slowly than the page, and once it has gone a bar with the title's name stays at the
|
away more slowly than the page, and once it has gone a bar with the title's name stays at the
|
||||||
top.
|
top.
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 3.1 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 3.1 MiB After Width: | Height: | Size: 4.0 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.4 MiB |
+1
-1
@@ -14,7 +14,7 @@
|
|||||||
# builds from the registry alone.
|
# builds from the registry alone.
|
||||||
|
|
||||||
pkgname=proton-stream
|
pkgname=proton-stream
|
||||||
pkgver=2.0.0
|
pkgver=2.0.1
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="Netflix-style desktop client for Proton Drive public links: browse and stream a share"
|
pkgdesc="Netflix-style desktop client for Proton Drive public links: browse and stream a share"
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
|
|||||||
Reference in new issue
Block a user