Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <sys/wait.h>
  6. #include <sys/ioctl.h>
  7. #include <fcntl.h>
  8. #include <limits.h>
  9. #include <sys/types.h>
  10. #include <sys/stat.h>
  11.  
  12. int main(int argc, char * argv[])
  13. {
  14. int fd,r, p, mode, status;
  15. char x;
  16. mode = 0;
  17. char* myFifo = "/tmp/mplayer_sso";
  18.  
  19. char pause[] = "pause\n";
  20. char quit[] = "quit\n";
  21. char speed1[] = "speed_set 1\n";
  22. char speed2[] = "speed_set 2\n";
  23. char seekb[] = "seek -5 0\n";
  24. char seekf[] = "seek +5 0\n";
  25.  
  26. unlink(myFifo);
  27. r = mkfifo(myFifo, 0666);
  28.  
  29. if(r < 0)
  30. {
  31. perror("ERROR MKFIFO");
  32. exit(0);
  33. }
  34.  
  35. switch(p = fork())
  36. {
  37. case -1:
  38. perror("ERROR FORK\n");
  39. exit(0);
  40. break;
  41.  
  42. case 0:
  43. perror("SOMETHING GO WRONG\n");
  44. execl("/usr/bin/mplayer", "mplayer", "-input", "file=/tmp/mplayer_sso", "sample.mp3", NULL);
  45. exit(0);
  46. break;
  47.  
  48. default:
  49.  
  50. fd = open(myFifo, O_WRONLY);
  51. if(fd < 0)
  52. {
  53. perror("ERROR OPEN");
  54. exit(0);
  55. }
  56.  
  57. while(1)
  58. {
  59. printf("MENU:\n");
  60. printf("p --- PLAY\\PAUSE\n");
  61. printf("1 --- SPEED 1\n");
  62. printf("2 --- SPEED 2\n");
  63. printf("< --- SEEK 5s BACK\n");
  64. printf("> --- SEEK 5s FORWARD\n\n");
  65. printf("q --- QUIT\n");
  66. x = getchar();
  67. switch(x)
  68. {
  69. case 'p':
  70. if(mode == 0)
  71. {
  72. mode = 1;
  73. }
  74. else
  75. {
  76. mode = 0;
  77. }
  78. write(fd, pause, strlen(pause));
  79. break;
  80. case 'q':
  81. write(fd, quit, strlen(quit));
  82. sleep(2);
  83. exit(1);
  84. break;
  85. case '1':
  86. write(fd, speed1, strlen(speed1));
  87. break;
  88. case '2':
  89. write(fd, speed2, strlen(speed2));
  90. break;
  91. case '<':
  92. write(fd, seekb, strlen(seekb));
  93. break;
  94. case '>':
  95. write(fd, seekf, strlen(seekf));
  96. break;
  97. default:
  98. printf("WRONG COMMAND, TRY AGAIN\n");
  99. break;
  100. }
  101. }
  102. close(fd);
  103. unlink(myFifo);
  104. break;
  105. }
  106. p = wait(&status);
  107. exit(0);
  108. return 0;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement