]> git.alsa-project.org Git - alsa-lib.git/commitdiff
rawmidi: return ENOTSUP when timestamp reads are not supported by plugins
authorJaroslav Kysela <perex@perex.cz>
Wed, 22 Sep 2021 18:18:57 +0000 (20:18 +0200)
committerJaroslav Kysela <perex@perex.cz>
Thu, 28 Oct 2021 06:40:20 +0000 (08:40 +0200)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/rawmidi/rawmidi.c

index 58557e577edab4877cff534c884eeb9788fefdc7..2ff3f6cfbdbe3e920b68a81f2839edccb1658d31 100644 (file)
@@ -844,6 +844,8 @@ int snd_rawmidi_params_set_read_mode(const snd_rawmidi_t *rawmidi, snd_rawmidi_p
                framing = SNDRV_RAWMIDI_MODE_FRAMING_NONE;
                break;
        case SND_RAWMIDI_READ_TSTAMP:
+               if (rawmidi->ops->tread == NULL)
+                       return -ENOTSUP;
                framing = SNDRV_RAWMIDI_MODE_FRAMING_TSTAMP;
                break;
        default:
@@ -1114,5 +1116,7 @@ ssize_t snd_rawmidi_tread(snd_rawmidi_t *rawmidi, struct timespec *tstamp, void
        assert(buffer || size == 0);
        if ((rawmidi->params_mode & SNDRV_RAWMIDI_MODE_FRAMING_MASK) == SNDRV_RAWMIDI_MODE_FRAMING_TSTAMP)
                return -EINVAL;
+       if (rawmidi->ops->tread == NULL)
+               return -ENOTSUP;
        return (rawmidi->ops->tread)(rawmidi, tstamp, buffer, size);
 }