winamp/Src/Wasabi/bfc/string/playstring.cpp

58 lines
1.0 KiB
C++
Raw Normal View History

2024-09-24 14:54:57 +02:00
#include "precomp_wasabi_bfc.h"
#include "playstring.h"
#define USE_TABLE
Playstring::Playstring(const wchar_t *_val) {
val = NULL;
setValue(_val);
}
Playstring::Playstring(const Playstring &ps) {
val = NULL;
setValue(ps.getValue());
}
Playstring::~Playstring() {
setValue(NULL);
}
void Playstring::setValue(const wchar_t *newval) {
_setValue(newval, 0);
}
void Playstring::_setValue(const wchar_t *newval, int tablenum)
{
#ifdef USE_TABLE
#ifdef WASABI_COMPILE_METADB
if (val != NULL) WASABI_API_METADB->metadb_releasePlaystring(val, tablenum);
#else
FREE((void*)val);
#endif
#else
FREE((void*)val);
#endif
val = NULL;
if (newval != NULL /*&& *newval != 0*/) {
#ifdef USE_TABLE
#ifdef WASABI_COMPILE_METADB
val = WASABI_API_METADB->metadb_dupPlaystring(newval, tablenum);
#else
val = WCSDUP(newval);
#endif
#else
val = STRDUP(newval);
#endif
}
}
Playstring& Playstring::operator =(const Playstring &ps) {
if (this != &ps) {
setValue(ps.getValue());
}
return *this;
}