Пример #1
0
 public void setEventGroup(FMOD.EventGroup eventGroup)
 {
     if (!isInit())
     {
         m_runtimeEventGroup = eventGroup;
     }
 }
Пример #2
0
    public List <FmodEvent> loadEventsFromFile(string assetPath, string assetName, FmodEventAsset asset)
    {
        FMOD.EventGroup       eventgroup  = null;
        FMOD.RESULT           result      = FMOD.RESULT.OK;
        List <FmodEvent>      events      = new List <FmodEvent>();
        List <FmodEventGroup> eventGroups = new List <FmodEventGroup>();
        int            numGroups          = 0;
        FmodEventGroup toAdd = null;

        FMOD.EVENT_LOADINFO loadInfo = new FMOD.EVENT_LOADINFO();
        FMOD.EventProject   project  = null;

        _loadFile(assetPath, assetName, ref loadInfo, ref project);
        _getSoundBankNames(asset);

        FMOD.EVENT_PROJECTINFO projectInfo = new FMOD.EVENT_PROJECTINFO();
        project.getInfo(ref projectInfo);
        asset.setProjectName(new string(projectInfo.name));

        result = project.getNumGroups(ref numGroups);
        ERRCHECK(result);
        for (int i = 0; i < numGroups; i++)
        {
            result = project.getGroupByIndex(i, false, ref eventgroup);
            ERRCHECK(result);
            toAdd = FmodEventGroup.CreateInstance("FmodEventGroup") as FmodEventGroup;
            toAdd.Initialize(eventgroup, null, asset);
            eventGroups.Add(toAdd);
            events.AddRange(toAdd.getAllEvents());
        }
        asset.setEventGroups(eventGroups);
        loadReverbsFromFile(asset);
        return(events);
    }
Пример #3
0
    protected void          _getName(FMOD.EventGroup eventgroup)
    {
        FMOD.RESULT result = FMOD.RESULT.OK;
        int         index  = 0;
        IntPtr      tmp    = new IntPtr(0);

        result = eventgroup.getInfo(ref index, ref tmp);
        ERRCHECK(result);
        m_name = Marshal.PtrToStringAnsi(tmp);
    }
Пример #4
0
    public void Initialize(FMOD.EventGroup eventgroup, FmodEventGroup parentGroup, FmodEventAsset asset)
    {
        FMOD.EventGroup childEventgroup   = null;
        FMOD.RESULT     result            = FMOD.RESULT.OK;
        FmodEventGroup  child             = null;
        int             numChildrenGroups = 0;
        int             numEvents         = 0;

        FMOD.Event e     = null;
        FmodEvent  toAdd = null;

        hideFlags     = HideFlags.HideInHierarchy;
        m_projectName = asset.getProjectName();
        m_parent      = parentGroup;
        _getName(eventgroup);
        result = eventgroup.loadEventData();
        ERRCHECK(result);
        result = eventgroup.getNumEvents(ref numEvents);
        ERRCHECK(result);
        for (int j = 0; j < numEvents; j++)
        {
            e      = null;
            result = eventgroup.getEventByIndex(j, FMOD.EVENT_MODE.DEFAULT | FMOD.EVENT_MODE.ERROR_ON_DISKACCESS, ref e);
            ERRCHECK(result);
            if (result != FMOD.RESULT.OK)
            {
                result = FMOD.RESULT.OK;
            }
            toAdd = FmodEvent.CreateInstance("FmodEvent") as FmodEvent;
            if (e != null)
            {
                toAdd.Initialize(e, this, j, asset);
                e.release();
            }
            else
            {
                toAdd.Initialize(this, j, asset);
            }
            m_events.Add(toAdd);
        }
        result = eventgroup.freeEventData(false);
        ERRCHECK(result);
        result = eventgroup.getNumGroups(ref numChildrenGroups);
        for (int k = 0; k < numChildrenGroups; k++)
        {
            result = eventgroup.getGroupByIndex(k, false, ref childEventgroup);
            ERRCHECK(result);
            child = FmodEventGroup.CreateInstance("FmodEventGroup") as FmodEventGroup;
            child.Initialize(childEventgroup, this, asset);
            m_children.Add(child);
        }
        name = getFullName();
    }
Пример #5
0
 public void freeWholeGroup()
 {
     if (m_runtimeEventGroup != null)
     {
         ERRCHECK(m_runtimeEventGroup.freeEventData(false));
         using (FmodEventSystemHandle handle = new FmodEventSystemHandle()) {
             if (handle.getEventSystem() != null && handle.getEventSystem().wasCleaned() == false)
             {
                 handle.getEventSystem().releaseAllEventsFromGroup(this);
             }
         }
         m_runtimeEventGroup = null;
     }
 }
Пример #6
0
    public void _loadEventGroup(FmodEvent evt)
    {
        if (evt.getEventGroup() == null || evt.getEventGroup().isInit())
        {
            return;
        }
        FMOD.RESULT     result     = FMOD.RESULT.OK;
        FMOD.EventGroup eventGroup = null;
        string          groupName  = evt.getEventGroup().getFullName();

        result = getEventSystem().getGroup(groupName, true, ref eventGroup);
        ERRCHECK(result);
        if (eventGroup != null)
        {
            result = eventGroup.loadEventData();
            ERRCHECK(result);
            if (result == FMOD.RESULT.OK)
            {
                evt.getEventGroup().setEventGroup(eventGroup);
            }
        }
    }