2018-08-23 07:03:28 +02:00
|
|
|
const { remote } = require('electron')
|
|
|
|
const fs = require('fs-extra')
|
|
|
|
|
2018-08-23 07:32:07 +02:00
|
|
|
const { STATE_PATH, getState, resetState } = require('./state')
|
2018-08-23 07:03:28 +02:00
|
|
|
|
|
|
|
window.windows95 = {
|
|
|
|
STATE_PATH,
|
|
|
|
|
2018-08-23 07:32:07 +02:00
|
|
|
resetState,
|
|
|
|
|
2018-08-23 07:25:17 +02:00
|
|
|
async saveState () {
|
2018-08-23 07:03:28 +02:00
|
|
|
return new Promise((resolve) => {
|
|
|
|
if (!window.emulator || !window.emulator.save_state) {
|
|
|
|
return resolve()
|
|
|
|
}
|
|
|
|
|
2018-08-23 07:25:17 +02:00
|
|
|
window.emulator.save_state(async (error, newState) => {
|
2018-08-23 07:03:28 +02:00
|
|
|
if (error) {
|
|
|
|
console.log(error)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2018-08-23 07:25:17 +02:00
|
|
|
await fs.outputFile(STATE_PATH, Buffer.from(newState))
|
2018-08-23 07:03:28 +02:00
|
|
|
|
|
|
|
console.log(`Saved state to ${STATE_PATH}`)
|
|
|
|
|
|
|
|
resolve()
|
2018-08-23 07:25:17 +02:00
|
|
|
})
|
2018-08-23 07:03:28 +02:00
|
|
|
})
|
|
|
|
},
|
|
|
|
|
2018-08-23 07:25:17 +02:00
|
|
|
async restoreState () {
|
2018-08-23 07:03:28 +02:00
|
|
|
try {
|
|
|
|
window.emulator.restore_state(getState())
|
|
|
|
} catch (error) {
|
|
|
|
console.log(`Could not read state file. Maybe none exists?`, error)
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2018-08-23 07:25:17 +02:00
|
|
|
quit () {
|
2018-08-23 07:03:28 +02:00
|
|
|
remote.app.quit()
|
|
|
|
}
|
|
|
|
}
|