123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- #!/bin/bash
- #---------------HEADER--------------------------------------------------------------------|
- #AUTOR:
- # Jefferson Rocha <lrcjefferson@gmail.com>
- #
- #PROGRAMA:
- # M4L - Music for life.
- #
- #DESCRIÇÃO:
- # Tocador de música completo via CLI, utilizando o mpg123 como base.
- # Tem como objetivo ser simples/minimalista e agradável, fácil de usar.
- #
- #LICENSE
- # M4L is licensed under the GNU Lesser/Library General Public License, LGPL, version 2.1
- # mpg123 is licensed under the GNU Lesser/Library General Public License, LGPL, version 2.1
- #
- #CHANGELOG:
- # (Versão 1.0b) - Jefferson Rocha
- # -Lançado programa em versão beta
- #
- # (Versão 1.1) - Jefferson Rocha
- # -Arrumado e melhorado Cabeçalho
- # -Adicionado função de verificação de parâmetro nulo
- # -Adicionado ajuda em linha.
- # -Adicionado parâmetro --stereo no mpg123
- # -Adicionado parâmetro -C (controle keys) no mpg123
- # -Trocado sáida de erro /dev/null por 2>&- no tocador mpg123
- # -Adicionado Animação (Espectrum) enquanto toca a música.
- # -Adicionado função para centralizar logo de acordo com a tela.
- # -Retirado subtitulo que ficava após o logo.
- # -Retirado váriaveis (mover e mover_sub).
- #-----------------------------------------------------------------------------------------|
- #-----------------------(VÁRIAVEIS GLOBAIS DO PROGRAMA)
- # Configurações--!
- programa="M4L Player V1.1"
- TOCADOR="mpg123 --title --stereo -C" # tocador
- # Testes--!
- mpg_existe=$(which mpg123)
- # Cores--!
- bold="\033[1m"
- a="\033[36;40;1m" # cor legenda/opções
- f="\033[m" # fecha cores
- rosa="\033[35;1m" # Rosa
- vermelho="\033[31;1m" # Vermelho
- #----------------------------------------------!
- #-----------------------(FUNÇÕES)
- variavel_nula() {
- [ "$param1" ] || {
- echo -e "\t$rosa Ops. Selecione uma música rapaz!$f"
- }
- }
- # agora o logo fica no centro!
- centro() {
- local cent=$(tput cols)
- local centralizando=$(($cent/2))
- printf "\t%*s\n" $centralizando " M4L - PLAYER "
- }
- espectrum() (
- # helice, executado em segundo plano,
- # enquanto rola a música.
- while :; do
- for a in / - \\ \|; do
- echo -ne "\b$a"
- done
- done & "$@"
- kill $!
- echo
- )
- #-------------------------------!
- #-----------------------(TESTES INICIAIS)
- # mpg123 existe no sistema?
- # se não existir instala vagabundo riaria
- [ "$mpg_existe" ] || {
- echo -e "$vermelho\tVocê deve instalar o mpg123 para continuar.$f"
- exit 1
- }
- #---------------------------------------!
- # Inicio programa
- clear; centro # chama logo do programa
- while (true); do
- read -ep $'\033[34;1m| ♫ | \033[m' param param1
- case $param in
- #----Opções do player
- play|tocar)
- variavel_nula # sem música ?
- espectrum eval $TOCADOR "$param1" 2>&- ;;
- playlist)
- read -ep $'\033[36;40;1mCaminho completo da pasta:\033[m\n' param1
- variavel_nula # sem música ?
- espectrum eval $TOCADOR "$param1"*.mp3 2>&- ;;
- #----Opções navegação
- licença|license) echo -e "$vermelho M4L is licensed under the GNU Lesser/Library General Public License, LGPL, version 2.1
- mpg123 is licensed under the GNU Lesser/Library General Public License, LGPL, version 2.1$f" ;;
- sair|quit) exit 0 ;;
- cd) cd $param1 ;;
- pwd) pwd ;;
- ls|lista) ls --color ;;
- *|ajuda|help)
- echo -e "
- $bold Comandos utilizados em linha:$f
- $vermelho cd$f = Para navegar até uma pasta específica
- $vermelho ls/lista$f = Para listar todos arquivos em uma pasta
- $vermelho pwd$f = Para saber em que diretório está.
- $vermelho play/tocar$f = Toca uma música, desde que esteja na pasta.
- $vermelho playlist$f = Selecione uma pasta com todas as músicas.
- $vermelho sair/quit$f = Para sair do M4L
- $bold Funçoes do M4L:$f
- $vermelho q$f = Para sair da música/playlist.
- $vermelho ESPAÇO$f = Para pausar e voltar a música.
- $vermelho f$f = Próxima música.
- $vermelho d$f = Volta a música anterior.
- $vermelho +$f = Aumenta volume da música.
- $vermelho -$f = Diminui o volume da música.
- $vermelho .$f = Pula de 1 em 1 segundo.
- $vermelho ,$f = Volta musica de 1 em 1 segundo.
- "
- esac
- done # Fecha while principal
|