Sverker Wiberg <sverkerw@swipnet.se>

Opening the patch ROM on GusPnP always fails:

* iwffff_get_rom_header() gets the card directory wrong when opening
  the ROM file.

* iwffff_get_rom_header() forgets that the ROM header is padded to 512
  bytes length.

I also fixed some small stuff:

* Tried to improve snd_instr_iwffff_open_rom()'s doxygen comment. The
  commingling of file-system files (denoted by names) and ROM-embedded
  files (numbers) is somewhat confusing --- I'm still looking for the
  right words to explain it.

* Oh, and snd_instr_iwffff_open_rom() returns -EPERM for invalid
  bank/file values --- it means the wrong thing: ENOENT would be
  better.
This commit is contained in:
Jaroslav Kysela 2002-11-14 08:48:29 +00:00
parent 6ebde1c926
commit 3c55dcabbf

View file

@ -39,8 +39,8 @@
#ifndef DOC_HIDDEN
#define IW_RAM_FILE "/proc/asound/%i/gus-ram-%i"
#define IW_ROM_FILE "/proc/asound/%i/gus-rom-%i"
#define IW_RAM_FILE "/proc/asound/card%i/gus-ram-%i"
#define IW_ROM_FILE "/proc/asound/card%i/gus-rom-%i"
#undef IW_ROM_DEBUG
@ -208,6 +208,10 @@ static int iwffff_get_rom_header(int card, int bank, iwffff_rom_header_t *header
close(fd);
return -EIO;
}
if (lseek(fd, IWFFFF_ROM_HDR_SIZE, SEEK_SET) < 0) {
close(fd);
return -errno;
}
return fd;
}
@ -276,7 +280,10 @@ int snd_instr_iwffff_open(snd_iwffff_handle_t **handle, const char *name_fff, co
* \param card card number
* \param bank ROM bank number (0-3)
* \param file ROM file number
* \return 0 on success otherwise a negative error code
* \return 0 on success otherwise a negative \c errno code
*
* Opens \a file in \a bank in the ROM image of card \a card, and
* writes a handle pointer into \a *handle.
*/
int snd_instr_iwffff_open_rom(snd_iwffff_handle_t **handle, int card, int bank, int file)
{
@ -291,7 +298,7 @@ int snd_instr_iwffff_open_rom(snd_iwffff_handle_t **handle, int card, int bank,
*handle = NULL;
idx = 0;
if (bank > 3 || file > 255)
return -1;
return -ENOENT;
fd = iwffff_get_rom_header(card, bank, &header);
if (fd < 0)
return fd;