namespace RedBookPlayer.Models { /// /// Determine how to handle data tracks /// public enum DataPlayback { /// /// Skip playing all data tracks /// Skip = 0, /// /// Play silence for all data tracks /// Blank = 1, /// /// Play the data from all data tracks /// Play = 2, } /// /// Determine how to handle multiple discs /// /// Used with both repeat and shuffle public enum DiscHandling { /// /// Only deal with tracks on the current disc /// SingleDisc = 0, /// /// Deal with tracks on all loaded discs /// MultiDisc = 1, } /// /// Current player state /// public enum PlayerState { /// /// No disc is loaded /// NoDisc, /// /// Disc is loaded, playback is stopped /// Stopped, /// /// Disc is loaded, playback is paused /// Paused, /// /// Disc is loaded, playback enabled /// Playing, } /// /// Playback repeat mode /// public enum RepeatMode { /// /// No repeat /// None, /// /// Repeat a single track /// Single, /// /// Repeat all tracks /// All, } /// /// Determine how to scroll /// public enum ScrollCommand { /// /// No scrolling /// NoScroll = 0, /// /// Scroll 6 pixels in the positive direction (right/down) /// Positive = 1, /// /// Scroll 6 pixels in the negative direction (left/up) /// Negative = 2, } /// /// Determine how to handle different sessions /// public enum SessionHandling { /// /// Allow playing tracks from all sessions /// AllSessions = 0, /// /// Only play tracks from the first session /// FirstSessionOnly = 1, } /// /// Known set of subchannel instructions /// /// public enum SubchannelInstruction : byte { /// /// Set the screen to a particular color. /// MemoryPreset = 1, /// /// Set the border of the screen to a particular color. /// BorderPreset = 2, /// /// Load a 12 x 6, 2 color tile and display it normally. /// TileBlockNormal = 6, /// /// Scroll the image, filling in the new area with a color. /// ScrollPreset = 20, /// /// Scroll the image, rotating the bits back around. /// ScrollCopy = 24, /// /// Define a specific color as being transparent. /// DefineTransparentColor = 28, /// /// Load in the lower 8 entries of the color table. /// LoadColorTableLower = 30, /// /// Load in the upper 8 entries of the color table. /// LoadColorTableUpper = 31, /// /// Load a 12 x 6, 2 color tile and display it using the XOR method. /// TileBlockXOR = 38, } }