Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/stat.h>
- #include <sys/types.h>
- #include <unistd.h>
- #include <string.h>
- #include <errno.h>
- #include <stdint.h>
- int main(int argc, char* argv[])
- {
- unsigned char buffer[1024];
- unsigned char header[1024];
- uint32_t headerlength;
- uint32_t songlength;
- uint32_t restart;
- uint32_t channels;
- uint32_t patterns;
- uint32_t freqtable;
- uint32_t tempo;
- uint32_t bpm;
- unsigned char temp[2];
- struct patterndata {
- unsigned char note;
- unsigned char inst;
- unsigned char vc;
- unsigned char et;
- unsigned char ep;
- };
- printf("loadxm/c by oerg866\n");
- printf("v0.01\n\n");
- mkdir("temp");
- unlink("temp\\*.tmp");
- //printf(argv[0]);
- FILE *xm = fopen(argv[1], "rb");
- FILE *inf = fopen("temp\file.inf", "w");
- if (!xm) {
- printf("Error opening the file: %s\n", strerror(errno));
- return 1;
- }
- fread(buffer, 1, 17, xm);
- if (strcmp(buffer, "Extended Module: ") != 0) {
- printf("File not an XM.\n");
- }
- fread(buffer, 1, 20, xm);
- printf("Song name: %s",buffer);
- fread(buffer, 1, 1, xm);
- fread(buffer, 1, 20, xm);
- printf("Tracker name: %s",buffer);
- fread(buffer, 1, 2, xm);
- fread(buffer, 1, 4, xm);
- headerlength = ldword(buffer);
- fread(header, 1, headerlength - 4, xm);
- songlength = rword(&header[0]);
- restart = rword(&header[2]);
- channels = rword(&header[4]);
- fprintf(inf, "%d\n", channels);
- return 0;
- }
- uint32_t ldword(unsigned char bytes[])
- {
- return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];
- }
- uint16_t rword(unsigned char bytes[])
- {
- return bytes[1] << 8 | bytes[0];
- }
Add Comment
Please, Sign In to add comment