/*
2017-12-10: Preliminary MOGG Support. As long as the stream is unencrypted, this should be fine.
            This will also work on unconventional 5 channel Vorbis streams but some sound cards might not like it.
            TODO (Eventually): Add decryption for encrypted MOGG types (Rock Band, etc.)

            -bxaimc
*/

#include "meta.h"
#include "../coding/coding.h"

/* MOGG - Harmonix Music Systems (Guitar Hero)[Unencrypted Type] */
VGMSTREAM * init_vgmstream_mogg(STREAMFILE *streamFile) {
#ifdef VGM_USE_VORBIS
    off_t start_offset;

    /* checks */
    if (!check_extensions(streamFile, "mogg"))
        goto fail;

    {
        ogg_vorbis_meta_info_t ovmi = {0};
        VGMSTREAM * result = NULL;

        ovmi.meta_type = meta_MOGG;

        start_offset = read_32bitLE(0x04, streamFile);
        result = init_vgmstream_ogg_vorbis_callbacks(streamFile, NULL, start_offset, &ovmi);

        if (result != NULL) {
            return result;
        }
    }

fail:
    /* clean up anything we may have opened */
#endif
    return NULL;
}
