// Path: core/src/com/gdx/musicevents/effects/StartEffect.java
// public interface StartEffect extends Effect {
//     public void initialize(MusicState nextState, MusicState previousState);
//     public void beginStart();
//     public void endStart();
// }
// 
// Path: core/src/com/gdx/musicevents/effects/StopEffect.java
// public interface StopEffect extends Effect {
// 
//     public void initialize(MusicState nextState, MusicState previousState);
//     public void beginStop();
// 
//     public void endStop();
// }


import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.Json;
import com.badlogic.gdx.utils.JsonWriter;
import com.badlogic.gdx.utils.ObjectMap;
import com.gdx.musicevents.effects.StartEffect;
import com.gdx.musicevents.effects.StopEffect;
            endTransitions.removeIndex(0);
        }
        
        
        if (currentState != null) {
            currentState.update(dt);
        }
    }

    /**
     * Add a state.
     * 
     * @param state
     *            The state object.
     */
    public void add(MusicState state) {
        state.init(container.basePath);
        this.states.put(state.getName(), state);
        for (int i = 0; i < listeners.size; i++) {
            final MusicEventListener observer = listeners.get(i);
            observer.stateAdded(state);
        }
    }

    /**
     * Remove an event.
     * 
     * @param state
     *            The state object.
     */
// Path: core/src/com/gdx/musicevents/effects/StartEffect.java
// public interface StartEffect extends Effect {
//     public void initialize(MusicState nextState, MusicState previousState);
//     public void beginStart();
//     public void endStart();
// }
// 
// Path: core/src/com/gdx/musicevents/effects/StopEffect.java
// public interface StopEffect extends Effect {
// 
//     public void initialize(MusicState nextState, MusicState previousState);
//     public void beginStop();
// 
//     public void endStop();
// }


// Path: core/src/com/gdx/musicevents/MusicEventManager.java
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.Json;
import com.badlogic.gdx.utils.JsonWriter;
import com.badlogic.gdx.utils.ObjectMap;
import com.gdx.musicevents.effects.StartEffect;
import com.gdx.musicevents.effects.StopEffect;

            endTransitions.removeIndex(0);
        }
        
        
        if (currentState != null) {
            currentState.update(dt);
        }
    }

    /**
     * Add a state.
     * 
     * @param state
     *            The state object.
     */
    public void add(MusicState state) {
        state.init(container.basePath);
        this.states.put(state.getName(), state);
        for (int i = 0; i < listeners.size; i++) {
            final MusicEventListener observer = listeners.get(i);
            observer.stateAdded(state);
        }
    }

    /**
     * Remove an event.
     * 
     * @param state
     *            The state object.
     */
    public void remove(MusicState state) {