void MidiTrack::writeToFile(ostream & output) { if (!mClosed) { closeTrack(); } if (mSizeNeedsRecalculating) { recalculateSize(); } output.write((char*)IDENTIFIER, 4); output.write(MidiUtil::intToBytes(mSize, 4), 4); MidiEvent * lastEvent = NULL; std::vector<MidiEvent*>::iterator it; for (it = mEvents.begin(); it != mEvents.end(); it++) { MidiEvent * _event = *it; if (VERBOSE) { cout << "Writing: " << _event->toString().c_str(); } _event->writeToFile(output, _event->requiresStatusByte(lastEvent)); lastEvent = _event; } }
// ---------------------------------------------------------------------------- void Editor::newTrack() { closeTrack(); f32 size = (f32)m_new_dialog_wndw->getSize(); Track* t = new Track(size, size); t->setFileName(m_new_dialog_wndw->getFileName()); t->setTrackName(m_new_dialog_wndw->getTrackName()); t->setDesigner(m_new_dialog_wndw->getDesigner()); t->setGravityRoad(m_new_dialog_wndw->gravRoad()); m_viewport->setTrack(t); RoadPanel::getRoadPanel()->updateRoadList(); } // newTrack
// ---------------------------------------------------------------------------- bool Editor::open(path p) { closeTrack(); m_device->getFileSystem()->changeWorkingDirectoryTo(m_def_wd); if (m_viewport->setTrack(new Track(p.c_str()))) { TerrPanel* tp = TerrPanel::getTerrPanel(); tp->refreshTerrainTextures(m_viewport->getTerrain()->getMaterial(0)); m_viewport->setSplineMode(false); m_viewport->setState(Viewport::SELECT); RoadPanel::getRoadPanel()->updateRoadList(); return true; } else return false; } // open