util/StringUtil: add ToUpperASCII()
Replaces g_ascii_strup() and allows building the Vorbis encoder without GLib.
This commit is contained in:
parent
e69bef3ce3
commit
4e2f4e2091
@ -1145,9 +1145,8 @@ MPD_ENABLE_AUTO_PKG(shine_encoder, SHINE, [shine >= 3.1],
|
|||||||
[shine encoder], [libshine not found])
|
[shine encoder], [libshine not found])
|
||||||
|
|
||||||
dnl ---------------------------- Ogg Vorbis Encoder ---------------------------
|
dnl ---------------------------- Ogg Vorbis Encoder ---------------------------
|
||||||
MPD_ENABLE_AUTO_PKG_DEPENDS(vorbis_encoder, VORBISENC, [vorbisenc vorbis ogg],
|
MPD_ENABLE_AUTO_PKG(vorbis_encoder, VORBISENC, [vorbisenc vorbis ogg],
|
||||||
[Ogg Vorbis encoder], [libvorbisenc not found], [],
|
[Ogg Vorbis encoder], [libvorbisenc not found])
|
||||||
[enable_glib], [Cannot use --enable-vorbis-encoder with --disable-glib])
|
|
||||||
|
|
||||||
dnl ------------------------------- LAME Encoder ------------------------------
|
dnl ------------------------------- LAME Encoder ------------------------------
|
||||||
|
|
||||||
|
@ -25,14 +25,13 @@
|
|||||||
#include "tag/Tag.hxx"
|
#include "tag/Tag.hxx"
|
||||||
#include "AudioFormat.hxx"
|
#include "AudioFormat.hxx"
|
||||||
#include "config/ConfigError.hxx"
|
#include "config/ConfigError.hxx"
|
||||||
|
#include "util/StringUtil.hxx"
|
||||||
#include "util/NumberParser.hxx"
|
#include "util/NumberParser.hxx"
|
||||||
#include "util/Error.hxx"
|
#include "util/Error.hxx"
|
||||||
#include "util/Domain.hxx"
|
#include "util/Domain.hxx"
|
||||||
|
|
||||||
#include <vorbis/vorbisenc.h>
|
#include <vorbis/vorbisenc.h>
|
||||||
|
|
||||||
#include <glib.h>
|
|
||||||
|
|
||||||
struct vorbis_encoder {
|
struct vorbis_encoder {
|
||||||
/** the base class */
|
/** the base class */
|
||||||
Encoder encoder;
|
Encoder encoder;
|
||||||
@ -273,9 +272,9 @@ static void
|
|||||||
copy_tag_to_vorbis_comment(vorbis_comment *vc, const Tag &tag)
|
copy_tag_to_vorbis_comment(vorbis_comment *vc, const Tag &tag)
|
||||||
{
|
{
|
||||||
for (const auto &item : tag) {
|
for (const auto &item : tag) {
|
||||||
char *name = g_ascii_strup(tag_item_names[item.type], -1);
|
char name[64];
|
||||||
|
ToUpperASCII(name, tag_item_names[item.type], sizeof(name));
|
||||||
vorbis_comment_add_tag(vc, name, item.value);
|
vorbis_comment_add_tag(vc, name, item.value);
|
||||||
g_free(name);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,3 +120,23 @@ string_array_contains(const char *const* haystack, const char *needle)
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ToUpperASCII(char *dest, const char *src, size_t size)
|
||||||
|
{
|
||||||
|
assert(dest != nullptr);
|
||||||
|
assert(src != nullptr);
|
||||||
|
assert(size > 1);
|
||||||
|
|
||||||
|
char *const end = dest + size - 1;
|
||||||
|
|
||||||
|
do {
|
||||||
|
char ch = *src++;
|
||||||
|
if (ch == 0)
|
||||||
|
break;
|
||||||
|
|
||||||
|
*dest++ = ToUpperASCII(ch);
|
||||||
|
} while (dest < end);
|
||||||
|
|
||||||
|
*dest = 0;
|
||||||
|
}
|
||||||
|
@ -114,4 +114,12 @@ gcc_pure
|
|||||||
bool
|
bool
|
||||||
string_array_contains(const char *const* haystack, const char *needle);
|
string_array_contains(const char *const* haystack, const char *needle);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert the specified ASCII string (0x00..0x7f) to upper case.
|
||||||
|
*
|
||||||
|
* @param size the destination buffer size
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
ToUpperASCII(char *dest, const char *src, size_t size);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user