Пример #1
0
int main(int argc, char** argv) {
    char *arquivo, *aplicativo = NULL;
    mp3_ID3v1 id;

    /* Validação da entrada. */
    if(argc < 2) {
        printf("É preciso passar pelo menos um arquivo MP3 como argumento.\n");
        return EXIT_FAILURE;
    } else if(argc > 2)
        aplicativo = argv[2];

    /* Verificação da entrada. */
    arquivo = argv[1];
    if(!existe_e_pode_abrir(arquivo)) {
        printf("Arquivo \"%s\" não encontrado ou não pode ser lido.\n", arquivo);
        return EXIT_FAILURE;
    }

    /* Leitura do cabeçalho. */
    id = le_ID3v1(arquivo);
    if(!valido(id)) {
        printf("Não foi possível ler cabeçalho arquivo \"%s\".\n", arquivo);
        return EXIT_FAILURE;
    }

    mostra_ID3v1(id);

    /* "Bônus" */
    if(aplicativo && quer_abrir_com(aplicativo)) {
        if(abre(arquivo, aplicativo)) {
            printf("Erro ao tentar abrir o arquivo \"%s\" com o aplicativo \"%s\".\n", arquivo, argv[2]);
            return EXIT_FAILURE;
        }
    }

    return EXIT_SUCCESS;
}
Пример #2
0
void PortaSerial::buscaDispositivo(const char *comando, char respEsperada, bool loop)
{
  	char msg[255];
	char resp[255];
  	bool conexao = false;
	char porta[100];
	int ret;
	int pos = 0;
	
	string dir = string("/dev");
	vector<string> files = vector<string>();
	while(!conexao)
	{
		files.clear();
		if(conectado)
		fecha();
		while(files.size() <= 0)
		{
			gettty(dir,files);
		}
		if(pos == files.size())
		{
			pos = 0;
		}
		sprintf(porta, "/dev/%s", files[pos++].c_str());
		setPort(porta);
		abre(baud, canonical, databits, parity, startbit, stopbit);
		sprintf(msg, "%s\0", comando);
		ret = envia(msg, resp);
		if(resp[0] == respEsperada || !loop)
			conexao = true;
	}
	if(resp[0] != respEsperada)
	{
		conectado = false;
	}
}