#!/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-others-bigconvert echo ' ' ############### #####Variaveis de nomes ############### title=$"Big Converter Video" apply=$"Iniciar conversao" back=$"Voltar" close="Sair" ############## ## CONVERTENDO ############## ORI_IFS=$IFS IFS=$'\n' for i in $(cat ~/.bigconvert/videos); do IFS=$ORI_IFS if [ "$cancelado" != "yes" ]; then #Inicia o dialogo de progresso dcopRef=$(kdialog --title $"BigMencoder" --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 #Executa o mencoder IFS=$'\n' /usr/share/bigcontrolcenter/categories/others/bigconvert/mencoder "$i" 2> /dev/null chmod +x ~/.bigconvert/mencoder ~/.bigconvert/mencoder > /tmp/bigmencoder-log$$ 2> /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 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 Video" 2> /dev/null sleep 2 killall mencoder grep "^rm " ~/.bigconvert/mencoder | /bin/bash 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 2> /dev/null 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$$ IFS=$'\n' fi done IFS=$ORI_IFS ############### #####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. ############## ####Converter para ############## echo '
' . /usr/share/bigcontrolcenter/categories/others/bigconvert/simples/$(cat ~/.bigconvert/formatsimples) ############### #####LEGENDA ############### echo '
' echo '

' $"Conversao concluida." '

' echo "







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