Music Player with Table Fixture

This version of the Music Player example shows what can be done with a specialized display that looks a bit more like an actual music player rather than a refuge spreadsheet.

This is a simulation. That is, we're actually simulating the passage of time. The "Current Time" field in the far right is the simulated time from when we start the player, given in minutes and seconds. Commands take five seconds. This isn't because the box is particularly slow, it's because the operator has to take some time to push the buttons. Since we don't want to create a random time (it would make duplicating the times impossible) and we also don't want to enter a time for each command, we'll just arbitrarily use five seconds.

The first thing we're going to do is invoke a DoFixture and then have it load our music player simulator. We slide it to the right and grey it out because it contains a bunch of "technology facing" stuff that the end user shouldn't have to deal with.

fitLib.DoFixture
starteg.MusicPlayer2

 

The first table is below. Each entry is the same: it starts with a command and the top of the music player. Each of the fields in the first row is checked after each command.

The music player also displays the inventory sorted in various different ways. However, the inventory display does not have to be included in the table. If it isn't there, it isn't checked.

reset player is simply the starting command; it puts the music player into its starting state, which is displayed below.

reset player
Total SongsSongs DisplayedPlayer StatusAlarmTime RemainingCurrent Time
571 to 10 of 57Stopped 0:000:00

Now we want to select a song to play. We select the song by specifying the number from the far left column on the display. The selection list doesn't have to be displayed, but it does help. After the command, the selected song is marked with an * instead of the number.

select song2
Total SongsSongs DisplayedPlayer StatusAlarmTime RemainingCurrent Time
571 to 10 of 57Stopped 3:420:05
#NameArtistAlbumYearTime
1AkilaToure KundaThe Toure Kunda Collection 19964:25
*American TangoWeather ReportMysterious Traveller 19743:42
3AnanasJames TaylorHourglass 19975:44
4Another Grey MorningJames TaylorJT 19772:44
5Cellohachi Part 1Gideon FreudmannSound Of Distant Deer 19984:04
6Cellohachi Part 2Gideon FreudmannSound Of Distant Deer 19983:35
7Cellohachi Part 2Gideon FreudmannSound Of Distant Deer 19982:04
8CoolsvilleLaurie AndersonStrange Angels 19894:37
9CopperlineJames TaylorNew Moon Shine 19914:22
10Dice Are RollingAndrew Lloyd WebberEvita 19795:07

Selecting the song doesn't do anything but mark it as selected in the display. However, it does take a small amount of time. The actual selection is almost instantanious, but the person operating it takes 5 seconds.

The next logical thing to do is tell the player to start playing it. All operator commands are presumed to take five seconds, at least if the player isn't playing. Loading the CD takes four seconds (you didn't think this was a really modern player with everything in flash memory, did you?)

start playing selected song
Total SongsSongs DisplayedPlayer StatusAlarmTime RemainingCurrent Time
571 to 10 of 57Loading 3:420:10

Now what happens? We hear it go click, whir and then play our song. Not much to see, so we're just going to move ahead a minute and see what the status will look like at that time. The command, as usual, also takes five seconds.

advance60seconds
Total SongsSongs DisplayedPlayer StatusAlarmTime RemainingCurrent Time
571 to 10 of 57Playing 2:411:15

Much as someone likes this song, waiting for it to finish is somewhat like watching grass grow, or at least listening to grass grow. So let's see how many songs we have by James Taylor. We can do this while the current song is playing - this player can do searches while it's playing something.

show all songs whereartistis the same as song3
Total SongsSongs DisplayedPlayer StatusAlarmTime RemainingCurrent Time
571 to 5 of 5Playing 2:361:20
#NameArtistAlbumYearTime
*American TangoWeather ReportMysterious Traveller19743:42
1AnanasJames TaylorHourglass19975:44
2Another Grey MorningJames TaylorJT19772:44
3CopperlineJames TaylorNew Moon Shine19914:22
4HandymanJames TaylorJT19773:18
5Sailing to PhiladelphiaJames TaylorOctober Rose20015:43

The command has, as usual, taken five seconds. While it found five songs, there are six displayed. This is a very smart little box: if the display doesn't include the currently playing song, it puts it into the display anyway, with an * for the number.