Skip to content

Commit

Permalink
chore(player): Move to dedicated package
Browse files Browse the repository at this point in the history
  • Loading branch information
gabe565 committed Apr 28, 2024
1 parent b49ef1a commit ae135b3
Show file tree
Hide file tree
Showing 10 changed files with 53 additions and 48 deletions.
3 changes: 2 additions & 1 deletion cmd/play/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
tea "github.com/charmbracelet/bubbletea"
"github.com/gabe565/ascii-movie/internal/config"
"github.com/gabe565/ascii-movie/internal/movie"
"github.com/gabe565/ascii-movie/internal/player"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"github.com/spf13/cobra"
Expand Down Expand Up @@ -40,7 +41,7 @@ func run(cmd *cobra.Command, args []string) error {
}

program := tea.NewProgram(
movie.NewPlayer(&m, log.Level(zerolog.ErrorLevel), nil),
player.NewPlayer(&m, log.Level(zerolog.ErrorLevel), nil),
tea.WithAltScreen(),
tea.WithMouseCellMotion(),
)
Expand Down
34 changes: 0 additions & 34 deletions internal/movie/player_options.go

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package movie
package player

import (
"context"
Expand Down
2 changes: 1 addition & 1 deletion internal/movie/help.go → internal/player/help.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package movie
package player

import (
"github.com/charmbracelet/bubbles/help"
Expand Down
2 changes: 1 addition & 1 deletion internal/movie/keymap.go → internal/player/keymap.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package movie
package player

import (
"strconv"
Expand Down
34 changes: 34 additions & 0 deletions internal/player/options.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package player

import (
tea "github.com/charmbracelet/bubbletea"
)

type Option string

const (
Option3xRewind Option = "<<<"
Option2xRewind Option = "<<"
Option1xRewind Option = "<"
OptionPause Option = "||"
OptionPlay Option = "|>"
Option1xForward Option = ">"
Option2xForward Option = ">>"
Option3xForward Option = ">>>"
)

var playerOptions = [...]Option{ //nolint:gochecknoglobals
Option3xRewind,
Option2xRewind,
Option1xRewind,
OptionPause,
Option1xForward,
Option2xForward,
Option3xForward,
}

func chooseOption(o Option) tea.Cmd {
return func() tea.Msg {
return o
}
}
9 changes: 5 additions & 4 deletions internal/movie/player.go → internal/player/player.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package movie
package player

import (
"context"
Expand All @@ -10,11 +10,12 @@ import (
tea "github.com/charmbracelet/bubbletea"
"github.com/charmbracelet/lipgloss"
"github.com/gabe565/ascii-movie/internal/loghooks"
"github.com/gabe565/ascii-movie/internal/movie"
zone "github.com/lrstanley/bubblezone"
"github.com/rs/zerolog"
)

func NewPlayer(m *Movie, logger zerolog.Logger, renderer *lipgloss.Renderer) *Player {
func NewPlayer(m *movie.Movie, logger zerolog.Logger, renderer *lipgloss.Renderer) *Player {
if renderer == nil {
renderer = lipgloss.DefaultRenderer()
}
Expand All @@ -41,7 +42,7 @@ func NewPlayer(m *Movie, logger zerolog.Logger, renderer *lipgloss.Renderer) *Pl
}

type Player struct {
movie *Movie
movie *movie.Movie
frame int
log zerolog.Logger
renderer *lipgloss.Renderer
Expand Down Expand Up @@ -162,7 +163,7 @@ func (p *Player) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
p.clearTimeouts()
p.zone.Close()
return p, tea.Quit //nolint:forbidigo
case PlayerOption:
case Option:
p.optionViewStale = true
switch msg {
case Option3xRewind:
Expand Down
5 changes: 3 additions & 2 deletions internal/movie/player_styles.go → internal/player/styles.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package movie
package player

import (
"github.com/charmbracelet/lipgloss"
"github.com/gabe565/ascii-movie/internal/movie"
"github.com/muesli/termenv"
)

Expand All @@ -15,7 +16,7 @@ type Styles struct {
MarginX, MarginY string
}

func NewStyles(m *Movie, renderer *lipgloss.Renderer) Styles {
func NewStyles(m *movie.Movie, renderer *lipgloss.Renderer) Styles {
borderColor := lipgloss.AdaptiveColor{Light: "7", Dark: "8"}
activeColor := lipgloss.AdaptiveColor{Light: "8", Dark: "12"}
optionsColor := lipgloss.AdaptiveColor{Light: "7", Dark: "8"}
Expand Down
3 changes: 2 additions & 1 deletion internal/server/ssh.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"github.com/charmbracelet/wish"
"github.com/charmbracelet/wish/bubbletea"
"github.com/gabe565/ascii-movie/internal/movie"
"github.com/gabe565/ascii-movie/internal/player"
flag "github.com/spf13/pflag"
gossh "golang.org/x/crypto/ssh"
"golang.org/x/sync/errgroup"
Expand Down Expand Up @@ -127,7 +128,7 @@ func (s *SSHServer) Handler(m *movie.Movie) bubbletea.Handler {
Logger()

renderer := bubbletea.MakeRenderer(session)
player := movie.NewPlayer(m, logger, renderer)
player := player.NewPlayer(m, logger, renderer)
return player, []tea.ProgramOption{
tea.WithFPS(30),
tea.WithAltScreen(),
Expand Down
7 changes: 4 additions & 3 deletions internal/server/telnet.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (

tea "github.com/charmbracelet/bubbletea"
"github.com/gabe565/ascii-movie/internal/movie"
"github.com/gabe565/ascii-movie/internal/player"
"github.com/gabe565/ascii-movie/internal/server/idleconn"
"github.com/gabe565/ascii-movie/internal/server/telnet"
"github.com/gabe565/ascii-movie/internal/util"
Expand Down Expand Up @@ -134,7 +135,7 @@ func (s *TelnetServer) Handler(ctx context.Context, conn net.Conn, m *movie.Movi
profile = termenv.ANSI256
}

player := movie.NewPlayer(m, logger, telnet.MakeRenderer(outW, profile))
p := player.NewPlayer(m, logger, telnet.MakeRenderer(outW, profile))
opts := []tea.ProgramOption{
tea.WithInput(inR),
tea.WithOutput(outW),
Expand All @@ -143,7 +144,7 @@ func (s *TelnetServer) Handler(ctx context.Context, conn net.Conn, m *movie.Movi
if gotProfile {
opts = append(opts, tea.WithAltScreen(), tea.WithMouseCellMotion())
}
program := tea.NewProgram(player, opts...)
program := tea.NewProgram(p, opts...)

go func() {
for {
Expand All @@ -156,7 +157,7 @@ func (s *TelnetServer) Handler(ctx context.Context, conn net.Conn, m *movie.Movi
})
}
case <-ctx.Done():
program.Send(movie.Quit())
program.Send(player.Quit())
return
}
}
Expand Down

0 comments on commit ae135b3

Please sign in to comment.