Реализация класса звукового фрагмента
Класс звукового фрагмента является очень простым и содержит только конструктор и деструктор. Вот как выглядит реализация данного класса:
// Конструктор GameSound::GameSound() { m_pSound = NULL; m_pPerformance = NULL; } // Деструктор GameSound::~GameSound() { if(m_pSound) { if(m_pPerformance) m_pSound->Unload(m_pPerformance); } SAFE_RELEASE(m_pSound); }
Конструктор присваивает внутренним указателям значение NULL, чтобы последующие проверки могли сообщить инициализированы эти указатели или нет. Деструктор освобожает выделенные ресурсы, проверяя требуется ли выгрузка звуковых данных во время работы деструктора.
Взгляните на рис.7.10, чтобы увидеть схему описанного к данному моменту кода.
Рис. 7.10. Взаимодействие объектов классов звуковой системы и звукового фрагмента
На рис. 7.10 показано взаимодействие объектов и взаимоотношения между классом звуковой системы и классом звукового фрагмента. В верхней части рисунка показано как интерфейсы зхагрузчика и исполнителя используются в функции инициализации. В центре рисунка видно как интерфейс загрузчика применяется в функции загрузки звука. В функцию загрузки передается объект звукового фрагмента и там вызывается его метод загрузки данных. В нижней части рисунка показано как объект звукового фрагмента передается в функцию возпроизведения, чтобы началось воспроизведение звука. Чтобы воспроизвести реальный звук объект исполнителя из класса звуковой системы использует данные сегмента из объекта звукового фрагмента. У-ух. Понятно?