| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | #include "SpoolJoin.h"#include "Marlin.h"#include "eeprom.h"#include "messages.h"#include "language.h"namespace SpoolJoin {SpoolJoin spooljoin;SpoolJoin::SpoolJoin()    : status(EEPROM::Unknown)    , currentMMUSlot(0){}void SpoolJoin::updateSpoolJoinStatus(EEPROM newStatus){    status = newStatus;    eeprom_write_byte((uint8_t*)EEPROM_SPOOL_JOIN, (uint8_t)status);}void SpoolJoin::initSpoolJoinStatus(){    EEPROM currentStatus = (EEPROM)eeprom_read_byte((uint8_t*)EEPROM_SPOOL_JOIN);    if( currentStatus == EEPROM::Empty)    {        // By default SpoolJoin is disabled        updateSpoolJoinStatus(EEPROM::Disabled);    } else {        updateSpoolJoinStatus(currentStatus);    }    // Useful information to see during bootup    SERIAL_ECHOPGM("SpoolJoin is ");    if (isSpoolJoinEnabled())    {        SERIAL_ECHOLNRPGM(_O(MSG_ON));    } else {        SERIAL_ECHOLNRPGM(_O(MSG_OFF));    }}void SpoolJoin::toggleSpoolJoin(){    if (eeprom_read_byte((uint8_t*)EEPROM_SPOOL_JOIN) == (uint8_t)EEPROM::Disabled)    {        eeprom_write_byte((uint8_t*)EEPROM_SPOOL_JOIN, (uint8_t)EEPROM::Enabled);    } else {        eeprom_write_byte((uint8_t*)EEPROM_SPOOL_JOIN, (uint8_t)EEPROM::Disabled);    }}bool SpoolJoin::isSpoolJoinEnabled(){    if(eeprom_read_byte((uint8_t*)EEPROM_SPOOL_JOIN) == (uint8_t)EEPROM::Enabled) {        return true;    } else {        return false;    }}void SpoolJoin::setSlot(uint8_t slot){    currentMMUSlot = slot;}uint8_t SpoolJoin::nextSlot(){    SERIAL_ECHOPGM("SpoolJoin: ");    SERIAL_ECHO((int)currentMMUSlot);    if (currentMMUSlot >= 4) currentMMUSlot = 0;    else currentMMUSlot++;    SERIAL_ECHOPGM(" -> ");    SERIAL_ECHOLN((int)currentMMUSlot);    return currentMMUSlot;}}
 |