13 extern int g_spdFactorNum;
14 extern int g_sdlVidFlags;
17 void initializeMovie(MVESTREAM *mve);
18 void playMovie(MVESTREAM *mve);
19 void shutdownMovie(MVESTREAM *mve);
21 static void usage(void)
23 fprintf(stderr, "usage: mveplay [-f] [-l] [-s <n>] [<mvlfile>] <filename>\n"
24 "-f\tFullscreen mode\n"
25 "-s\tSpeed Factor <n>\n"
30 static int doPlay(int filehandle)
32 MVESTREAM *mve = mve_open_filehandle(filehandle);
34 fprintf(stderr, "can't open MVE file\n");
42 mve_close_filehandle(mve);
47 int main(int argc, char *argv[])
50 char *mvlfile = NULL, *mvefile = NULL;
52 for (i = 1; i < argc; i++) {
53 if (!strcmp(argv[i], "-h"))
56 if (!strcmp(argv[i], "-f"))
57 g_sdlVidFlags |= SDL_FULLSCREEN;
59 if (!strcmp(argv[i], "-l"))
62 if (!strcmp(argv[i], "-s")) {
65 g_spdFactorNum = atoi(argv[i + 1]);
69 if (strchr(argv[i], '.') && !strcasecmp(strchr(argv[i], '.'), ".mvl"))
72 if (strchr(argv[i], '.') && !strcasecmp(strchr(argv[i], '.'), ".mve"))
78 char filename[MAX_FILES][13];
79 int filesize[MAX_FILES];
83 filehandle = open(mvlfile, O_RDONLY | O_BINARY);
85 filehandle = open(mvlfile, O_RDONLY);
87 if (filehandle == -1) {
88 fprintf(stderr, "Error opening %s\n", mvlfile);
91 if ((read(filehandle, sig, 4) < 4) ||
92 (strncmp(sig, "DMVL", 4)) ||
93 (read(filehandle, &nfiles, 4) < 4)) {
94 fprintf(stderr, "Error reading %s\n", mvlfile);
97 for (i = 0; i < nfiles; i++) {
98 if ((read(filehandle, filename[i], 13) < 13) ||
99 (read(filehandle, &filesize[i], 4) < 4) ||
100 (strlen(filename[i]) > 12)) {
101 fprintf(stderr, "Error reading %s\n", mvlfile);
106 for (i = 0; i < nfiles; i++) {
108 if (!strcasecmp(filename[i], mvefile))
111 lseek(filehandle, filesize[i], SEEK_CUR);
113 printf("%13s\t%d\n", filename[i], filesize[i]);
118 } else if (mvefile) {
120 filehandle = open(mvefile, O_RDONLY | O_BINARY);
122 filehandle = open(mvefile, O_RDONLY);
127 if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0)
129 fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError());