sync with dos pc changes
[dos_auplay] / src / main.c
index f62fdac..8fa1126 100644 (file)
@@ -17,16 +17,24 @@ static int quit;
 \r
 int main(int argc, char **argv)\r
 {\r
-       int i;\r
+       int i, vol;\r
 \r
        if(audio_init() == -1) {\r
                return 1;\r
        }\r
-       audio_volume(vol);\r
+       audio_setvolume(AUDIO_MASTER, vol);\r
+       audio_setvolume(AUDIO_PCM, 255);\r
 \r
        for(i=1; i<argc; i++) {\r
                if(argv[i][0] == '-') {\r
-                       if(strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "-help") == 0) {\r
+                       if(strcmp(argv[i], "-v") == 0 || strcmp(argv[i], "-volume") == 0) {\r
+                               if(!argv[++i] || (vol = atoi(argv[i])) <= 0 || vol > 100) {\r
+                                       fprintf(stderr, "%s must be followed by a number 1-100\n", argv[-1]);\r
+                                       return 1;\r
+                               }\r
+                               audio_setvolume(AUDIO_DEFAULT, vol * 255 / 100);\r
+\r
+                       } else if(strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "-help") == 0) {\r
                                print_usage(argv[0]);\r
                                return 0;\r
                        } else {\r
@@ -47,7 +55,7 @@ static int dbg_cur_offs;
 static int play_file(const char *fname)\r
 {\r
        struct au_file *au;\r
-       int paused = 0;\r
+       int paused = 0, muted = 0;\r
        unsigned long prev;\r
 \r
        if(!(au = au_open(fname))) {\r
@@ -92,17 +100,26 @@ static int play_file(const char *fname)
                        case '=':\r
                                vol += 32;\r
                                if(vol > 255) vol = 255;\r
-                               audio_volume(vol);\r
+                               audio_setvolume(AUDIO_DEFAULT, vol);\r
                                printf("volume: %d%%\n", 101 * vol / 256);\r
                                break;\r
 \r
                        case '-':\r
                                vol -= 32;\r
                                if(vol < 0) vol = 0;\r
-                               audio_volume(vol);\r
+                               audio_setvolume(AUDIO_DEFAULT, vol);\r
                                printf("volume: %d%%\n", 101 * vol / 256);\r
                                break;\r
 \r
+                       case 'm':\r
+                               muted = !muted;\r
+                               if(muted) {\r
+                                       audio_setvolume(AUDIO_DEFAULT, 0);\r
+                               } else {\r
+                                       audio_setvolume(AUDIO_DEFAULT, vol);\r
+                               }\r
+                               break;\r
+\r
                        default:\r
                                break;\r
                        }\r
@@ -158,5 +175,6 @@ static void print_usage(const char *argv0)
 {\r
        printf("Usage: %s [options] <file1> <file2> ... <filen>\n", argv0);\r
        printf("options:\n");\r
+       printf(" -v,-volume <percent>: set audio volume (1-100)\n");\r
        printf(" -h,-help: print usage and exit\n");\r
 }\r