CD Player 0.1
Publicado por Lord Arthas Menethil 29/08/2006
[ Hits: 5.791 ]
Simples reprodutor de CD feito em C, com NCurses. Ainda tem pouca coisa, só toca o CD, pausa, essas coisas, mas ainda sem controle de volume e tals...
/* Declaração dos includes */ #include <curses.h> #include <err.h> #include <fcntl.h> #include <getopt.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <linux/cdrom.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/ioctl.h> /* Pré-Declaração das funções que serão utilizadas */ void usar(void); void about(void); int opt(int ac, char *av[]); int ligar(void); /* Variáveis Globais */ const char* const sopt = "ha:p"; const struct option lopt[] = { { "help", 0, NULL, 'h' }, { "about", 0, NULL, 'a' }, { "play", 0, NULL, 'p' }, { NULL, 0, NULL, 0 } }; struct cdrom_tochdr header; struct cdrom_ti inicio; int main(int argc, char *argv[]) { opt(argc, argv); return(0); } void usar(void) { fprintf(stderr, "-h or --help = Mostra isso tudo\n"); fprintf(stderr, "-p or --play = Toca o CD\n"); fprintf(stderr, "-a or --about = Mostra o about desse prog\n"); } void about(void) { fprintf(stderr, "DeadlyCorpse CD Player 0.1, by Morte137\n"); fprintf(stderr, "Codado em C com NCurses\n"); fprintf(stderr, "Agradecimentos: os de sempre\n"); fprintf(stderr, "Ajuda grande: Advanced Programming in Linux, GNU LibC Manual\n"); fprintf(stderr, "Inté\n"); } int opt(int ac, char *av[]) { int nopt; bool device; nopt = getopt_long(ac, av, sopt, lopt, NULL); switch(nopt) { case 'h': usar(); break; case 'a': about(); break; case 'p': ligar(); break; case '?': usar(); break; default: usar(); break; } return(0); } int ligar(void) { int cdrom = open("/dev/cdrom", O_RDONLY); initscr(); start_color(); init_pair(1, COLOR_RED, COLOR_BLACK); bkgd(COLOR_PAIR(1)); move(2, 1); printw("DeadlyCorpse CD PLayer 0.1"); move(3, 1); printw("Digite q para sair, p para pausar, r para despausar, s para parar totalmente"); move(5, 1); while(1) { char str[50]; getstr(str); if(strcmp("q", str) == 0) { ioctl(cdrom, CDROMSTOP, 0); close(cdrom); endwin(); exit(0); } if(strcmp("p", str) == 0) { ioctl(cdrom, CDROMPAUSE, 0); } if(strcmp("r", str) == 0) { ioctl(cdrom, CDROMRESUME, 0); } if(strcmp("s", str) == 0) { ioctl(cdrom, CDROMSTOP, 0); } else { ioctl(cdrom, CDROMREADTOCHDR, (void *) &header); inicio.cdti_trk0 = header.cdth_trk0; inicio.cdti_ind0 = 0; inicio.cdti_trk1 = header.cdth_trk1; inicio.cdti_ind1 = 255; ioctl(cdrom, CDROMPLAYTRKIND, (void *) &inicio); } refresh(); } return(0); }
Classe para manipulação e conversão de datas para std::string em C++
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Mensagem quando tento fazer o apt update && apt upgrade no kal... (2)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (0)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta