mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
ump: Add a function to provide the packet word length of a UMP type
Add a helper function to return the number of words of a given UMP packet type. Used for parsing MIDI Clip File stream, for example. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
ade099fab7
commit
568b2ac1db
3 changed files with 19 additions and 0 deletions
|
|
@ -1003,6 +1003,7 @@ static inline uint8_t snd_ump_sysex_msg_length(const uint32_t *ump)
|
||||||
|
|
||||||
int snd_ump_msg_sysex_expand(const uint32_t *ump, uint8_t *buf, size_t maxlen,
|
int snd_ump_msg_sysex_expand(const uint32_t *ump, uint8_t *buf, size_t maxlen,
|
||||||
size_t *filled);
|
size_t *filled);
|
||||||
|
int snd_ump_packet_length(unsigned int type);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -212,5 +212,6 @@ ALSA_1.2.13 {
|
||||||
@SYMBOL_PREFIX@snd_ump_endpoint_info_set_*;
|
@SYMBOL_PREFIX@snd_ump_endpoint_info_set_*;
|
||||||
@SYMBOL_PREFIX@snd_ump_block_info_clear;
|
@SYMBOL_PREFIX@snd_ump_block_info_clear;
|
||||||
@SYMBOL_PREFIX@snd_ump_block_info_set_*;
|
@SYMBOL_PREFIX@snd_ump_block_info_set_*;
|
||||||
|
@SYMBOL_PREFIX@snd_ump_packet_length;
|
||||||
#endif
|
#endif
|
||||||
} ALSA_1.2.10;
|
} ALSA_1.2.10;
|
||||||
|
|
|
||||||
|
|
@ -1072,3 +1072,20 @@ int snd_ump_msg_sysex_expand(const uint32_t *ump, uint8_t *buf, size_t maxlen,
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief return the length of a UMP packet type
|
||||||
|
* \param type UMP packet type
|
||||||
|
* \return the length of the given UMP packet type in 32bit words (from 1 to 4),
|
||||||
|
* or 0 for negative inputs.
|
||||||
|
*/
|
||||||
|
int snd_ump_packet_length(unsigned int type)
|
||||||
|
{
|
||||||
|
static int packet_length[16] = {
|
||||||
|
1, 1, 1, 2, 2, 4, 1, 1, 2, 2, 2, 3, 3, 4, 4, 4
|
||||||
|
};
|
||||||
|
|
||||||
|
if (type > 16)
|
||||||
|
return 0;
|
||||||
|
return packet_length[type];
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue