void snd_midi_event_reset_encode(snd_midi_event_t *dev) { unsigned long flags; spin_lock_irqsave(&dev->lock, flags); reset_encode(dev); spin_unlock_irqrestore(&dev->lock, flags); }
/** * \brief Resizes the MIDI message encoding buffer. * \param dev MIDI event parser. * \param bufsize The new buffer size. * \return Zero on success, otherwise a negative error code. * * This function resizes the buffer that is used to hold partially encoded MIDI * messages. * * If there is a partially encoded message in the buffer, it is dropped. * * \par Errors: * <dl> * <dt>-ENOMEM<dd>Out of memory. * * \sa snd_midi_event_encode, snd_midi_event_reset_encode */ int snd_midi_event_resize_buffer(snd_midi_event_t *dev, size_t bufsize) { unsigned char *new_buf, *old_buf; if (bufsize == dev->bufsize) return 0; new_buf = malloc(bufsize); if (new_buf == NULL) return -ENOMEM; old_buf = dev->buf; dev->buf = new_buf; dev->bufsize = bufsize; reset_encode(dev); free(old_buf); return 0; }
/* * resize buffer */ int snd_midi_event_resize_buffer(snd_midi_event_t *dev, int bufsize) { unsigned char *new_buf, *old_buf; unsigned long flags; if (bufsize == dev->bufsize) return 0; new_buf = kmalloc(bufsize, GFP_KERNEL); if (new_buf == NULL) return -ENOMEM; spin_lock_irqsave(&dev->lock, flags); old_buf = dev->buf; dev->buf = new_buf; dev->bufsize = bufsize; reset_encode(dev); spin_unlock_irqrestore(&dev->lock, flags); kfree(old_buf); return 0; }
/** * \brief Reset MIDI encode parser * \param dev MIDI event parser * \return 0 on success otherwise a negative error code * * Resets MIDI encode parser */ void snd_midi_event_reset_encode(snd_midi_event_t *dev) { reset_encode(dev); }