From e1488b0d183a3244eba89220ad960865b94087e5 Mon Sep 17 00:00:00 2001 From: sentriz Date: Wed, 16 Nov 2022 18:28:31 +0000 Subject: [PATCH] feat(jukebox): use mpv over ipc as a player backend --- .github/workflows/nightly-release.yaml | 2 +- .github/workflows/release.yaml | 2 +- .github/workflows/test.yaml | 2 +- Dockerfile | 4 +- Dockerfile.debug | 1 - Dockerfile.dev | 4 +- cmd/gonic/gonic.go | 2 +- go.mod | 13 +- go.sum | 56 +-- jukebox/jukebox.go | 485 +++++++++++++++++-------- jukebox/jukebox_test.go | 187 ++++++++++ jukebox/testdata/10s.mp3 | Bin 0 -> 102984 bytes jukebox/testdata/5s.mp3 | Bin 0 -> 57120 bytes jukebox/testdata/tr_0.mp3 | 1 + jukebox/testdata/tr_1.mp3 | 1 + jukebox/testdata/tr_2.mp3 | 1 + jukebox/testdata/tr_3.mp3 | 1 + jukebox/testdata/tr_4.mp3 | 1 + jukebox/testdata/tr_5.mp3 | 1 + jukebox/testdata/tr_6.mp3 | 1 + jukebox/testdata/tr_7.mp3 | 1 + jukebox/testdata/tr_8.mp3 | 1 + jukebox/testdata/tr_9.mp3 | 1 + server/ctrlsubsonic/handlers_common.go | 134 +++++-- server/ctrlsubsonic/spec/spec.go | 2 +- server/server.go | 24 +- 26 files changed, 677 insertions(+), 251 deletions(-) create mode 100644 jukebox/jukebox_test.go create mode 100644 jukebox/testdata/10s.mp3 create mode 100644 jukebox/testdata/5s.mp3 create mode 120000 jukebox/testdata/tr_0.mp3 create mode 120000 jukebox/testdata/tr_1.mp3 create mode 120000 jukebox/testdata/tr_2.mp3 create mode 120000 jukebox/testdata/tr_3.mp3 create mode 120000 jukebox/testdata/tr_4.mp3 create mode 120000 jukebox/testdata/tr_5.mp3 create mode 120000 jukebox/testdata/tr_6.mp3 create mode 120000 jukebox/testdata/tr_7.mp3 create mode 120000 jukebox/testdata/tr_8.mp3 create mode 120000 jukebox/testdata/tr_9.mp3 diff --git a/.github/workflows/nightly-release.yaml b/.github/workflows/nightly-release.yaml index 10e627aa..5cea07f4 100644 --- a/.github/workflows/nightly-release.yaml +++ b/.github/workflows/nightly-release.yaml @@ -17,7 +17,7 @@ jobs: - name: Install dependencies run: | sudo apt update -qq - sudo apt install -y -qq build-essential git sqlite libtag1-dev ffmpeg libasound-dev zlib1g-dev + sudo apt install -y -qq build-essential git sqlite libtag1-dev ffmpeg mpv zlib1g-dev - name: Lint uses: golangci/golangci-lint-action@v2 with: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index a0671bd4..a940dc3c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -17,7 +17,7 @@ jobs: - name: Install dependencies run: | sudo apt update -qq - sudo apt install -y -qq build-essential git sqlite libtag1-dev ffmpeg libasound-dev zlib1g-dev + sudo apt install -y -qq build-essential git sqlite libtag1-dev ffmpeg mpv zlib1g-dev - name: Lint uses: golangci/golangci-lint-action@v2 with: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 4fc5c6e5..ad94f446 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -18,7 +18,7 @@ jobs: - name: Install dependencies run: | sudo apt update -qq - sudo apt install -y -qq build-essential git sqlite libtag1-dev ffmpeg libasound-dev zlib1g-dev + sudo apt install -y -qq build-essential git sqlite libtag1-dev ffmpeg mpv zlib1g-dev - name: Lint uses: golangci/golangci-lint-action@v2 with: diff --git a/Dockerfile b/Dockerfile index f27d6453..d939c771 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,6 @@ RUN apk add -U --no-cache \ git \ sqlite \ taglib-dev \ - alsa-lib-dev \ zlib-dev \ go WORKDIR /src @@ -15,10 +14,11 @@ RUN go mod download COPY . . RUN GOOS=linux go build -o gonic cmd/gonic/gonic.go -FROM alpine:3.15 +FROM alpine:3.16 LABEL org.opencontainers.image.source https://github.com/sentriz/gonic RUN apk add -U --no-cache \ ffmpeg \ + mpv \ ca-certificates \ tzdata \ tini diff --git a/Dockerfile.debug b/Dockerfile.debug index 8d14a06b..636b9fec 100644 --- a/Dockerfile.debug +++ b/Dockerfile.debug @@ -5,6 +5,5 @@ RUN apk add -U --no-cache \ git \ sqlite \ taglib-dev \ - alsa-lib-dev \ zlib-dev WORKDIR /src diff --git a/Dockerfile.dev b/Dockerfile.dev index 0ff13c51..cd6e2401 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -7,7 +7,6 @@ RUN apk add -U --no-cache \ git \ sqlite \ taglib-dev \ - alsa-lib-dev \ zlib-dev WORKDIR /src COPY . . @@ -15,9 +14,10 @@ RUN --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ GOOS=linux go build -o gonic cmd/gonic/gonic.go -FROM alpine:3.15 +FROM alpine:3.16 RUN apk add -U --no-cache \ ffmpeg \ + mpv \ ca-certificates COPY --from=builder \ /usr/lib/libgcc_s.so.1 \ diff --git a/cmd/gonic/gonic.go b/cmd/gonic/gonic.go index 81622739..ee3b5b5a 100644 --- a/cmd/gonic/gonic.go +++ b/cmd/gonic/gonic.go @@ -142,7 +142,7 @@ func main() { g.Add(server.StartScanWatcher()) } if *confJukeboxEnabled { - g.Add(server.StartJukebox()) + g.Add(server.StartJukebox(nil)) } if *confPodcastPurgeAgeDays > 0 { g.Add(server.StartPodcastPurger(time.Duration(*confPodcastPurgeAgeDays) * 24 * time.Hour)) diff --git a/go.mod b/go.mod index 21da2373..1e2cd347 100644 --- a/go.mod +++ b/go.mod @@ -4,9 +4,9 @@ go 1.19 require ( github.com/Masterminds/sprig v2.22.0+incompatible + github.com/dexterlb/mpvipc v0.0.0-20210824102722-5d27ef06b6c3 github.com/disintegration/imaging v1.6.2 github.com/dustin/go-humanize v1.0.0 - github.com/faiface/beep v1.1.0 github.com/fsnotify/fsnotify v1.6.0 github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 github.com/gorilla/mux v1.8.0 @@ -16,6 +16,7 @@ require ( github.com/josephburnett/jd v1.5.2 github.com/matryer/is v1.4.0 github.com/mattn/go-sqlite3 v1.14.16 + github.com/mitchellh/mapstructure v1.5.0 github.com/mmcdole/gofeed v1.1.3 github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 github.com/nicksellen/audiotags v0.0.0-20160226222119-94015fa599bd @@ -24,6 +25,7 @@ require ( github.com/peterbourgon/ff v1.7.1 github.com/rainycape/unidecode v0.0.0-20150907023854-cb7f23ec59be github.com/sentriz/gormstore v0.0.0-20220105134332-64e31f7f6981 + golang.org/x/exp v0.0.0-20221114191408-850992195362 gopkg.in/gormigrate.v1 v1.6.0 ) @@ -36,10 +38,7 @@ require ( github.com/go-openapi/swag v0.21.1 // indirect github.com/google/uuid v1.3.0 // indirect github.com/gorilla/context v1.1.1 // indirect - github.com/hajimehoshi/go-mp3 v0.3.4 // indirect - github.com/hajimehoshi/oto v1.0.1 // indirect github.com/huandu/xstrings v1.3.3 // indirect - github.com/icza/bitio v1.1.0 // indirect github.com/imdario/mergo v0.3.13 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.2 // indirect @@ -47,21 +46,17 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/lib/pq v1.3.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect - github.com/mewkiz/flac v1.0.7 // indirect - github.com/mewkiz/pkg v0.0.0-20220820102221-bbbca16e2a6c // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/mmcdole/goxpp v0.0.0-20200921145534-2f3784f67354 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/stretchr/testify v1.7.0 // indirect golang.org/x/crypto v0.2.0 // indirect - golang.org/x/exp/shiny v0.0.0-20221114191408-850992195362 // indirect golang.org/x/image v0.1.0 // indirect - golang.org/x/mobile v0.0.0-20221110043201-43a038452099 // indirect golang.org/x/net v0.2.0 // indirect golang.org/x/sys v0.2.0 // indirect golang.org/x/text v0.4.0 // indirect + gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/go.sum b/go.sum index d99eeb47..6d78fdba 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,5 @@ cloud.google.com/go v0.33.1/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= @@ -15,28 +14,22 @@ github.com/andybalholm/cascadia v1.3.1 h1:nhxRkql1kdYCc8Snf7D5/D3spOX+dBgjA6u8x0 github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/d4l3k/messagediff v1.2.2-0.20190829033028-7e0a312ae40b/go.mod h1:Oozbb1TVXFac9FtSIxHBMnBCq2qeH/2KkEQxENCrlLo= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/denisenkom/go-mssqldb v0.0.0-20181014144952-4e0d7dc8888f/go.mod h1:xN/JuLBIz4bjkxNmByTiV1IbhfnYb6oo99phBn4Eqhc= github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd h1:83Wprp6ROGeiHFAP8WJdI2RoxALQYgdllERc3N5N2DM= github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= +github.com/dexterlb/mpvipc v0.0.0-20210824102722-5d27ef06b6c3 h1:uIJS8tUx2f4rciUwL0wEHuwVI2tH9rQHUMnm4gHuhXs= +github.com/dexterlb/mpvipc v0.0.0-20210824102722-5d27ef06b6c3/go.mod h1:CXCwawNJCtFDip7gvbaQVgw0cGjldpyHDIp7oA5prOg= github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c= github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 h1:Yzb9+7DPaBjB8zlTR87/ElzFsnQfuHnVUVqpZZIcV5Y= github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0= -github.com/faiface/beep v1.1.0 h1:A2gWP6xf5Rh7RG/p9/VAW2jRSDEGQm5sbOb38sf5d4c= -github.com/faiface/beep v1.1.0/go.mod h1:6I8p6kK2q4opL/eWb+kAkk38ehnTunWeToJB+s51sT4= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= -github.com/gdamore/tcell v1.3.0/go.mod h1:Hjvr+Ofd+gLglo7RYKxxnzCBmev3BzsS67MebKS4zMM= -github.com/go-audio/audio v1.0.0/go.mod h1:6uAu0+H2lHkwdGsAY+j2wHPNPpPoeg5AaEFh9FlA+Zs= -github.com/go-audio/riff v1.0.0/go.mod h1:l3cQwc85y79NQFCRB7TiPoNiaijp6q8Z0Uv38rVG498= -github.com/go-audio/wav v1.0.0/go.mod h1:3yoReyQOsiARkvPl3ERCi8JFjihzG6WhjYpZCf5zAWE= github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= @@ -63,25 +56,10 @@ github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyC github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= -github.com/hajimehoshi/go-mp3 v0.3.0/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= -github.com/hajimehoshi/go-mp3 v0.3.4 h1:NUP7pBYH8OguP4diaTZ9wJbUbk3tC0KlfzsEpWmYj68= -github.com/hajimehoshi/go-mp3 v0.3.4/go.mod h1:fRtZraRFcWb0pu7ok0LqyFhCUrPeMsGRSVop0eemFmo= -github.com/hajimehoshi/oto v0.6.1/go.mod h1:0QXGEkbuJRohbJaxr7ZQSxnju7hEhseiPx2hrh6raOI= -github.com/hajimehoshi/oto v0.7.1/go.mod h1:wovJ8WWMfFKvP587mhHgot/MBr4DnNy9m6EepeVGnos= -github.com/hajimehoshi/oto v1.0.1 h1:8AMnq0Yr2YmzaiqTg/k1Yzd6IygUGk2we9nmjgbgPn4= -github.com/hajimehoshi/oto v1.0.1/go.mod h1:wovJ8WWMfFKvP587mhHgot/MBr4DnNy9m6EepeVGnos= -github.com/hajimehoshi/oto/v2 v2.3.1/go.mod h1:seWLbgHH7AyUMYKfKYT9pg7PhUu9/SisyJvNTT+ASQo= github.com/huandu/xstrings v1.3.3 h1:/Gcsuc1x8JVbJ9/rlye4xZnVAbEkGauT8lbebqcQws4= github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/icza/bitio v1.0.0/go.mod h1:0jGnlLAx8MKMr9VGnn/4YrvZiprkvBelsVIbA9Jjr9A= -github.com/icza/bitio v1.1.0 h1:ysX4vtldjdi3Ygai5m1cWy4oLkhWTAi+SyO6HC8L9T0= -github.com/icza/bitio v1.1.0/go.mod h1:0jGnlLAx8MKMr9VGnn/4YrvZiprkvBelsVIbA9Jjr9A= -github.com/icza/mighty v0.0.0-20180919140131-cfd07d671de6 h1:8UsGZ2rr2ksmEru6lToqnXgA8Mz1DP11X4zSJ159C3k= -github.com/icza/mighty v0.0.0-20180919140131-cfd07d671de6/go.mod h1:xQig96I1VNBDIWGCdTt54nHt6EeI639SmHycLYL7FkA= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= -github.com/jfreymuth/oggvorbis v1.0.1/go.mod h1:NqS+K+UXKje0FUYUPosyQ+XTVvjmVjps1aEZH1sumIk= -github.com/jfreymuth/vorbis v1.0.0/go.mod h1:8zy3lUAm9K/rJJk223RKy6vjCZTWC61NA2QD06bfOE0= github.com/jinzhu/gorm v1.9.2/go.mod h1:Vla75njaFJ8clLU1W44h34PjIkijhjHIYnZxMqCdxqo= github.com/jinzhu/gorm v1.9.17-0.20211120011537-5c235b72a414 h1:JkXdZo2OKW1t+GcTx5eb1kD2qW5lt1CDLrL2Ep9t+j4= github.com/jinzhu/gorm v1.9.17-0.20211120011537-5c235b72a414/go.mod h1:G3LB3wezTOWM2ITLzPxEXgSkOXAntiLHS7UdBefADcs= @@ -101,7 +79,6 @@ github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFF github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jszwec/csvutil v1.5.1/go.mod h1:Rpu7Uu9giO9subDyMCIQfHVDuLrcaC36UA4YcJjGBkg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -111,7 +88,6 @@ github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.3.0 h1:/qkRGz8zljWiDcFvgpwUpwIAPu3r07TDvs3Rws+o/pU= github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= @@ -119,19 +95,15 @@ github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= -github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus= github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= -github.com/mewkiz/flac v1.0.7 h1:uIXEjnuXqdRaZttmSFM5v5Ukp4U6orrZsnYGGR3yow8= -github.com/mewkiz/flac v1.0.7/go.mod h1:yU74UH277dBUpqxPouHSQIar3G1X/QIclVbFahSd1pU= -github.com/mewkiz/pkg v0.0.0-20190919212034-518ade7978e2/go.mod h1:3E2FUC/qYUfM8+r9zAwpeHJzqRVVMIYnpzD/clwWxyA= -github.com/mewkiz/pkg v0.0.0-20220820102221-bbbca16e2a6c h1:6AzCfQNCql3Of8ee1JY6dufssFnBWJYuCVrGcES84AA= -github.com/mewkiz/pkg v0.0.0-20220820102221-bbbca16e2a6c/go.mod h1:J/rDzvIiwiVpv72OEP8aJFxLXjGpUdviIIeqJPLIctA= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mmcdole/gofeed v1.1.3 h1:pdrvMb18jMSLidGp8j0pLvc9IGziX4vbmvVqmLH6z8o= @@ -158,9 +130,6 @@ github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwU github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= github.com/peterbourgon/ff v1.7.1 h1:xt1lxTG+Nr2+tFtysY7abFgPoH3Lug8CwYJMOmJRXhk= github.com/peterbourgon/ff v1.7.1/go.mod h1:fYI5YA+3RDqQRExmFbHnBjEeWzh9TrS8rnRpEq7XIg0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rainycape/unidecode v0.0.0-20150907023854-cb7f23ec59be h1:ta7tUOvsPHVHGom5hKW5VXNc2xZIkfCKP8iaqOyYtUQ= @@ -183,21 +152,14 @@ golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.2.0 h1:BRXPfhNivWL5Yq0BGQ39a2sW6t44aODpfxkWjYdzewE= golang.org/x/crypto v0.2.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp/shiny v0.0.0-20221114191408-850992195362 h1:klJAUGTRrnTvp2+ongrNqLxrl/415DPs2iR9xn/k0ME= -golang.org/x/exp/shiny v0.0.0-20221114191408-850992195362/go.mod h1:VjAR7z0ngyATZTELrBSkxOOHhhlnVUxDye4mcjx5h/8= -golang.org/x/image v0.0.0-20190220214146-31aff87c08e9/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/exp v0.0.0-20221114191408-850992195362 h1:NoHlPRbyl1VFI6FjwHtPQCN7wAMXI6cKcqrmXhOOfBQ= +golang.org/x/exp v0.0.0-20221114191408-850992195362/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.1.0 h1:r8Oj8ZA2Xy12/b5KZYj3tuv7NG/fBz3TwQVvpJ9l8Rk= golang.org/x/image v0.1.0/go.mod h1:iyPr49SD/G/TBxYVB/9RRtGUT5eNbo2u4NamWeQcD5c= -golang.org/x/mobile v0.0.0-20190415191353-3e0bab5405d6/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mobile v0.0.0-20221110043201-43a038452099 h1:aIu0lKmfdgtn2uTj7JI2oN4TUrQvgB+wzTPO23bCKt8= -golang.org/x/mobile v0.0.0-20221110043201-43a038452099/go.mod h1:aAjjkJNdrh3PMckS4B10TGS2nag27cbKR1y2BpUxsiY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -211,16 +173,12 @@ golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220712014510-0a85c31ab51e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A= @@ -246,6 +204,8 @@ gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8X gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/gormigrate.v1 v1.6.0 h1:XpYM6RHQPmzwY7Uyu+t+xxMXc86JYFJn4nEc9HzQjsI= gopkg.in/gormigrate.v1 v1.6.0/go.mod h1:Lf00lQrHqfSYWiTtPcyQabsDdM6ejZaMgV0OU6JMSlw= +gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= +gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= diff --git a/jukebox/jukebox.go b/jukebox/jukebox.go index f26625d8..b1ec23a4 100644 --- a/jukebox/jukebox.go +++ b/jukebox/jukebox.go @@ -1,205 +1,406 @@ // author: AlexKraak (https://github.com/alexkraak/) +// author: sentriz (https://github.com/sentriz/) package jukebox import ( + "errors" "fmt" - "log" "os" + "os/exec" + "path/filepath" "sync" "time" - "github.com/faiface/beep" - "github.com/faiface/beep/flac" - "github.com/faiface/beep/mp3" - "github.com/faiface/beep/speaker" + "github.com/dexterlb/mpvipc" + "github.com/mitchellh/mapstructure" + "golang.org/x/exp/slices" +) - "go.senan.xyz/gonic/db" +var ( + ErrMPVTimeout = fmt.Errorf("mpv not responding") + ErrMPVNeverStarted = fmt.Errorf("mpv never started") ) -type Status struct { - CurrentIndex int - Playing bool - Gain float64 - Position int +func MPVArg(k string, v any) string { + if v, ok := v.(bool); ok { + if v { + return fmt.Sprintf("%s=yes", k) + } + return fmt.Sprintf("%s=no", k) + } + return fmt.Sprintf("%s=%v", k, v) } type Jukebox struct { - playlist []*db.Track - index int - playing bool - sr beep.SampleRate - // used to notify the player to re read the members - quit chan struct{} - done chan bool - info *strmInfo - speaker chan updateSpeaker - sync.Mutex + cmd *exec.Cmd + conn *mpvipc.Connection + events <-chan *mpvipc.Event + + mu sync.Mutex } -type strmInfo struct { - ctrlStrmr beep.Ctrl - strm beep.StreamSeekCloser - format beep.Format +func New() *Jukebox { + return &Jukebox{} } -type updateSpeaker struct { - index int - offset int +func (j *Jukebox) Start(sockPath string, mpvExtraArgs []string) error { + const mpvName = "mpv" + if _, err := exec.LookPath(mpvName); err != nil { + return fmt.Errorf("look path: %w. did you forget to install it?", err) + } + + var mpvArgs []string + mpvArgs = append(mpvArgs, "--idle", "--no-config", "--no-video", MPVArg("--audio-display", "no"), MPVArg("--input-ipc-server", sockPath)) + mpvArgs = append(mpvArgs, mpvExtraArgs...) + + j.cmd = exec.Command(mpvName, mpvArgs...) + if err := j.cmd.Start(); err != nil { + return fmt.Errorf("start mpv process: %w", err) + } + + ok := waitUntil(5*time.Second, func() bool { + _, err := os.Stat(sockPath) + return err == nil + }) + if !ok { + _ = j.cmd.Process.Kill() + return ErrMPVNeverStarted + } + + j.conn = mpvipc.NewConnection(sockPath) + if err := j.conn.Open(); err != nil { + return fmt.Errorf("open connection: %w", err) + } + if _, err := j.conn.Call("observe_property", 0, "seekable"); err != nil { + return fmt.Errorf("observe property: %w", err) + } + j.events, _ = j.conn.NewEventListener() + + return nil } -func New() *Jukebox { - return &Jukebox{ - sr: beep.SampleRate(48000), - speaker: make(chan updateSpeaker, 1), - done: make(chan bool), - quit: make(chan struct{}), +func (j *Jukebox) Wait() error { + var exitError *exec.ExitError + if err := j.cmd.Wait(); err != nil && !errors.As(err, &exitError) { + return fmt.Errorf("wait jukebox: %w", err) } + return nil } -func (j *Jukebox) Listen() error { - if err := speaker.Init(j.sr, j.sr.N(time.Second/2)); err != nil { - return fmt.Errorf("initing speaker: %w", err) +func (j *Jukebox) GetPlaylist() ([]string, error) { + defer lock(&j.mu)() + + var playlist mpvPlaylist + if err := j.getDecode(&playlist, "playlist"); err != nil { + return nil, fmt.Errorf("get playlist: %w", err) } - for { - select { - case <-j.quit: - return nil - case speaker := <-j.speaker: - if err := j.doUpdateSpeaker(speaker); err != nil { - log.Printf("error in jukebox: %v", err) - } - } + var items []string + for _, item := range playlist { + items = append(items, item.Filename) } + return items, nil } -func (j *Jukebox) Quit() { - j.quit <- struct{}{} -} +func (j *Jukebox) SetPlaylist(items []string) error { + defer lock(&j.mu)() -func (j *Jukebox) doUpdateSpeaker(su updateSpeaker) error { - j.Lock() - defer j.Unlock() - if su.index >= len(j.playlist) { - j.playing = false - speaker.Clear() - return nil + var playlist mpvPlaylist + if err := j.getDecode(&playlist, "playlist"); err != nil { + return fmt.Errorf("get playlist: %w", err) } - j.index = su.index - f, err := os.Open(j.playlist[su.index].AbsPath()) + current, currentIndex := find(playlist, func(item mpvPlaylistItem) bool { + return item.Current + }) + + cwd, _ := os.Getwd() + currFilename, _ := filepath.Rel(cwd, current.Filename) + filteredItems, foundExistingTrack := filter(items, func(filename string) bool { + return filename != currFilename + }) + + tmp, cleanup, err := tmp() if err != nil { - return err + return fmt.Errorf("create temp file: %w", err) } - var streamer beep.Streamer - var format beep.Format - switch j.playlist[su.index].Ext() { - case "mp3": - streamer, format, err = mp3.Decode(f) - case "flac": - streamer, format, err = flac.Decode(f) + defer cleanup() + for _, item := range filteredItems { + item, _ = filepath.Abs(item) + fmt.Fprintln(tmp, item) } + + if !foundExistingTrack { + // easy case - a brand new set of tracks that we can overwrite + if _, err := j.conn.Call("loadlist", tmp.Name(), "replace"); err != nil { + return fmt.Errorf("load list: %w", err) + } + return nil + } + + // not so easy, we need to clear the playlist except what's playing, load everything + // except for what we're playing, then move what's playing back to its original index + // clear all items except what's playing (will be at index 0) + if _, err := j.conn.Call("playlist-clear"); err != nil { + return fmt.Errorf("clear playlist: %w", err) + } + if _, err := j.conn.Call("loadlist", tmp.Name(), "append-play"); err != nil { + return fmt.Errorf("load list: %w", err) + } + if _, err := j.conn.Call("playlist-move", 0, currentIndex+1); err != nil { + return fmt.Errorf("playlist move: %w", err) + } + return nil +} + +func (j *Jukebox) AppendToPlaylist(items []string) error { + defer lock(&j.mu)() + + tmp, cleanup, err := tmp() if err != nil { - return err - } - j.info = &strmInfo{} - j.info.strm = streamer.(beep.StreamSeekCloser) - if su.offset != 0 { - samples := format.SampleRate.N(time.Second * time.Duration(su.offset)) - if err := j.info.strm.Seek(samples); err != nil { - return err + return fmt.Errorf("create temp file: %w", err) + } + defer cleanup() + for _, item := range items { + fmt.Fprintln(tmp, item) + } + if _, err := j.conn.Call("loadlist", tmp.Name(), "append"); err != nil { + return fmt.Errorf("load list: %w", err) + } + return nil +} + +func (j *Jukebox) RemovePlaylistIndex(i int) error { + defer lock(&j.mu)() + + if _, err := j.conn.Call("playlist-remove", i); err != nil { + return fmt.Errorf("playlist remove: %w", err) + } + return nil +} + +func (j *Jukebox) SkipToPlaylistIndex(i int, offsetSecs int) error { + defer lock(&j.mu)() + + matchEventSeekable := func(e *mpvipc.Event) bool { + seekable, _ := e.Data.(bool) + return e.Name == "property-change" && + e.ExtraData["name"] == "seekable" && + seekable + } + + if offsetSecs > 0 { + if err := j.conn.Set("pause", true); err != nil { + return fmt.Errorf("pause: %w", err) + } + } + if _, err := j.conn.Call("playlist-play-index", i); err != nil { + return fmt.Errorf("playlist play index: %w", err) + } + if offsetSecs > 0 { + if err := waitFor(j.events, matchEventSeekable); err != nil { + return fmt.Errorf("waiting for file load: %w", err) + } + if _, err := j.conn.Call("seek", offsetSecs, "absolute"); err != nil { + return fmt.Errorf("seek: %w", err) + } + if err := j.conn.Set("pause", false); err != nil { + return fmt.Errorf("play: %w", err) } } - j.info.ctrlStrmr.Streamer = beep.Resample( - 4, format.SampleRate, - j.sr, j.info.strm, - ) - j.info.format = format - speaker.Play(beep.Seq(&j.info.ctrlStrmr, beep.Callback(func() { - j.speaker <- updateSpeaker{index: su.index + 1} - }))) return nil } -func (j *Jukebox) SetTracks(tracks []*db.Track) { - j.Lock() - defer j.Unlock() - j.playlist = tracks +func (j *Jukebox) ClearPlaylist() error { + defer lock(&j.mu)() + + if _, err := j.conn.Call("playlist-clear"); err != nil { + return fmt.Errorf("seek: %w", err) + } + return nil +} + +func (j *Jukebox) Pause() error { + defer lock(&j.mu)() + + if err := j.conn.Set("pause", true); err != nil { + return fmt.Errorf("pause: %w", err) + } + return nil +} + +func (j *Jukebox) Play() error { + defer lock(&j.mu)() + + if err := j.conn.Set("pause", false); err != nil { + return fmt.Errorf("pause: %w", err) + } + return nil +} + +func (j *Jukebox) SetVolumePct(v int) error { + defer lock(&j.mu)() + + if err := j.conn.Set("volume", v); err != nil { + return fmt.Errorf("set volume: %w", err) + } + return nil +} + +func (j *Jukebox) GetVolumePct() (float64, error) { + defer lock(&j.mu)() + + var volume float64 + if err := j.getDecode(&volume, "volume"); err != nil { + return 0, fmt.Errorf("get volume: %w", err) + } + return volume, nil +} + +type Status struct { + CurrentIndex int + CurrentFilename string + Length int + Playing bool + GainPct int + Position int +} + +func (j *Jukebox) GetStatus() (*Status, error) { + defer lock(&j.mu)() + + var status Status + _ = j.getDecode(&status.Position, "time-pos") // property may not always be there + _ = j.getDecode(&status.GainPct, "volume") // property may not always be there + + var playlist mpvPlaylist + _ = j.getDecode(&playlist, "playlist") + + status.CurrentIndex = slices.IndexFunc(playlist, func(pl mpvPlaylistItem) bool { + return pl.Current + }) + + status.Length = len(playlist) + + if status.CurrentIndex < 0 { + return &status, nil + } + + status.CurrentFilename = playlist[status.CurrentIndex].Filename + + var paused bool + _ = j.getDecode(&paused, "pause") // property may not always be there + status.Playing = !paused + + return &status, nil } -func (j *Jukebox) AddTracks(tracks []*db.Track) { - j.Lock() - if len(j.playlist) == 0 { - j.playlist = tracks - j.playing = true - j.index = 0 - j.Unlock() - j.speaker <- updateSpeaker{index: 0} - return +func (j *Jukebox) Quit() error { + defer lock(&j.mu)() + + if j.conn == nil || j.conn.IsClosed() { + return nil + } + if _, err := j.conn.Call("quit"); err != nil { + return fmt.Errorf("quit: %w", err) + } + if err := j.conn.Close(); err != nil { + return fmt.Errorf("close: %w", err) } - j.playlist = append(j.playlist, tracks...) - j.Unlock() + j.conn.WaitUntilClosed() + return nil } -func (j *Jukebox) RemoveTrack(i int) { - j.Lock() - defer j.Unlock() - if i < 0 || i >= len(j.playlist) { - return +func (j *Jukebox) getDecode(dest any, property string) error { + raw, err := j.conn.Get(property) + if err != nil { + return fmt.Errorf("get property: %w", err) } - j.playlist = append(j.playlist[:i], j.playlist[i+1:]...) + if err := mapstructure.Decode(raw, dest); err != nil { + return fmt.Errorf("decode: %w", err) + } + return nil } -func (j *Jukebox) Skip(i int, offset int) { - speaker.Clear() - j.Lock() - j.index = i - j.playing = true - j.Unlock() - j.speaker <- updateSpeaker{index: j.index, offset: offset} +type mpvPlaylist []mpvPlaylistItem +type mpvPlaylistItem struct { + ID int + Filename string + Current bool + Playing bool } -func (j *Jukebox) ClearTracks() { - speaker.Clear() - j.Lock() - defer j.Unlock() - j.playing = false - j.playlist = []*db.Track{} +func waitUntil(timeout time.Duration, f func() bool) bool { + quit := time.NewTicker(timeout) + defer quit.Stop() + check := time.NewTicker(100 * time.Millisecond) + defer check.Stop() + + for { + select { + case <-quit.C: + return false + case <-check.C: + if f() { + return true + } + } + } } -func (j *Jukebox) Stop() { - j.Lock() - defer j.Unlock() - if j.info != nil { - j.playing = false - j.info.ctrlStrmr.Paused = true +func waitFor[T any](ch <-chan T, match func(e T) bool) error { + quit := time.NewTicker(1 * time.Second) + defer quit.Stop() + + defer time.Sleep(350 * time.Millisecond) + + for { + select { + case <-quit.C: + return ErrMPVTimeout + case ev := <-ch: + if match(ev) { + return nil + } + } } } -func (j *Jukebox) Start() { - if j.info != nil { - j.playing = true - j.info.ctrlStrmr.Paused = false +func tmp() (*os.File, func(), error) { + tmp, err := os.CreateTemp("", "") + if err != nil { + return nil, nil, fmt.Errorf("create temp file: %w", err) } + cleanup := func() { + os.Remove(tmp.Name()) + tmp.Close() + } + return tmp, cleanup, nil } -func (j *Jukebox) GetStatus() Status { - j.Lock() - defer j.Unlock() - position := 0 - if j.info != nil { - length := j.info.format.SampleRate.D(j.info.strm.Position()) - position = int(length.Round(time.Millisecond).Seconds()) +func find[T any](items []T, f func(T) bool) (T, int) { + for i, item := range items { + if f(item) { + return item, i + } } - return Status{ - CurrentIndex: j.index, - Playing: j.playing, - Gain: 0.9, - Position: position, + var t T + return t, -1 +} + +func filter[T comparable](items []T, f func(T) bool) ([]T, bool) { + var found bool + var ret []T + for _, item := range items { + if !f(item) { + found = true + continue + } + ret = append(ret, item) } + return ret, found } -func (j *Jukebox) GetTracks() []*db.Track { - j.Lock() - defer j.Unlock() - return j.playlist +func lock(mu *sync.Mutex) func() { + mu.Lock() + return mu.Unlock } diff --git a/jukebox/jukebox_test.go b/jukebox/jukebox_test.go new file mode 100644 index 00000000..4cb781e2 --- /dev/null +++ b/jukebox/jukebox_test.go @@ -0,0 +1,187 @@ +package jukebox_test + +import ( + "os" + "path/filepath" + "sort" + "testing" + + "github.com/matryer/is" + "go.senan.xyz/gonic/jukebox" +) + +func newJukebox(t *testing.T) *jukebox.Jukebox { + sockPath := filepath.Join(t.TempDir(), "mpv.sock") + + j := jukebox.New() + err := j.Start( + sockPath, + []string{jukebox.MPVArg("--ao", "null")}, + ) + if err != nil { + t.Fatalf("start jukebox: %v", err) + } + t.Cleanup(func() { + j.Quit() + }) + return j +} + +func TestPlaySkipReset(t *testing.T) { + t.Parallel() + j := newJukebox(t) + is := is.New(t) + + is.NoErr(j.SetPlaylist([]string{ + testPath("tr_0.mp3"), + testPath("tr_1.mp3"), + testPath("tr_2.mp3"), + testPath("tr_3.mp3"), + testPath("tr_4.mp3"), + })) + + status, err := j.GetStatus() + is.NoErr(err) + is.Equal(status.CurrentIndex, 0) + is.Equal(status.CurrentFilename, testPath("tr_0.mp3")) + is.Equal(status.Length, 5) + is.Equal(status.Playing, true) + + items, err := j.GetPlaylist() + is.NoErr(err) + + itemsSorted := append([]string(nil), items...) + sort.Strings(itemsSorted) + is.Equal(items, itemsSorted) + + is.NoErr(j.Play()) + + status, err = j.GetStatus() + is.NoErr(err) + is.Equal(status.Playing, true) + + is.NoErr(j.Pause()) + + status, err = j.GetStatus() + is.NoErr(err) + is.Equal(status.Playing, false) + + is.NoErr(j.Play()) + + // skip to 2 + is.NoErr(j.SkipToPlaylistIndex(2, 0)) + + status, err = j.GetStatus() + is.NoErr(err) + is.Equal(status.CurrentIndex, 2) + is.Equal(status.CurrentFilename, testPath("tr_2.mp3")) + is.Equal(status.Length, 5) + is.Equal(status.Playing, true) + + // skip to 3 + is.NoErr(j.SkipToPlaylistIndex(3, 0)) + + status, err = j.GetStatus() + is.NoErr(err) + is.Equal(status.CurrentIndex, 3) + is.Equal(status.CurrentFilename, testPath("tr_3.mp3")) + is.Equal(status.Length, 5) + is.Equal(status.Playing, true) + + // just add one more by overwriting the playlist like some clients do + // we should keep the current track unchaned if we find it + is.NoErr(j.SetPlaylist([]string{ + "testdata/tr_0.mp3", + "testdata/tr_1.mp3", + "testdata/tr_2.mp3", + "testdata/tr_3.mp3", + "testdata/tr_4.mp3", + "testdata/tr_5.mp3", + })) + + status, err = j.GetStatus() + is.NoErr(err) + is.Equal(status.CurrentIndex, 3) // index unchanged + is.Equal(status.CurrentFilename, testPath("tr_3.mp3")) + is.Equal(status.Length, 6) // we added one more track + is.Equal(status.Playing, true) + + // skip to 3 again + is.NoErr(j.SkipToPlaylistIndex(3, 0)) + + status, err = j.GetStatus() + is.NoErr(err) + is.Equal(status.CurrentIndex, 3) + is.Equal(status.CurrentFilename, testPath("tr_3.mp3")) + is.Equal(status.Length, 6) + is.Equal(status.Playing, true) + + // remove all but 3 + is.NoErr(j.SetPlaylist([]string{ + "testdata/tr_0.mp3", + "testdata/tr_1.mp3", + "testdata/tr_2.mp3", + "testdata/tr_3.mp3", + })) + + status, err = j.GetStatus() + is.NoErr(err) + is.Equal(status.CurrentIndex, 3) // index unchanged + is.Equal(status.CurrentFilename, testPath("tr_3.mp3")) + is.Equal(status.Length, 4) + is.Equal(status.Playing, true) + + // skip to 2 (5s long) in the middle of the track + is.NoErr(j.SkipToPlaylistIndex(2, 2)) + + status, err = j.GetStatus() + is.NoErr(err) + is.Equal(status.CurrentIndex, 2) // index unchanged + is.Equal(status.CurrentFilename, testPath("tr_2.mp3")) + is.Equal(status.Length, 4) + is.Equal(status.Playing, true) + is.Equal(status.Position, 2) // at new position + + // overwrite completely + is.NoErr(j.SetPlaylist([]string{ + "testdata/tr_5.mp3", + "testdata/tr_6.mp3", + "testdata/tr_7.mp3", + "testdata/tr_8.mp3", + "testdata/tr_9.mp3", + })) + + status, err = j.GetStatus() + is.NoErr(err) + is.Equal(status.CurrentIndex, 0) // index unchanged + is.Equal(status.CurrentFilename, testPath("tr_5.mp3")) + is.Equal(status.Length, 5) + is.Equal(status.Playing, true) +} + +func TestVolume(t *testing.T) { + t.Parallel() + j := newJukebox(t) + is := is.New(t) + + vol, err := j.GetVolumePct() + is.NoErr(err) + is.Equal(vol, 100.0) + + is.NoErr(j.SetVolumePct(69.0)) + + vol, err = j.GetVolumePct() + is.NoErr(err) + is.Equal(vol, 69.0) + + is.NoErr(j.SetVolumePct(0.0)) + + vol, err = j.GetVolumePct() + is.NoErr(err) + is.Equal(vol, 0.0) +} + +func testPath(path string) string { + cwd, _ := os.Getwd() + return filepath.Join(cwd, "testdata", path) +} diff --git a/jukebox/testdata/10s.mp3 b/jukebox/testdata/10s.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..af09ea836bdafdc8898332104829a55712358ecb GIT binary patch literal 102984 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