Exemplo n.º 1
0
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;
}
Exemplo n.º 3
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;
}
Exemplo n.º 4
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);
}