Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <string.h>
- #include <sys/wait.h>
- #include <sys/ioctl.h>
- #include <fcntl.h>
- #include <limits.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- int main(int argc, char * argv[])
- {
- int fd,r, p, mode, status;
- char x;
- mode = 0;
- char* myFifo = "/tmp/mplayer_sso";
- char pause[] = "pause\n";
- char quit[] = "quit\n";
- char speed1[] = "speed_set 1\n";
- char speed2[] = "speed_set 2\n";
- char seekb[] = "seek -5 0\n";
- char seekf[] = "seek +5 0\n";
- unlink(myFifo);
- r = mkfifo(myFifo, 0666);
- if(r < 0)
- {
- perror("ERROR MKFIFO");
- exit(0);
- }
- switch(p = fork())
- {
- case -1:
- perror("ERROR FORK\n");
- exit(0);
- break;
- case 0:
- perror("SOMETHING GO WRONG\n");
- execl("/usr/bin/mplayer", "mplayer", "-input", "file=/tmp/mplayer_sso", "sample.mp3", NULL);
- exit(0);
- break;
- default:
- fd = open(myFifo, O_WRONLY);
- if(fd < 0)
- {
- perror("ERROR OPEN");
- exit(0);
- }
- while(1)
- {
- printf("MENU:\n");
- printf("p --- PLAY\\PAUSE\n");
- printf("1 --- SPEED 1\n");
- printf("2 --- SPEED 2\n");
- printf("< --- SEEK 5s BACK\n");
- printf("> --- SEEK 5s FORWARD\n\n");
- printf("q --- QUIT\n");
- x = getchar();
- switch(x)
- {
- case 'p':
- if(mode == 0)
- {
- mode = 1;
- }
- else
- {
- mode = 0;
- }
- write(fd, pause, strlen(pause));
- break;
- case 'q':
- write(fd, quit, strlen(quit));
- sleep(2);
- exit(1);
- break;
- case '1':
- write(fd, speed1, strlen(speed1));
- break;
- case '2':
- write(fd, speed2, strlen(speed2));
- break;
- case '<':
- write(fd, seekb, strlen(seekb));
- break;
- case '>':
- write(fd, seekf, strlen(seekf));
- break;
- default:
- printf("WRONG COMMAND, TRY AGAIN\n");
- break;
- }
- }
- close(fd);
- unlink(myFifo);
- break;
- }
- p = wait(&status);
- exit(0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement