#!/bin/bash #Authors: # Bruno Goncalves Araujo # #License: GPLv2 or later ################################################# ############### #####Importa o tema ############### . /usr/share/bigcontrolcenter/default/theme-categories.sh.htm ############### #####Criar diretorio para configuracoes ############### mkdir ~/.bigconvertaudio 2> /dev/null ############## #####Translation ############## export TEXTDOMAINDIR="/usr/share/locale-langpack" export TEXTDOMAIN=bigcontrolcenter-others-bigconvertaudio echo ' ' ############### #####Variaveis de nomes ############### title=$"Big Converter Audio" apply=$"Iniciar conversao" back=$"Voltar" close="Sair" ############## ## CONVERTENDO ############## ORI_IFS=$IFS IFS=$'\n' for i in $(cat ~/.bigconvertaudio/videos); do IFS=$ORI_IFS if [ "$cancelado" != "yes" ]; then #Inicia o dialogo de progresso dcopRef=$(kdialog --title $"BigFFmpeg" --progressbar $"Iniciando..." 12 2> /dev/null) qdbus $dcopRef org.freedesktop.DBus.Properties.Set org.kde.kdialog.ProgressDialog maximum 100 2> /dev/null qdbus $dcopRef org.kde.kdialog.ProgressDialog.showCancelButton true 2> /dev/null IFS=$'\n' #Detecta quantos segundos possui no total mplayer -identify -frames 0 -vc null -vo null -ao null "$i" | grep ^ID_LENGTH | sed -e 's/^.*=//' -e 's/[.].*//' > /tmp/bigffmpeg-audiotempo$$ 2> /dev/null #Executa o ffmpeg /usr/share/bigcontrolcenter/categories/others/bigconvertaudio/ffmpeg "$i" 2> /dev/null #Apaga arquivo convertido se ja existir rm -f "$(~/.bigconvertaudio/bigdestino | sed "s|.*/|$(cat ~/.bigconvertaudio/save)/|g")" chmod +x ~/.bigconvertaudio/ffmpeg ~/.bigconvertaudio/ffmpeg 2> /tmp/bigffmpeg-log$$ > /dev/null & IFS=$ORI_IFS #Aguarda 5 segundos para assegurar que o log ja foi criado sleep 5 #Loop para manter a checagem da barra de progresso while true do #Confere se o botao cancelar foi clicado ou a janela de progresso foi fechada, se positivo encerra o loop if [ "$(qdbus $dcopRef org.kde.kdialog.ProgressDialog.wasCancelled)" != "false" ]; then #Mata o ffmpeg, precisa ser melhorado utilizando pid para nao afetar outra execucao do ffmpeg killall ffmpeg cancelado=yes qdbus $dcopRef org.kde.kdialog.ProgressDialog.close kdialog --passivepopup $"Conversao cancelada." --title $"Big Converter" 2> /dev/null sleep 2 killall ffmpeg grep "^rm " ~/.bigconvertaudio/ffmpeg | /bin/bash break fi #Confere se a conversao do arquivo foi concluida, se positivo encerra o loop. if [ "$(echo "$(date +%H%M%S)-$(date -r "/tmp/bigffmpeg-log$$" +%H%M%S)"| bc)" -le "2" ]; then #Adiciona mais dados sobre a barra de progresso qdbus $dcopRef org.kde.kdialog.ProgressDialog.setLabelText " Convertendo, aguarde por favor. $i" #Faz a leitura do Log e atualiza a barra de progresso qdbus $dcopRef org.freedesktop.DBus.Properties.Set org.kde.kdialog.ProgressDialog value $((100*$[$(tail -c 90 "/tmp/bigffmpeg-log$$" | awk -F "time=" {'print $2'} | cut -d"." -f 1)+ 0]/$(cat /tmp/bigffmpeg-audiotempo$$))) else #Confere novamente se a conversao do arquivo foi concluida, se positivo encerra o loop. qdbus $dcopRef org.kde.kdialog.ProgressDialog.close kdialog --passivepopup $"Conversao de $i concluida." --title $"Big Mencoder" & break fi #Aguarda 3 segundos para refazer o loop sleep 3 done #Remove o arquivo de log rm -f /tmp/bigffmpeg-log$$ IFS=$'\n' fi done IFS=$ORI_IFS ############### #####Titulo ############### echo "$title" ############### #####Carregar o tema ############### echo '' open_header echo "$title" '
' $"Converta ou extraia audios." close_header ############### #####Inicio da exibicao da GUI ############### #O uso do echo pode ser separado em diversos pedacoes dentro do mesmo comando #O uso de aspas simples faz o sistema exibir exatamente o que esta escrito #Quando se utiliza aspas duplas o sistema executa algumas partes do codigo antes de passar a resposta, entre essas execucoes inclui a interpretacao de variaveis #Para incluir textos a serem exibidos ao usuario utilize aspas duplas com $ antes, para que funcione o sistema de tradução, exemplo: $"texto" #No exemplo abaixo o memso comando echo foi aberto e fechado diversas vezes de acordo com a necessidade, aspas simples, duplas e duplas com traducao. ############## ####Converter para ############## echo '
' . /usr/share/bigcontrolcenter/categories/others/bigconvertaudio/simples/$(cat ~/.bigconvertaudio/formatsimples) ############### #####LEGENDA ############### echo '
' echo '

' $"Conversao concluida." '

' echo "







" echo "
" echo '
' ############### #####RODAPE ############### echo "
"