#!/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 ~/.bigconvert 2> /dev/null ############## #####Translation ############## export TEXTDOMAINDIR="/usr/share/locale-langpack" export TEXTDOMAIN=bigcontrolcenter ################ #####Confere configuracoes na home do usuario ################ rm -f ~/.bigconvert/primeiro if [ "$(grep "$(cat ~/.bigconvert/prevvideo)" ~/.bigconvert/videos)" = "" ] then rm -f ~/.bigconvert/prevvideo fi if [ "$p_duracao" != "" ] then echo "$p_duracao" > ~/.bigconvert/prevduracao fi if [ "$p_hora" != "" ] then echo "$p_hora" > ~/.bigconvert/prevhora fi if [ "$p_minuto" != "" ] then echo "$p_minuto" > ~/.bigconvert/prevminuto fi if [ "$p_segundo" != "" ] then echo "$p_segundo" > ~/.bigconvert/prevsegundo fi if [ "$p_pvideo" != "" ] then echo "$p_pvideo" > ~/.bigconvert/prevvideo fi if [ ! -e ~/.bigconvert/prevduracao ] then echo "10" > ~/.bigconvert/prevduracao fi if [ ! -e ~/.bigconvert/prevhora ] then echo "00" > ~/.bigconvert/prevhora fi if [ ! -e ~/.bigconvert/prevminuto ] then echo "01" > ~/.bigconvert/prevminuto fi if [ ! -e ~/.bigconvert/prevsegundo ] then echo "00" > ~/.bigconvert/prevsegundo fi if [ "$p_prever" = "yes" ] then /usr/share/bigcontrolcenter/categories/others/bigconvert/mencoder "$(cat ~/.bigconvert/prevvideo)" prever chmod +x ~/.bigconvert/mencoderprev cd ~/.bigconvert ############## ## CONVERTENDO ############## #Inicia o dialogo de progresso dcopRef=$(kdialog --title $"BigMencoder" --progressbar $"Iniciando..." 12) qdbus $dcopRef org.freedesktop.DBus.Properties.Set org.kde.kdialog.ProgressDialog maximum 100 qdbus $dcopRef org.kde.kdialog.ProgressDialog.showCancelButton true #Executa o mencoder ~/.bigconvert/mencoderprev > /tmp/bigmencoder-log$$ 2> /dev/null & #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 mencoder, precisa ser melhorado utilizando pid para nao afetar outra execucao do mencoder killall mencoder cancelado=yes qdbus $dcopRef org.kde.kdialog.ProgressDialog.close kdialog --passivepopup $"Conversao cancelada." --title $"Big Converter" sleep 2 killall mencoder rm -f ~/.bigconvert/videoprevisto.* break fi #Confere se a conversao do arquivo foi concluida, se positivo encerra o loop. if [ "$(sed '$!d' /tmp/bigmencoder-log$$ | grep fps)" != "" ]; then #Adiciona mais dados sobre a barra de progresso qdbus $dcopRef org.kde.kdialog.ProgressDialog.setLabelText " Convertendo, aguarde por favor. $i $(sed '$!d;s/(.*)//;s/A.*//;s/V//' /tmp/bigmencoder-log$$)" #Faz a leitura do Log e atualiza a barra de progresso qdbus $dcopRef org.freedesktop.DBus.Properties.Set org.kde.kdialog.ProgressDialog value $(sed '$!d;s/.*(//; s/%.*//' /tmp/bigmencoder-log$$) else #Confere novamente se a conversao do arquivo foi concluida, se positivo encerra o loop. sleep 3 if [ "$(sed '$!d' /tmp/bigmencoder-log$$ | grep fps)" = "" ]; then qdbus $dcopRef org.kde.kdialog.ProgressDialog.close kdialog --passivepopup $"Conversao de $i concluida." --title $"Big Mencoder" & break fi fi #Aguarda 3 segundos para refazer o loop sleep 3 done #Remove o arquivo de log rm -f /tmp/bigmencoder-log$$ rm -f ~/.bigconvert/videoprevisto.* if [ -e /usr/bin/smplayer ] then nohup smplayer ~/.bigconvert/videoprevisto 2>/dev/null >/dev/null & else nohup mplayer ~/.bigconvert/videoprevisto 2>/dev/null >/dev/null & fi fi echo ' ' ############### #####Variaveis de nomes ############### title=$"Big Converter" apply=$"Visualizar previsao" close=$"Sair" converta=$"Iniciar conversao" ############### #####Titulo ############### echo "$title" ############### #####Carregar o tema ############### echo '' open_header echo "$title" '
' $"Converta videos ou extraia audio." 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. echo '
' echo '

' $"Selecione o arquivo a ser utilizado na previsao" '

' echo '
' echo '
' ORI_IFS=$IFS IFS=$'\n' for i in $(cat ~/.bigconvert/videos); do if [ "$(cat ~/.bigconvert/prevvideo)" = "$i" ] then checked="" primeiro="1" else checked="" fi if [ "$(cat ~/.bigconvert/prevvideo)" = "" ] then if [ ! -e ~/.bigconvert/primeiro ] then checked="" echo "$i" > ~/.bigconvert/prevvideo else checked="" fi fi cat << EOF EOF if [ "$primeiro" = "" ] then echo "1" > ~/.bigconvert/primeiro fi done IFS=$ORI_IFS echo "
$checked $i


" echo "Duracao da previsao em segundos:" echo "" echo "

" echo "Iniciar previsao em:" echo "::" echo $"(hh:mm:ss)" echo "

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