`
`basic HW/SW bootup on I" proto - Sep
`
`DSP playing sounds
`
`Late Basic MP3 playback (RAM)
`
`(disk)
`
`Rev 2 Proto, in fomi factor
`
`Nov”). The reference
`
`to “Rev 2 Proto, in fonn factor” refers to a second prototype that would later be implemented having
`
`the size and shape as desired for the ultimate Nomad Jukebox product. Id. The earlier prototypes
`
`were not “fonn factor," meaning they were larger and square-shaped and not designed toactually fit
`
`in the plastic casing that was being designed. See, e.g., Exh. T.
`
`4!
`.38.
`
`At the Oasis Engineering Meeting on October I3, I999, I reported on certain issues
`
`concerning the embedded sofiware. See Exh. W, p. 2. My co-inventors on the ‘433 Patent, David
`
`Bristow and Ron Goodman, were also present at the Oasis Engineering Meeting on October 13, 1999,
`
`we talked about efforts in “Storyboarding” the user interface. Id., p. 3.
`
`39.
`
`At another Oasis Engineering Meeting that took place some time afler Oct. 20, I999, but
`
`before Dec. 9, I999, one of my colleagues gave a status report on the embedded software
`
`development, reporting that: “Howard [Egan] has been working on file system
`
`The basics work
`
`Load, save, create files”; “Playback mgr, DSP Mgr. MP3 decode works in Playback mgr”; and
`
`“Ron’s Ul stuff integrated into Oasis.” See Exh. W, p. I0.
`
`40.
`
`At a subsequent meeting that took place some time after Dec. 2, 1999, but before Dec. 9,
`
`I999, Mr. Freeman reported on the status of the Oasis hardware development, indicating that: “Oasis
`
`PCB in assembly”; “test fixture in fab Thu I2/2/99”; “DVT plan being written”; “Prog guidefiheory
`of Ops doc being written.” See Exh. W, p. 12. The notes also indicate that I was present at this
`meeting, and that I said “MP3 decode from disk works.” Id. These notes indicate to me that in the
`
`first week of December, I999, I received a fomt-factor prototype that I could use to begin testing the
`
`Oasis operating system in firmware on a hardware prototype, as opposed to by using an emulator. Id.
`
`. The notes also say that I wanted Scott W. “commit to what can be delivered for CES.”- Id. The
`
`notation “CES” refers to the upcoming Consumer Electronics Show 2000 (“CES 2000”), which was
`
`scheduled to take place in Las Vegas, NV on Jan. 5 through Jan. I0, 2000. The Oasis R&D team had
`
`already been notified some time in September of I999 that Creative was planning to introduce the
`
`Nomad Jukebox at CES 2000.
`
`It was understood by all members of the Oasis R&D team that this
`
`meant we needed to have a robust working prototype fully tested and ready to present at least a day
`
`before the show was scheduled to begin on Jan. 5, 2000. So, the target date was set for Jan. 4, 2000.
`
`41.
`
`At a meeting on Dec. 9, 1999, I gave a status update on the development of the Oasis
`
`embedded sofiware. See Exh. W, pp. I4-I5. Prior to that day, the hardware sub-group had provided
`
`13731443
`
`_ 2;;
`
`SONY Exhibit 1004 - Page 538
`
`SONY Exhibit 1004 - Page 538
`
`
`
`me with a functional hardware Prototype having all the same components shown in Exh. Q.
`
`I know
`
`this based on my memory of the events, and also because Mr. Freeman’s notes of Dec. 9, I999
`
`indicate that I talked about the need to integrate “boot loader” soflware into the system. See Exh. W,
`
`-
`
`p. I5 (stating “lntertrust secure Bootloader — we have to write bootloader.
`
`lntertrust portion in read-
`
`only part of the Boot ROM”).
`
`42.
`
`Using the prototype Nomad Jukebox provided to mei December 9, I999, I had begun
`
`testing the Oasis operating system. See, e.g. Exh. W, p. I5 (stating “Ul manager task running, button
`
`manager
`Library traversal system in place ...”) Prior to Dec. 9, I999, I had begun a testing
`process wherein I compiled the Oasis source code, and executed it as firmware on the ARM processor
`
`of the prototype. See Exh. Q.
`
`In conjunction with testing the Oasis source code, I used a personal
`
`computer (PC) connected to an Oasis Test Fixture Board via a standard Joint Test Action group
`
`(“JTAG”) adaptor, wherein the prototype Nomad Jukebox connected directly to the Oasis Test
`
`Fixture Board. Exhibit U shows photographs taken recently of the Oasis Test Fixture Board I began
`
`using yarilg Dec. 9, I999 for purposes of testing the Oasis operating system. Id.
`
`I note the Oasis
`
`Test Fixture Board bears a copyright date of I999. See Exhibit U. This test board was designed by
`
`Mr. Freeman and others specifically for the purpose of testing the source code for the embedded
`
`software, including the Oasis operating system. See, e.g. Exh. W, p. I2 (stating “Test fixture in fab
`
`Thu 12/2/99
`
`DVT plan being written”). Mr. Freeman’s notes concerning the “Test fixture” refer
`
`to the Oasis Test Fixture Board shown in exhibit U. See, e.g. Exh. W, p. I2; see also Exh. U. The
`
`notation “DVT plan being written” refers to a plan for a device verification test (“DVT”) for veri fying
`
`the operation of the prototype Nomad Jukebox. See, e.g. Exh. W, p. I2; see also Exh. U.
`
`43.
`
`Prior to Dec. 9, I999, I began testing the Oasis operating system by compiling the Oasis
`
`source code, and downloading . the compiled code via the JTAG adaptor to the ARM processor of the
`
`prototype. See Exh. Q, Exh. U. The Oasis block diagram of exhibit Q shows the basic components
`
`of the prototype. As mentioned above, Mr. Freeman’s notes of Dec. 9, I999 indicate that I talked
`
`about the need to integrate “boot loader” software into the prototype. See Exh. W, p. I5 (stating
`
`“lntertrust secure Bootloader — we have to write bootloader.
`
`lntertrust portion in read-only part of the
`
`Boot ROM”). Referring to the diagram of exhibit Q, the Nomad Jukebox prototype design called for
`
`“bootloader” code to be stored in the “Boot Flash” memory. See Exh. Q. The purpose of the
`
`bootloader can be described as follows. Upon initial power-up of the system, the ARM processor
`
`would access and execute the bootloader code from the boot flash memory, which would then load
`
`the Oasis operating system from the Hard Disk to the dynamic random access memory (“DRAM”) so
`
`that the ARM processor could then begin executing the Oasis operating system to control all
`
`I378‘!-148
`
`__
`
`SONY Exhibit 1004 - Page 539
`
`SONY Exhibit 1004 - Page 539
`
`
`
`embedded software functions on the portable media player. See Exh. Q. However, as of Dec. 9,
`
`1999, the bootloader code was not yet written and installed into the boot flash memory. See Exh. Q;
`
`Exh. W, p. I5. In order to proceed with the testing without the boot loader, upon power-up of the
`prototype, I configured the PC to control the ARM processor on the prototype via the JTAG adaptor
`
`so that the ARM processor loaded the Oasis operating system directly from the hard ‘disk drive to the
`
`DRAM. This was a simple by-pass solution that enabled me to fully test the Oasis operating system,
`
`including all of the functions described above as practicing claims 1-33 of the ‘433 Patent.
`
`44.
`
`Using the techniques described in the previous paragraph, I was able to power-up and
`
`initialize the Nomad Jukebox prototype without having a bootloader, and thus I was able to test the
`
`compiled Oasis operating system by executing it directly on the prototype without the use of any
`
`sofiware emulation. See, Exh. W, pp. 14-15; see also Exh. U. Mr. Freeman’s notes of Dec. 9, 1999
`
`also state “U-l Manager task running, button manager
`
`library traversal system in place.” See, Exh.
`
`W, pp. 14-] 5. This indicates to me that prior to Dec. 9, 1999, I had been able to power-up and test
`
`parts of the Oasis operatingysystem on the Nomad Jukebox prototype without having a bootloader.
`Id. These notes are in accordance with my memory of the events during the first few weeks of
`
`January, 1999, which I remember very well because I was very excited and determined to meet the
`
`goal of publicly demonstrating a Nomad Jukebox prototype at CES 2000, which was at that time less
`
`than a month away.
`
`45. '
`
`Mr. Freeman’s notes on the report 1 gave on Dec. 9, I999 also state “want ‘limping along’
`
`unit that can play songs next week (old boands).” See. Exh. W, pp. I4-l 5.
`I coined the tenn “limping
`along" unit on or about the time of the Dec. 9, I999 meeting to refer to alstand-alone Nomad Jukebox
`prototype detached from the Oasis Test Fixture Board and other test equipment, that would could
`
`properly execute the Oasis operating system. See Exhs. AA through 00. Once again, our goal in
`
`December of 1999 was to publicly demonstrate a Nomad Jukebox prototype at CES 2000, which was
`
`at that time less than a month away.
`
`I called it a “limping along” unit sort of as a term of endearment
`
`because the Oasis R&D was well aware that any early prototype is likely to have sporadic bugs or
`
`glitches. However, we all took very serious the prospect of demonstrating a prototype at CES 2000,
`
`which is the largest and most important annual consumer electronics show in North America. As
`
`such, we knew that the stakes were extremely high because it would have been a major
`
`embarrassment if-any of the Nomad Jukebox prototypes presented at CBS 2000 were to “crash.”
`
`46.
`
`_ During a meeting on Dec. I5, I999, I gave another update on development of the Oasis
`
`embedded software. See Exh. W, pp. I6-I 7. Mr. Freeman’s notes indicate “’Limping along’ unit
`
`13787448
`
`_ 30
`
`SONY Exhibit 1004 - Page 540
`
`SONY Exhibit 1004 - Page 540
`
`
`
`could be ready later this week? Then will be made more robust so can survive demo at CES.” ld.,
`
`p. I7. This means that the bootloader code was still not installed.
`
`47.
`
`Based on my memory, my inspection of the CVS check-in logs (see Exh. Z), my inspection
`
`of the Dec. I4, I999 Oasis source code (see Exhs. A through 0), and also based on Mr. Freeman’s
`
`notes on Dec. 9, I999 (see Exh. W at pp. I4-I 5), I am sure that at least as of Dec. I4, I999, I had
`
`fully tested the Oasis operating system — which implemented all of claims 1-33 of the ‘433 Patent - as
`
`actual firmware running on a Nomad Jukebox prototype. See Exh. W, pp. l4-I5 (stating “Ul
`
`Manager task running, button manager
`
`library traversal system in place.’’) It is true that as of Dec.
`
`9, I999, many aspects of the prototype needed to be de-bugged, and it is also tme that the Oasis
`
`operating system needed to be loaded by J'l'AG control on power-up due to the absence of a
`
`bootloader. However, the bootloader was n_ot essential to demonstrating that the Oasis operating
`
`system (including a_ll of the functionality described above in Table A) was working for its intended
`
`purpose. Therefore, as of Dec. I4, 1999, I had fully tested all of the functions correlated in the above
`
`table with claims 1-33 of the ‘433 Patent, and these functions were working for their intended
`
`purpose.
`
`48.
`
`Prior to Dec. I4, 1999, before I began testing the Oasis operating system as compiled
`
`firmware on a Nomad Jukebox prototype (as the notes show I was doing throughout the first few
`
`weeks of December of I999), I had previously tested the Oasis operating system (including a_ll of the
`
`functionality described above in Table A) using a sofiware emulator. For reasons that will be
`
`understood by anyone skilled in the development of finnware in the I999 time period, I would not
`
`have begun testing the firmware without first testing the source code in an emulator environment,
`
`where it was much easier to debug.
`
`Diligence Towards A Second Reduction to Practice on .lanuaI_'y 4, 2000
`
`49.
`
`As explained above, I believe that the Dec. 15, 1999 Oasis source code demonstrates
`
`complete conception of claims I-33 of the ‘433 Patent (see Table A, above) at least as early as Dec.
`
`15, I999.
`
`I also believe that the above-described emulation testing and/or the frnnware testing was
`
`sufficient to demonstrate that the inventions recited in claims 1-33 of the ‘433 Patent were working
`
`for the intended purpose.
`
`50.
`
`Alternatively, I submit that: (I) the Jan. 4, 2000 Nomad Jukebox prototypes demonstrated at
`
`CES 2000 constituted an actual reduction to practice of the inventions of claims l-33 of the ‘433
`
`Patent; (2) the Oasis R&D team was diligent in its effort to reduce to practice the inventions of claims
`
`rzmm
`
`_ 3]
`
`SONY Exhibit 1004 - Page 541
`
`SONY Exhibit 1004 - Page 541
`
`
`
`I-33 starting on Dec. I5, I999 and proceeding on a daily basis up until the time of the actual
`
`reduction to practice on Jan. 4, 2000.
`
`5 I .
`
`As explained above, during our development of the Nomad Jukebox in December of 1999,
`
`we were working toward a very aggressive internal target date of Jan. 4, 2000 for having a fully
`
`functional Nomad Jukebox ready to present at CES 2000. And as explained below, we were very
`
`successful in achieving that goal.
`
`52.
`
`After the Oasis Engineering Meeting on Dec. IS, I999, the Oasis R&D team including Mr.
`
`Freeman began working so hard and fast toward the CBS 200 target date that Mr. Freeman largely
`
`stopped taking meaningful notes in his notebook in the time period between Dec. I5, 1990 and
`
`January I1, 2000. See Exh. W, pp. I6-22. However, I have located numerous documents that
`
`describe the work that was done on reducing the inventions of the ‘433 Patent to practice during the
`
`time period between Dec. I5, 1999 and Jan. 4, 2000.
`
`53.
`
`Exhibit Z is a copy of a Log of all CVS check-in activity for the Oasisasource code between
`
`Nov.r I0, I999 and Jan. 10, 2000. This log indicates that portions of Oasis source code were checked
`
`in by various members of the embedded software development team on the following dates: 12/] 4/99
`
`(see, e.g., Exh. Z, p. 4 showing a check-in by Howard Egan with notes indicating “Resynchronize
`
`afier adding button scanner, transfer agent, now playing manager, LibTreeManager etc.); I2/I6/99
`
`(see, e.g., Exh. 2, p. I96 showing a check-in by Andrei Veltchev with notes indicating “delay inserted
`
`to accommodate the Dl2's timing requirements”); I2/I7/99 (see, e.g., Exh. 2, p. 4 showing a check-in
`
`by Howard Egan with notes indicating “First cut with playback manager hooked to transfer agent
`
`Plays audio from disk”); 12/18/99 (See, e.g., Exh. Z, p. 47 showing a check-in by Andrei Veltchev
`
`with notes indicating “added encoder event handling to the LCD manager”); I2/20/99 (see, e.g., Exh.
`
`Z, p.
`
`l I showing a_check-in by Howard Egan with notes indicating “Miscellania”); I2/22/99 (see,
`
`e.g., Exh. 2, p. 70 showing a check-in by Howard Egan with notes indicating “Moved from sysmgr”);
`
`l2I23l99 (see, e.g., Exh. Z, p. 75 showing a check-in by Howard Egan with notes indicating “Latest
`boot loader modifications and inclusion of some new hard coded music.”); 12/24/99 (see, e.g., Exh.
`Z, p.
`l I showing a check-in by Gerald l. with notes indicating “Fixed some transport issues”);
`
`I2/26‘l99 (see, e.g., Exh. 2, p. 10 showing a check-in by Howard Egan with notes indicating “Fixed
`
`several transport key issues, and changed fonts and LCD Display size to 6 lines (total)”); I2/27/99
`'(see, e.g., Exh. Z, p. IO showing at check-in by Howard Egan with notes indicating “Added status line
`
`class to LCDPage for use by both now playing screen and qlist screen. Added elapsed playing time
`
`calculations and functions to dsp manager for use by status line.”); 12/28/99 (see, e.g., Exh. Z, p. 35
`
`l37814-18
`
`A
`
`_ 32
`
`SONY Exhibit 1004 - Page 542
`
`SONY Exhibit 1004 - Page 542
`
`
`
`showing a check-in by Howard Egan with notes indicating “Miscellaneous bug fixes”); I2/29/99
`
`(see, e.g., Exh. Z, p. 35 showing a check-in by Howard Egan with notes indicating “Added fix to
`
`filesystem to take an initial file size on creation. "Cause double indirect is broken currently"”);
`
`I2/30/99 (see, e.g., Exh. Z, p. 35 showing a check-in by Howard Egan with notes indicating “Better
`
`fonts, cosmetics”); I2/3|/99 (see, e.g., Exh. Z, p. 5 showing a check-in by Howard Egan with notes
`indicating “Added INode debug output statements.”); 01/0|/2000 (see, e.g., Exh. Z, p. 5 showing a
`
`check-in by Howard Egan with notes indicating “Added system menu, including dsp effects
`
`control”); 0]/03/2000 (see, e.g., Exh. Z, p. I5 showing a check-in by Howard Egan with notes
`
`indicating “CES Release”); and 01/04/2000 (see, e.g., Exh. Z, p. 2l showing a check-in by Howard
`Egan with notes indicating “CES Final”).
`I
`
`54.
`
`As noted above, the CVS Log indicates that members of the Oasis R&D team checked in
`
`source code revisions on every day between Dec. I4, I999 and Jan. 4, 2000, except the following
`
`days: Dec. I5, I999; Dec. 19, I999; Dec. 21, 1999; Christmas day, I999; and Jan. 2, 2000. However,
`
`I am absolutely sure that most of the members of the members of the Oasis R&D team worked
`
`diligently every single day between Dec. I4, I999 and .Ian. 4, 2000, with the possible exception of
`
`Christmas day, I999.
`
`I worked on revising and testing the Oasis operating system on every single
`
`day in this time period, except Christmas day.
`
`In addition, I should explain that each one of the
`
`logged source code revisions may reflect more than one day’s worth of work leading up to the check-
`in date. Moreover, the fact that no check-ins on a given ‘date certainly does not mean that there was
`
`no embedded sofiware development activity on that date because the Oasis source code developers
`
`followed the standard practice of testing all source_ code revisions before checking them in, and this
`
`was ofien a complicated and time consuming process. I note that there was a very well attended
`
`Oasis Engineering Meeting on Dec. I5, I999. See Exh. W, pp. I6-I8. Mr. Freeman’s notebook
`
`shows that at least he was working on development of the Nomad Jukebox on Dec. 19, I999. See
`
`Exh. W, pp. I8-I9.
`
`I am certain I worked that day as well. Thus, the only days in the period for
`
`which I cannot find Q evidence of work activity are: Dec. 21, I999; Jan. 2, 2000 (which was a
`
`Sunday); and Christmas day, I999. However, as I said, I am certain that I personally worked on
`
`every day between Dec. I4, I999 and Jan. 4, 2000, except Christmas day.
`
`In this time period, I
`
`estimate that I worked about 80 hours per week on further development of the Nomad Jukebox
`embedded source code. And I am sure that the other members of the Oasis R&D team worked at a
`
`similar pace in developing various other components of the Nomad Jukebox. As explained, the
`
`reason for this tireless pace was that we had promised to deliver a working Nomad J uekbox prototype
`
`in time to demonstrate it at the CES 2000 show in Las Vegas, NV starting on January 5, 2000.
`
`l378‘I448
`
`_ 33
`
`SONY Exhibit 1004 - Page 543
`
`SONY Exhibit 1004 - Page 543
`
`
`
`55.
`
`An e-mail sent by Dan Freeman on Dec. 28, 1,999 to Andrei Veltchev and Howard Egan
`
`regarding “ARM Initialization Pwr Up/Down for CES” shows that Dan Freeman had been working
`
`various aspects of the hardware, and his message indicates that he had solved the bootloader problem,
`
`which I had previously discussed at the Oasis Engineering Meetingon Dec. 9, 1999. See Exh. X; see
`
`also Exh. W, pp. l5-l6.
`
`56.
`
`Dan Freeman sent another e-mail on Dec. 30, I999 to a number of people including myself.
`
`See Exh. Y. This email attached a Word document, entitled “Script Guideline: Public
`
`Demonstration.” Id. The purpose of the document was to train Creative sales and marketing
`
`personnel on how to operate the Nomad Jukebox portable media players that would be ready to
`
`demonstrate at CES 2000. Id. This document provides direct evidence about what functions were
`ready for the -“demonstration” at CES 2000. Id.
`In. fact, the document provide directions for how to
`perfonn the demonstration, including the following excerpts:
`
`0
`
`0
`
`0
`
`0
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`“Lets start with the LibraryKey — show that this skips between the top library
`Screen and the ‘now playing’ Screen”
`
`“SoftKeys — repeat that the softkeys are labeled depending on the screen, and
`for example, when searching the library, they are used to expand the view via
`different categories”;
`
`“Show the use of the ScrollKeys by moving up and down lists of albums, styles,
`artists or tracks”;
`“Mention 6GB HD holds" I00 hours of CD-quality music ...”;
`“Touch the LibraryKey again to return to the top Library screen and select an
`album. (let the audience choose a style). Show how to play this directly from
`the Library by pressing the PLAY transport key”
`
`“You find and select what you want to hear and simply press Play’”
`
`“Show that the Jukebox automatically displays the “Now Playing” screen soon
`after audio has started ...see the list of tracks waiting to be played”;
`
`“Now direct the audience to the sound quality. Have them put on a headset (if
`available)”;
`
`“Remember: if the P|ayKey is pressed when the Library Screen is active, it will
`immediately play the selection and will not act as pause”
`
`“Building and playing playlists is an important part of the JukeBox’s function.
`We've shown how easy it is to immediately Play any Album from the library
`by selecting and using the PlayKey. However, whenever you repeat this action
`with the PlayKey, whatever is playing will stop and the new selection will take
`its place on the “virtual tumtable”. Show an example of this by selecting and
`playing a track from the Library followed by a second “played” track afier about
`I0 seconds.
`'
`
`“To build up a list of selections, instead of pressing the PIayKey when
`searching through the library, press the Queuekey
`This will add your
`selection to the currently playing list, and you can check this by looking at the
`
`I378?-‘I48
`
`_ 34
`
`SONY Exhibit 1004 - Page 544
`
`SONY Exhibit 1004 - Page 544
`
`
`
`list view of the P|ayScreens. After any listening session, you can choose to save
`all the music you have been listening to as a playlist for future occasions.”
`
`See Exh. Y, p. 3 (emphasis added).
`
`57.
`
`As indicated in the CVS log, I personally checked in the Oasis source code that was used in
`
`the Nomad Jukebox prototypes presented at CES 2000 in accordance with the above~cited
`
`demonstration instructions. See Exh. Z, p. 2| (showing a check-in on 01/04/2000 by Howard Egan
`
`with notes indicating “CBS Final”).
`
`58.
`
`According to schedule, the NOMAD® Jukebox was indeed presented to attendees at the
`
`Consumer Electronics Show in Las Vegas, NV, which began on January 5, 2000. See Exh. PP, Exh.
`
`QQ.
`
`1 was present at the show, and I participated in demonstrating the NOMAD® Jukebox. Duriing
`
`and after the CES 2000 show, the NOMAD® Jukebox received rave reviews. See Exh. PP, Exh. QQ.
`
`59.
`
`Presented below in Table B is a chart explaining how the Jan. 4, 2000 Oasis source code (see.
`
`Exhs. AA through 00) - which was embedded as fully operative finnware in the NOMAD® Jukebox
`
`portable media players presented at CES 2000 - implemented each and every element of claims l-33
`
`ofthe ‘433 Patent.
`
`..
`
`L A method ofselccting at The Nomad Jukebox “Script Guideline : Public Demonstration”
`least one track from a
`explains many features of the Nomad Jukebox portable audio players
`piui-aliry oft;-acks stored in
`that were demonstrated at CES 2000. The Nomad Jukebox portable
`a computer-readable '
`audio players included: a liquid crystal display screen (see Exh. Y at
`medium ofa portable media
`pp. 3-4); user control buttons such as ScrollKeys and SottKeys (see id.
`player configured to present
`at p. 3); a hard disk drive for storing songs (or tracks) (see id. at pp. 3
`sequentially a first, second,
`and 7.); electronics for playing music through headphones or a speaker
`and third display screen on
`(See id. at P. 3-)-
`the display ofthe media
`The Oasis source code (see Exhs. AA through 00) was embedded as
`player’
`fully operative firmware in the NOMAD® Jukebox portable media
`players presented at CES 2000.
`
`On or before Jan. 4, 2000, the prototype portable media player was
`tested. The test results demonstrated that the prototype successfully
`implemented all of the functions of the Jan. 4, 2000 version of the
`Nomad Jukebox source code.
`
`’ The source code files LibraryTree.cpp and LibraryTree.h implement a
`hierarchy in the form of a library tree. See Exhs. BB and CC. The
`library tree stores human-readable information that is shown in a user
`interface and also stores the actual details of where to find a -
`.
`icular
`
`l3781448
`
`_ 3 5
`
`SONY Exhibit 1004 - Page 545
`
`SONY Exhibit 1004 - Page 545
`
`
`
`Claim Elements
`
`Jan. 4, 2000 “CES Final” Oasis Source Code
`
`track in the file system. Id. A display screen is displayed for every
`level of the hierarchy. Id. Thus,,the entire display is replicated by the
`library tree. Id. This way the user-interface code traverses the tree
`and displays any items(s) at the current node. Id.
`
`A plurality of musical “tracks” are stored in a computer-readable
`medium accessed via the library tree. See file LibraryTree.cpp at Exh.
`BB, p. 2 (referring to a “tracks directory”); see also Exh. CC.
`
`As indicated by developer notes in the source code, the “Class
`CLibTreeMgr creates and makes modifications as necessary to a tree
`structure whose purpose is to make the track data on disk logically and
`quickly navigable. It is currently rebuilt every time the system boots.”
`See Exh. BB; Exh. CC.
`
`On entry into the Library display screen, the elements of the top level
`of the Library Tree are displayed by the CLCDLibPage class. See
`Exhs. DD and EE. The top level of the Library Tree has the following
`categories: “Albums,” “Artists," “Styles,” “Play Lists.” See, e.g.,
`Exh. BB, pp. l-2.
`
`display
`The display of the above elements is one example of a “first
`screen.” From here the user has the option of opening any of the
`displayed categories by pressing an ‘‘Open’' sofikey (see CLCDLib
`Page::SofikeylHandler() at Exh. DD, pp. l and 3; Exh. EE, p. l).
`
`The user moves theselection up and down lists by pressing up and
`down arrow keys, wherein the key presses are handled by the
`CLCDMgr (see Exh. FF, p. 5) which in turn tells the CLCDLibPage
`(see Exhs. DD and EE) to scroll the highlight up or down.
`
`When the user presses ‘fOpen” with the “Albums” item highlighted,
`the CLCDLibPage class (see Exhs. DD and EE) displays a current list
`of Albums, which is one example of a “second
`display screen.” As
`explained above, the user can scroll up and down the list, and either
`Open, Queue, or Play an item. At this level, the Close sottkey is also
`active. (See Exhs. DD and EE.)’
`
`When the user again presses “Open” with a selected album
`highlighted, the CLCDLibPage class (see Exhs. DD and EE)'redraws
`the screen showing a list of tracks corresponding to the album. This is
`one example of a “third display screen.” At this point CLCDLibPage '
`(see Exhs. DD and EE) again changes the soft key labels to replace
`“Open” with “Details”. Pressing a Details button for any selected
`track will display more detailed information, such as album, artist,
`duration.
`
`the plurality of tracks
`accessed according to a
`hierarchy,
`
`The source code files LibraryTree.cpp and LibraryTree.h implement a
`“hierarchy” in the fonn of a library tree. See Exhs. B and C. The
`library tree is built at system startup by traversing tracks stored in a
`file system. Id. Additionally, as the user adds tracks, the library tree
`is ex anded. Id. The libra
`tree stores human-readable information
`
`I3787448
`
`_ 36
`
`SONY Exhibit 1004 - Page 546
`
`SONY Exhibit 1004 - Page 546
`
`
`
`Claim Elements
`
`Jan. 4, 2000 “CES Final” Oasis Source Code
`
`
`
`
`
`
`
`
`
`that is shown in a user interface, and also stores the actual details of
`where to find a particular track in the file system. Id. A display screen
`is displayed for every level of the hierarchy. Id. Thus, the entire
`display is replicated by the library tree. Id. This way the user-
`interface code traverses the tree and displays any items(s) at the
`current node. Id. The library tree is implemented in class by the files
`LibraryTree.cpp (see Exh. BB) and LibraryTree.h (see Exh. CC).
`
`
`
`
`
`
`
`
`
`
`
`Tracks are “accessed” using the “hierarchy” in the fonn of a library
`tree. See Exhs. BB and CC.
`
`
`
`
`
`As indicated by developer notes in the files LibraryTree.cpp and
`LibraryTree.h, “Class CLibTreeM gr creates and makes modifications
`as necessary to a tree structure whose purpose is to make the track data
`on disk logically and quickly navigable. It is currently rebuilt every
`time the system boots.” See Exh. BB, p. l; Exh. CC, p. l.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
` The source code files LibraryTree.cpp and LibraryTree.h implement a
`the hierarchy having a
`hierarchy in the form of a library tree. See Exhs. B and C.
`plurality of categories,
`subcategories, and items
`The library tree stores human-readable infonnation that is shown in a
`respectively in a first,
`user interface, and also stores the actual details of where to find a
`second, and third level of
`particular track in the tile system. Id. A display screen is displayed
`the hierarchy, the method
`for every level of the hierarchy. Id. Thus, the entire display is
`comprising:
`
`replicated by the library tree. Id. This way the user-interface code
`
`traverses the tree and displays any items(s) at the current node. Id.
` The top level of the Library Tree (see LibraryTree.cpp ) displays the
`top level categories (i.e., “Albums,” “Artists,” “Styles,” “Play Lists”)
`on a first display screen. See, e.g., Exh. BB, pp. 1-2.
`
`
`
`
`
`
`The categories are in a first “level” of the “hierarchy.”
`When the user presses “Open” with the “Artists” element highlighted,
`
`the CLCDLibPage class (see Exhs. DD and EE) gets a current list of
`Artists fi'om an artist level of the library tree. This artist level is one
`example of a “second level” of the “hierarchy.” The list of artists is
`one example of a plurality of “subcategories” in a “second level” of
`
`the “hierarchy.”
` Now if a user presses “Open” with a particular Artist item highlighted,
`
`the CLCDLibPage class (see Exhs. DD and EE) gets a current list of
`Albums for the selected Artist from an album level of the hierarchy.
`This album level is one example of a “third level” of the “hierarchy.”
`
`The list of albums is one example of a plurality of “items” in a “third
`level” of the “hierarchy.”
`'
` Now if a user presses “Open” with a particular Album item
`highlighted, the CLCDLibPage class (see Exhs. DD and EE) gets the
`
`tracks for the selected album from a track level of the hierarchy. This
`track level is one example of a “fourth level” of the hierarchy. This
`list of tracks is another example of a plurality of “items.”
`
`
`
`
`
`l3781448
`
`_ 37
`
`SONY Exhibit 1004 - Page 547
`
`SONY Exhibit 1004 - Page 547
`
`
`
`Claim Elements
`
`Jan. 4, 2000 “CES Final” Oasis Source Code
`
`
`
`
`Highlighting a track and pressing the Play button cause the CLCDMgr
`(see Exh. FF and G) to call CNowPlayingMgr::PlayO function (see
`Exhs. HH and I1) to clear the contents of the NowPlayingQ, and
`replace it with the track and begin playing.
`
`
`
`selecting a category in the
`first display screen of the
`portable media player;
`
`
`
`
`The top level of the Library Tree (see LibraryTree.cpp ) displays the -
`top level categories (i.e., “Albums,” “Artists.” “Styles,” “Play Lists”)
`on a first display screen. See, e.g., I.-Exh. BB, pp. I-2.
`The display of the above categories is one example of a “first display
`screen.” From here the user has the option of opening any of the
`displayed categories by pressing an “Open” sofikey (see CLCDLib
`Page::SofikeylHand|er() at Exh. DD, pp. l and 3; Exh. EE, p. I).
`
`The user moves the selection up and down lists by pressing up and
`down arrow keys, wherein the key presses are handled by the
`CLCDMgr (see Exh. FF, p. 5) which in turn tells the CLCDLibPage
`(see Exhs. DD and EE) to scroll the highlight up or down.
`
`When the user presses “Open” with the “Albums” category
`highlighted in the “first display screen,” the CLCDLibPage class (see
`Exhs. DD and EE) displays a current list of Albums. This is one
`example of “selecting a category in the first display screen of the
`portable media player.”
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`When the user presses “Open” with the “Albums” category
`highlighted in the “first display screen,” the CLCDLibPage class (see
`
`.Exhs. DD and BE) displays 8 current list ofAlbums, which l5 one
`
`example of “subcategories belonging to the selected category in a
`listing presented in the second display screen.”
`
`
`
`
`dispiaying the
`subcategories belonging to
`the selected category in a
`
`listing presented in the
`second display screen;
`
`
`
`
`As explained above, the user can scroll up and down the list, and either
`Open, Queue, or Play a selected one of the albums in the list. (See
`Exhs. DD and EE.)
`
`
`
`
`When the user presses “Open” with the “Albums” category
`highlighted in the “first display screen," the CLCDLibPage class (see_
`
`Exhs. DD and EE) displays a current list of Albums, which is one
`example of “subcategories belonging to the selected category in a
`
`listing presented in the second display screen.”
`
`
`
`
`The user can scroll up and down list of Albums, and activate either
`Open,