- Milyen asztali (teljes vagy fél-) gépet vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Nvidia GPU-k jövője - amit tudni vélünk
- Milyen egeret válasszak?
- Házimozi belépő szinten
- Internet Rádió építése (hardver), és programozása
- Házimozi haladó szinten
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Lopakodva befutott a Radeon RX 9060
- Apple MacBook
Hirdetés
-
PROHARDVER!
Új hozzászólás Aktív témák
-
emitter
őstag
válasz
emitter #1599 üzenetére
van ez a fv:
/* Load a music file */
Mix_Music *myMix_LoadMUS(const char *file)
{
FILE *fp;
char *ext;
Uint8 magic[5], moremagic[9];
Mix_Music *music;
/* Figure out what kind of file this is */
fp = fopen(file, ''rb'');
if ( (fp == NULL) || !fread(magic, 4, 1, fp) ) {
if ( fp != NULL ) {
fclose(fp);
}
Mix_SetError(''Couldn't read from '%s''', file);
return(NULL);
}
if (!fread(moremagic, 8, 1, fp)) {
Mix_SetError(''Couldn't read from '%s''', file);
return(NULL);
}
magic[4] = '\0';
moremagic[8] = '\0';
fclose(fp);
/* Figure out the file extension, so we can determine the type */
ext = strrchr(file, '.');
if ( ext ) ++ext; /* skip the dot in the extension */
/* Allocate memory for the music structure */
music = (Mix_Music *)malloc(sizeof(Mix_Music));
if ( music == NULL ) {
Mix_SetError(''Out of memory'');
return(NULL);
}
music->error = 0;
#ifdef CMD_MUSIC
if ( music_cmd ) {
music->type = MUS_CMD;
music->data.cmd = MusicCMD_LoadSong(music_cmd, file);
if ( music->data.cmd == NULL ) {
music->error = 1;
}
} else
#endif
#ifdef WAV_MUSIC
/* WAVE files have the magic four bytes ''RIFF''
AIFF files have the magic 12 bytes ''FORM'' XXXX ''AIFF''
*/
if ( (ext && MIX_string_equals(ext, ''WAV'')) ||
((strcmp((char *)magic, ''RIFF'') == 0) && (strcmp((char *)(moremagic+4), ''WAVE'') == 0)) ||
(strcmp((char *)magic, ''FORM'') == 0) ) {
music->type = MUS_WAV;
music->data.wave = WAVStream_LoadSong(file, (char *)magic);
if ( music->data.wave == NULL ) {
Mix_SetError(''Unable to load WAV file'');
music->error = 1;
}
} else
#endif
#ifdef MID_MUSIC
/* MIDI files have the magic four bytes ''MThd'' */
if ( (ext && MIX_string_equals(ext, ''MID'')) ||
(ext && MIX_string_equals(ext, ''MIDI'')) ||
strcmp((char *)magic, ''MThd'') == 0 ||
( strcmp((char *)magic, ''RIFF'') == 0 &&
strcmp((char *)(moremagic+4), ''RMID'') == 0 ) ) {
music->type = MUS_MID;
#ifdef USE_NATIVE_MIDI
if ( native_midi_ok ) {
music->data.nativemidi = native_midi_loadsong((char *)file);
if ( music->data.nativemidi == NULL ) {
Mix_SetError(''%s'', native_midi_error());
music->error = 1;
}
} MIDI_ELSE
#endif
#ifdef USE_TIMIDITY_MIDI
if ( timidity_ok ) {
music->data.midi = Timidity_LoadSong((char *)file);
if ( music->data.midi == NULL ) {
Mix_SetError(''%s'', Timidity_Error());
music->error = 1;
}
} else {
Mix_SetError(''%s'', Timidity_Error());
music->error = 1;
}
#endif
} else
#endif
#ifdef OGG_MUSIC
/* Ogg Vorbis files have the magic four bytes ''OggS'' */
if ( (ext && MIX_string_equals(ext, ''OGG'')) ||
strcmp((char *)magic, ''OggS'') == 0 ) {
music->type = MUS_OGG;
music->data.ogg = OGG_new(file);
if ( music->data.ogg == NULL ) {
music->error = 1;
}
} else
#endif
#ifdef MP3_MUSIC
if ( (ext && MIX_string_equals(ext, ''MPG'')) ||
(ext && MIX_string_equals(ext, ''MP3'')) ||
(ext && MIX_string_equals(ext, ''MPEG'')) ||
magic[0]==0xFF && (magic[1]&0xF0)==0xF0) {
SMPEG_Info info;
music->type = MUS_MP3;
music->data.mp3 = SMPEG_new(file, &info, 0);
if(!info.has_audio){
Mix_SetError(''MPEG file does not have any audio stream.'');
music->error = 1;
}else{
SMPEG_actualSpec(music->data.mp3, &used_mixer);
}
} else
#endif
#if defined(MOD_MUSIC) || defined(LIBMIKMOD_MUSIC)
if ( 1 ) {
music->type = MUS_MOD;
music->data.module = MikMod_LoadSong((char *)file, 64);
if ( music->data.module == NULL ) {
Mix_SetError(''%s'', MikMod_strerror(MikMod_errno));
music->error = 1;
} else {
/* Stop implicit looping, fade out and other flags. */
music->data.module->extspd = 1;
music->data.module->panflag = 1;
music->data.module->wrap = 0;
music->data.module->loop = 0;
#if 0 /* Don't set fade out by default - unfortunately there's no real way
to query the status of the song or set trigger actions. Hum. */
music->data.module->fadeout = 1;
#endif
}
} else
#endif
{
Mix_SetError(''Unrecognized music format'');
music->error = 1;
}
if ( music->error ) {
free(music);
music = NULL;
}
return(music);
}
---------------
a végén halálozik el:
...
Mix_SetError(''Unrecognized music format'');
music->error = 1;
}
if ( music->error ) {
free(music);
music = NULL;
}
return(music);
}
szóval errort-t 1-re állítja, és ezért NULL-pointerrel tér vissza.. a kérdésem, hogy az #ifdef és #endif tagok mit csinálnak pontosan, kellenek ezek egyáltalán bele?
vagy van olyan elsőre szemet szúró dolog, ami miatt ez történik?
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Diablo IV
- ASUS routerek
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Nők, nőügyek (18+)
- gban: Ingyen kellene, de tegnapra
- Argos: Adjátok vissza a netet! - szeretnék elaludni!
- BestBuy topik
- PlayStation 5
- Sütés, főzés és konyhai praktikák
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 14400F 32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
- Samsung Galaxy Z Fold 4 256GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Asus B760M i7 12700KF 32GB DDR4 512GB SSD RX 7700XT 12GB Zalman Z1 Plus CM 750W
- Amazfit Active okosóra / Számla / Garancia /
- Telefon felvásárlás!! Xiaomi Redmi Note 13, Xiaomi Redmi Note 13 Pro, Xiaomi Redmi Note 13 Pro+
- Bomba ár! Dell Latitude 5430 - i7-1255U I 16GB I 512SSD I HDMI I 14" FHD I Cam I W11 I NBD Garancia
- Telefon felvásárlás!! Samsung Galaxy Note 10+/Samsung Galaxy Note 20/Samsung Galaxy Note 20 Ultra
Állásajánlatok
Cég: FOTC
Város: Budapest