Files
rmpc_controller/server.go
T
2025-12-30 14:59:11 -06:00

74 lines
1.4 KiB
Go

package main
import (
//"fmt"
"log"
"net"
"os/exec"
"strings"
)
func main() {
listener, err := net.Listen("tcp", "0.0.0.0:2810")
if err != nil {
log.Println("Error al abrir el puerto.", err)
}
defer listener.Close()
for {
conn, err := listener.Accept()
if err != nil {
log.Println("Error al aceptar la conexion.", err)
}
go menuController(conn)
}
}
func menuController(conn net.Conn) {
var out string
comandoRaw := make([]byte, 1024)
n, err := conn.Read(comandoRaw)
if err != nil {
log.Println(err)
}
comandoString := strings.TrimSpace(string(comandoRaw[:n]))
switch comandoString {
case "play":
out = playSong(conn)
case "pause":
out = pauseSong(conn)
case "info":
out = infoSong(conn)
}
_, err = conn.Write([]byte(out))
if err != nil {
log.Println("Error al enviar la informacion", err)
}
}
func playSong(conn net.Conn) string {
cmd := exec.Command("mpc", "play")
output, err := cmd.CombinedOutput()
if err != nil {
log.Println("Error al reproducir musica", err)
}
return string(output)
}
func pauseSong(conn net.Conn) string {
cmd := exec.Command("mpc", "pause")
output, err := cmd.CombinedOutput()
if err != nil {
log.Println("Error al pausar musica", err)
}
return string(output)
}
func infoSong(conn net.Conn) string {
cmd := exec.Command("mpc")
output, err := cmd.CombinedOutput()
if err != nil {
log.Println("Error al solicitar informacion", err)
}
return string(output)
}