Search in sources :

Example 11 with Layer

use of blue.score.layers.Layer in project blue by kunstmusik.

the class MoveScoreObjectsListenerTest method testGetMaxYAdjust.

/**
 * Test of getMaxYAdjust method, of class MoveScoreObjectsListener.
 */
@Test
public void testGetMaxYAdjust() {
    System.out.println("getMaxYAdjust");
    List<Layer> layers = new ArrayList<>();
    final SoundLayer soundLayer = new SoundLayer();
    ScoreObject scoreObj = new GenericScore();
    soundLayer.add((SoundObject) scoreObj);
    layers.add(new SoundLayer());
    layers.add(soundLayer);
    layers.add(new SoundLayer());
    int sObjLayerIndex = 1;
    int result = MoveScoreObjectsListener.getMaxYAdjust(layers, scoreObj, sObjLayerIndex);
    assertEquals(1, result);
    layers.add(0, new InvalidLayer());
    layers.add(1, new SoundLayer());
    layers.add(new InvalidLayer());
    sObjLayerIndex = 3;
    result = MoveScoreObjectsListener.getMaxYAdjust(layers, scoreObj, sObjLayerIndex);
    assertEquals(1, result);
}
Also used : SoundLayer(blue.SoundLayer) ArrayList(java.util.ArrayList) ScoreObject(blue.score.ScoreObject) GenericScore(blue.soundObject.GenericScore) SoundLayer(blue.SoundLayer) Layer(blue.score.layers.Layer) Test(org.junit.Test)

Example 12 with Layer

use of blue.score.layers.Layer in project blue by kunstmusik.

the class MoveScoreObjectsListenerTest method testGetMinYAdjust.

/**
 * Test of getMinYAdjust method, of class MoveScoreObjectsListener.
 */
@Test
public void testGetMinYAdjust() {
    System.out.println("getMinYAdjust");
    List<Layer> layers = new ArrayList<>();
    final SoundLayer soundLayer = new SoundLayer();
    ScoreObject scoreObj = new GenericScore();
    soundLayer.add((SoundObject) scoreObj);
    layers.add(new SoundLayer());
    layers.add(soundLayer);
    layers.add(new SoundLayer());
    int sObjLayerIndex = 1;
    int result = MoveScoreObjectsListener.getMinYAdjust(layers, scoreObj, sObjLayerIndex);
    assertEquals(-1, result);
    layers.add(0, new InvalidLayer());
    layers.add(1, new SoundLayer());
    layers.add(new InvalidLayer());
    sObjLayerIndex = 3;
    result = MoveScoreObjectsListener.getMinYAdjust(layers, scoreObj, sObjLayerIndex);
    assertEquals(-2, result);
}
Also used : SoundLayer(blue.SoundLayer) ArrayList(java.util.ArrayList) ScoreObject(blue.score.ScoreObject) GenericScore(blue.soundObject.GenericScore) SoundLayer(blue.SoundLayer) Layer(blue.score.layers.Layer) Test(org.junit.Test)

Example 13 with Layer

use of blue.score.layers.Layer in project blue by kunstmusik.

the class NudgeDownAction method actionPerformed.

@Override
public void actionPerformed(ActionEvent e) {
    Collection<? extends ScoreObject> selected = ScoreController.getInstance().getSelectedScoreObjects();
    if (!selected.isEmpty()) {
        ScorePath path = ScoreController.getInstance().getScorePath();
        ScoreObject[] scoreObjects = selected.<ScoreObject>toArray(new ScoreObject[selected.size()]);
        List<Layer> layers = path.getAllLayers();
        int[] indexes = new int[selected.size()];
        int lastIndex = layers.size() - 1;
        for (int i = 0; i < scoreObjects.length; i++) {
            int index = path.getGlobalLayerIndexForScoreObject(scoreObjects[i]);
            if (index >= lastIndex) {
                return;
            }
            Layer layer = layers.get(index + 1);
            if (!layer.accepts(scoreObjects[i])) {
                return;
            }
            indexes[i] = index;
        }
        int len = scoreObjects.length;
        ScoreObjectLayer[] startLayers = new ScoreObjectLayer[len];
        ScoreObjectLayer[] endLayers = new ScoreObjectLayer[len];
        for (int i = 0; i < scoreObjects.length; i++) {
            startLayers[i] = (ScoreObjectLayer) layers.get(indexes[i]);
            endLayers[i] = (ScoreObjectLayer) layers.get(indexes[i] + 1);
            startLayers[i].remove(scoreObjects[i]);
            endLayers[i].add(scoreObjects[i]);
        }
        MoveScoreObjectsEdit edit = new MoveScoreObjectsEdit(scoreObjects, startLayers, endLayers, null, null);
        BlueUndoManager.setUndoManager("score");
        BlueUndoManager.addEdit(edit);
    }
}
Also used : MoveScoreObjectsEdit(blue.ui.core.score.undo.MoveScoreObjectsEdit) ScorePath(blue.ui.core.score.ScorePath) ScoreObjectLayer(blue.score.layers.ScoreObjectLayer) ScoreObject(blue.score.ScoreObject) Layer(blue.score.layers.Layer) ScoreObjectLayer(blue.score.layers.ScoreObjectLayer)

Example 14 with Layer

use of blue.score.layers.Layer in project blue by kunstmusik.

the class ReplaceWithBufferSoundObjectAction method actionPerformed.

@Override
public void actionPerformed(ActionEvent e) {
    ScoreController.ScoreObjectBuffer buffer = ScoreController.getInstance().getScoreObjectBuffer();
    List<Layer> layers = scorePath.getAllLayers();
    BlueData data = BlueProjectManager.getInstance().getCurrentBlueData();
    SoundObjectLibrary sObjLib = data.getSoundObjectLibrary();
    List<Instance> instances = new ArrayList<>();
    ReplaceScoreObjectEdit top = null;
    for (SoundObject sObj : soundObjects) {
        SoundObject replacement = getReplacementObject(buffer, instances);
        replacement.setStartTime(sObj.getStartTime());
        replacement.setSubjectiveDuration(sObj.getSubjectiveDuration());
        ScoreObjectLayer layer = (ScoreObjectLayer) findLayerForSoundObject(layers, sObj);
        layer.remove(sObj);
        layer.add(replacement);
        ReplaceScoreObjectEdit edit = new ReplaceScoreObjectEdit(layer, sObj, replacement);
        if (top == null) {
            top = edit;
        } else {
            top.addEdit(edit);
        }
    }
    // FIXME - this part is not undoable...
    sObjLib.checkAndAddInstanceSoundObjects(instances);
    BlueUndoManager.setUndoManager("score");
    BlueUndoManager.addEdit(top);
}
Also used : ScoreController(blue.ui.core.score.ScoreController) BlueData(blue.BlueData) ScoreObjectLayer(blue.score.layers.ScoreObjectLayer) SoundObject(blue.soundObject.SoundObject) Instance(blue.soundObject.Instance) ReplaceScoreObjectEdit(blue.ui.core.score.undo.ReplaceScoreObjectEdit) ArrayList(java.util.ArrayList) SoundObjectLibrary(blue.SoundObjectLibrary) SoundLayer(blue.SoundLayer) ScoreObjectLayer(blue.score.layers.ScoreObjectLayer) Layer(blue.score.layers.Layer)

Example 15 with Layer

use of blue.score.layers.Layer in project blue by kunstmusik.

the class PolyObject method removeLayers.

@Override
public void removeLayers(int startIndex, int endIndex) {
    ArrayList<Layer> layers = new ArrayList<>();
    for (int i = endIndex; i >= startIndex; i--) {
        SoundLayer sLayer = this.get(i);
        sLayer.clearListeners();
        this.remove(i);
        layers.add(sLayer);
    }
    LayerGroupDataEvent lde = new LayerGroupDataEvent(this, LayerGroupDataEvent.DATA_REMOVED, startIndex, endIndex, layers);
    fireLayerGroupDataEvent(lde);
}
Also used : ArrayList(java.util.ArrayList) Layer(blue.score.layers.Layer) LayerGroupDataEvent(blue.score.layers.LayerGroupDataEvent)

Aggregations

Layer (blue.score.layers.Layer)33 ScoreObjectLayer (blue.score.layers.ScoreObjectLayer)18 ArrayList (java.util.ArrayList)17 ScoreObject (blue.score.ScoreObject)13 Point (java.awt.Point)10 SoundLayer (blue.SoundLayer)9 LayerGroupDataEvent (blue.score.layers.LayerGroupDataEvent)6 ScorePath (blue.ui.core.score.ScorePath)6 SoundObject (blue.soundObject.SoundObject)4 BlueData (blue.BlueData)3 ScoreController (blue.ui.core.score.ScoreController)3 AddScoreObjectEdit (blue.ui.core.score.undo.AddScoreObjectEdit)3 MoveScoreObjectsEdit (blue.ui.core.score.undo.MoveScoreObjectsEdit)3 SoundObjectLibrary (blue.SoundObjectLibrary)2 AlphaMarquee (blue.components.AlphaMarquee)2 Score (blue.score.Score)2 LayerGroup (blue.score.layers.LayerGroup)2 GenericScore (blue.soundObject.GenericScore)2 Instance (blue.soundObject.Instance)2 PolyObject (blue.soundObject.PolyObject)2