Gopher2600/notifications/notifications.go
JetSetIlly 178f05f17b updated go minimum version to 1.20
applied gofmt to source tree to update the documentation comments
2023-02-12 13:09:07 +00:00

74 lines
3 KiB
Go

// This file is part of Gopher2600.
//
// Gopher2600 is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Gopher2600 is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Gopher2600. If not, see <https://www.gnu.org/licenses/>.
package notifications
import "github.com/jetsetilly/gopher2600/hardware/memory/cartridge/mapper"
// Notify describes events that somehow change the presentation of the
// emulation. These notifications can be used to present additional information
// to the user
type Notify string
// List of defined notifications.
const (
NotifyInitialising Notify = "NotifyInitialising"
NotifyPause Notify = "NotifyPause"
NotifyRun Notify = "NotifyRun"
NotifyRewindBack Notify = "NotifyRewindBack"
NotifyRewindFoward Notify = "NotifyRewindFoward"
NotifyRewindAtStart Notify = "NotifyRewindAtStart"
NotifyRewindAtEnd Notify = "NotifyRewindAtEnd"
NotifyScreenshot Notify = "NotifyScreenshot"
NotifyMute Notify = "NotifyMute"
NotifyUnmute Notify = "NotifyUnmute"
// the following notifications relate to events generated by a cartridge
// LoadStarted is raised for Supercharger mapper whenever a new tape read
// sequence if started.
NotifySuperchargerLoadStarted Notify = "NotifySuperchargerLoadStarted"
// If Supercharger is loading from a fastload binary then this event is
// raised when the loading has been completed.
NotifySuperchargerFastloadEnded Notify = "NotifySuperchargerFastloadEnded"
// If Supercharger is loading from a sound file (eg. mp3 file) then these
// events area raised when the loading has started/completed.
NotifySuperchargerSoundloadStarted Notify = "NotifySuperchargerSoundloadStarted"
NotifySuperchargerSoundloadEnded Notify = "NotifySuperchargerSoundloadEnded"
// tape is rewinding.
NotifySuperchargerSoundloadRewind Notify = "NotifySuperchargerSoundloadRewind"
// PlusROM cartridge has been inserted.
NotifyPlusROMInserted Notify = "NotifyPlusROMInserted"
// PlusROM network activity.
NotifyPlusROMNetwork Notify = "NotifyPlusROMNetwork"
// PlusROM new installation
NotifyPlusROMNewInstallation Notify = "NotifyPlusROMNewInstallation"
)
// NotificationHook is used for direct communication between a the hardware and
// the emulation package. Not often used but necessary for (currently):
//
// . Supercharger (eg. tape start/end)
// . PlusROM (eg. new installation)
//
// The emulation understands how to interpret the event and forward the
// notification to the GUI using the gui.FeatureReq mechanism.
type NotificationHook func(cart mapper.CartMapper, notice Notify, args ...interface{}) error