Sound::Sound(int name, const QString& filename, QObject* parent) : QObject(parent), m_id(-1), m_name(name) { if (!f_sdl_loaded) { loadSDL(); } f_total_sounds++; if (f_ids.contains(filename)) { m_id = f_ids.value(filename); } else if (f_sdl_loaded) { MixChunk* chunk = mix_LoadWAV(QFile::encodeName(f_path + "/" + filename).constData()); if (chunk == 0) { qWarning("Unable to load WAV file: %s", mix_GetError()); return; } m_id = f_chunks.count(); f_chunks.append(chunk); f_ids[filename] = m_id; } f_sound_objects[m_name] = this; }
void Sound::play(int name) { if (f_enabled) { Sound* sound = f_sound_objects.value(name); if (sound && sound->isValid() && (mix_PlayChannel(-1, f_chunks.at(sound->m_id), 0) == -1)) { qWarning("Unable to play WAV file: %s", mix_GetError()); } } }
void Sound::play() { if (isValid() && (mix_PlayChannel(-1, f_chunks.at(m_id), 0) == -1)) { qWarning("Unable to play WAV file: %s", mix_GetError()); } }