`
`Late Basic MP3 playback (RAM) ... (disk) ... Rev 2 Proto, in form factor ... Nov”). The reference
`
`to “Rev 2 Proto, in form factor” refers to a second prototype that would later be implemented having
`the size and shape as desired for the ultimate Nomad Jukebox product.
`/d. Theearlier prototypes
`
`were not “form factor,” meaning they were larger and square-shaped and not designed toactuallyfit
`
`in the plastic casing that was being designed. See, e.g., Exh. T.
`
`At the Oasis Engineering Meeting on October 13, 1999, | reported on certain issues
`
`2 3
`
`8.
`
`concerning the embedded software. See Exh. W, p. 2. My co-inventors on the *433 Patent, David
`
`Bristow and Ron Goodman, werealso present at the Oasis Engineering Meeting on October 13, 1999,
`
`wetalked about efforts in “storyboarding”the user interface.
`
`/d., p. 3.
`
`At another Oasis Engineering Meetingthat took place sometime after Oct. 20, 1999, but
`39.
`before Dec. 9, 1999, one of my colleagues gave a status report on the embedded software
`
`development, reporting that: “Howard [Egan] has been working onfile system ... The basics work...
`
`Load,save, create files”; “Playback mgr, DSP Mgr. ... MP3 decode works in Playback mgr”; and
`
`“Ron’s UI stuff integrated into Oasis.” See Exh. W,p. 10.
`
`40.
`
`At a subsequent meeting that took place sometime after Dec. 2, 1999, but before Dec.9,
`
`1999, Mr. Freeman reported on the status of the Oasis hardware development, indicating that: “Oasis
`
`PCBin assembly”; “test fixture in fab Thu | 2/2/99”; “DVT plan being written”; “Prog guide/Theory
`of Ops doc being written.” See Exh. W, p. 12. The notes also indicate that| waspresentat this
`meeting, and that | said “MP3 decode from disk works.” /d. These notes indicate to me that in the
`
`first week of December, 1999, I received a form-factor prototype that I coulduse to begin testing the
`
`Oasis operating system in firmware on a hardware prototype, as opposed to by using an emulator.
`
`/d.
`
`. The notes also say that | wanted Scott W. “commit to what can be delivered for CES.” Jd. The
`
`notation “CES”refers to the upcoming Consumer Electronics Show 2000 (“CES 2000”), which was
`scheduled to take place in Las Vegas, NV onJan. 5 through Jan. 10, 2000. The Oasis R&D team had
`already been notified sometime in Septemberof 1999 that Creative was planningto introduce the
`
`Nomad Jukebox at CES 2000.
`
`It was understood by all members of the Oasis R&D team thatthis
`
`meant we needed to have a robust working prototype fully tested and ready to presentat least a day
`
`before the show wasscheduled to begin on Jan. 5, 2000. So, the target date was set for Jan. 4, 2000.
`
`41.
`
`At a meeting on Dec. 9, 1999, | gave a status update on the developmentofthe Oasis
`
`embedded software. See Exh. W, pp. 14-15. Prior to that day, the hardware sub-group had provided
`
`13787448
`
`- 28
`
`SONYExhibit 1004 - Page 538
`
`SONY Exhibit 1004 - Page 538
`
`
`
`mewith a functional hardware prototype having all the same components shownin Exh. Q.
`
`I know
`
`this based on my memory ofthe events, and also because Mr. Freeman’s notes of Dec. 9, 1999
`
`indicate that | talked about the need to integrate “boot loader” software into the system. See Exh. W,
`
`~
`
`p. 15 (stating “Intertrust secure Bootloader — we have to write bootloader. Intertrust portion in read-
`
`only part of the Boot ROM”).
`
`
`
`42. Using the prototype Nomad Jukebox provided to me priortoDecember 9, 1999, 1 had begun
`
`testing the Oasis operating system. See, e.g. Exh. W,p. 15 (stating “U] managertask running, button
`
`manager ... Library traversal system in place ...”) Prior to Dec. 9, 1999, | had beguna testing
`process wherein I compiled the Oasis source code, and executedit as firmware on the ARMprocessor
`of the prototype. See Exh. Q.
`In conjunction with testing the Oasis source code, | 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 photographstaken recently of the Oasis Test Fixture Board | began
`
`
`
`using priortoDec. 9, 1999 for purposesof testing the Oasis operating system. /d. I note the Oasis
`
`
`
`Test Fixture Board bears a copyrightdate of 1999. See Exhibit U. This test board was designed by
`Mr. Freemanand others specifically for the purpose oftesting the source code for the embedded
`
`software, including the Oasis operating system. See, e.g. Exh. W,p. 12 (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 shownin exhibit U. See, e.g. Exh. W, p. 12; see also Exh. U. The
`
`notation “DVTplan being written” refers to a plan for a device verification test (“DVT”) for verifying
`
`the operation of the prototype Nomad Jukebox. See, e.g. Exh. W, p. 12; see also Exh. U.
`
`43,
`
`Prior to Dec. 9, 1999,| begantesting the Oasis operating system by compiling the Oasis
`
`source code, and downloading . the compiled code via the JTAG adaptor to the ARM processorofthe
`
`prototype. See Exh. Q, Exh. U. The Oasis block diagram of exhibit Q showsthe basic components
`
`of the prototype. As mentioned above, Mr. Freeman’s notes of Dec. 9, 1999 indicate that I talked
`
`aboutthe need to integrate “boot loader” software into the prototype. See Exh. W,p. 15 (stating
`
`“Intertrust secure Bootloader — we have to write bootloader. Intertrust 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 ofthe
`
`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 controlall
`
`13787448
`
`.-29
`
`SONYExhibit 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 wasnot yet written andinstalled into the boot flash memory. See Exh. Q;
`
`Exh. W, p. 15. In order to proceed with the testing without the boot loader, upon power-up of the
`prototype, | configured the PC to control the ARM processoron 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 meto fully test the Oasis operating system,
`
`including all of the functions described aboveaspracticing claims 1-33 of the ‘433 Patent.
`
`44,
`
`Using the techniques described in the previous paragraph, | was able to power-up and
`
`initialize the Nomad Jukebox prototype without having a bootloader, and thus | was able to test the
`
`compiled Oasis operating system by executingit directly on the prototype without the use of any
`
`software emulation. See, Exh. W, pp. 14-15; see also Exh. U. Mr. Freeman’s notes of Dec. 9, 1999
`
`also state “UI Managertask running, button manager... library traversal system in place.” See, Exh.
`
`W,pp. 14-15. This indicates to methat prior to Dec. 9, 1999, I had been able to power-up andtest
`
`parts of the Oasis operating system 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
`
`goalof publicly demonstrating a Nomad Jukebox prototype at CES 2000, which was atthattimeless
`
`than a month away.
`
`45,"
`
`Mr. Freeman’s notes on the report 1 gave on Dec. 9, 1999 also state “want‘limping along’
`
`1 coined the term “limping
`unit that can play songs next week (old boards).” See, Exh. W, pp. 14-15.
`along”unit on or aboutthe time of the Dec. 9, 1999 meetingto refer to astand-alone Nomad Jukebox
`prototype detached from the Oasis Test Fixture Board and othertest equipment, that would could
`properly execute the Oasis operating system. See Exhs. AA through OO. Onceagain, our goalin
`
`Decemberof 1999 wasto publicly demonstrate a Nomad Jukebox prototype at CES 2000, which was
`
`at that time less than a month away.| called it a “limping along” unit sort of as a term of endearment
`
`because the Oasis R&D was well awarethatany early prototype is likely to have sporadic bugs or
`
`glitches. However, weall took very serious the prospect of demonstrating a prototype at CES 2000,
`
`whichis the largest and most important annual consumerelectronics show in North America. As
`
`such, we knewthat the stakes were extremely high because it would have been a major
`
`embarrassmentif any of the Nomad Jukebox prototypes presented at CES 2000 were to “crash.”
`
`46.
`
`| During a meeting on Dec. 15, 1999, I gave another update on developmentofthe Oasis
`
`embedded software. See Exh. W, pp. 16-17. Mr. Freeman’s notesindicate “’ Limping along’ unit
`
`13787448
`
`- 30
`
`SONYExhibit 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.” /d.,
`
`p.17. This meansthat the bootloader code was still not installed.
`
`47.
`
`Based on my memory, myinspection of the CVS check-in logs (see Exh. Z), my inspection
`
`of the Dec. 14, 1999 Oasis source code (see Exhs. A through O), and also based on Mr. Freeman’s
`
`notes on Dec. 9, 1999 (see Exh. W at pp. 14-15), | am sure that at least as of Dec. 14, 1999, I had
`
`fully tested the Oasis operating system — which implementedall of claims 1-33 of the 433 Patent - as
`
`actual firmware running on a Nomad Jukebox prototype. See Exh. W,pp. 14-15 (stating “UI
`
`Managertask running, button manager... library traversal system in place.”) It is true that as of Dec.
`
`9, 1999, many aspects of the prototype needed to be de-bugged,and it is also true that the Oasis
`
`operating system needed to be loaded by J1AG control on power-up due to the absence of a
`
`bootloader. However, the bootloader wasnot essential to demonstrating that the Oasis operating
`
`system (including all of the functionality described above in Table A) was workingforits intended
`
`purpose. Therefore, as of Dec. 14, 1999, | 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. 14, 1999, before | began testing the Oasis operating system as compiled
`
`firmware on a Nomad Jukebox prototype (as the notes show I was doing throughoutthefirst few
`
`weeks of Decemberof 1999), | had previously tested the Oasis operating system (includingall of the
`
`functionality described above in Table A) using a software emulator. For reasons that will be
`
`understood by anyoneskilled in the developmentof firmware in the 1999 time period, | would not
`
`have beguntesting the firmware withoutfirst testing the source code in an emulator environment,
`
`where it was mucheasier to debug.
`
`Diligence Towards A Second Reduction to Practice on January 4, 2000
`
`49.
`
`As explained above,| believe that the Dec. 15, 1999 Oasis source code demonstrates
`
`complete conception of claims | -33 of the °433 Patent (see Table A, above) at least as early as Dec.
`
`15, 1999.
`
`| also believe that the above-described emulation testing and/or the firmware testing was
`
`sufficient to demonstrate that the inventionsrecited in claims 1-33 of the 433 Patent were working
`for the intended purpose.
`
`50.
`
`Alternatively, | submit that: (1) the Jan. 4, 2000 Nomad Jukebox prototypes demonstrated at
`
`CES 2000 constituted an actual reductionto practice of the inventions of claims 1-33 of the “433
`
`Patent; (2) the Oasis R&D team was diligentin its effort to reduce to practice the inventions of claims
`
`13787448
`
`-3]
`
`SONYExhibit 1004 - Page 541
`
`SONY Exhibit 1004 - Page 541
`
`
`
`1-33 starting on Dec. 15, 1999 and proceeding on a daily basis up until the time of the actual
`
`reduction to practice on Jan. 4, 2000.
`
`Sl.
`
`As explained above, during our developmentof the Nomad Jukebox in Decemberof 1999,
`
`we were working toward a very aggressive internaltarget 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. 15, 1999, the Oasis R&D team including Mr.
`
`Freeman began working so hard and fast toward the CES 200 target date that Mr. Freeman largely
`
`stopped taking meaningful notes in his notebook in the time period between Dec. 15, 1990 and
`
`January 11, 2000. See Exh. W, pp. 16-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. 15, 1999 and Jan. 4, 2000.
`
`53.
`
`Exhibit Z is a copy of a Log of all CVS check-in activity for the Oasis source code between
`
`Nov.r 10, 1999 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/14/99
`
`(see, e.g., Exh. Z, p. 4 showing a check-in by Howard Egan with notes indicating “Resynchronize
`
`after adding button scanner, transfer agent, now playing manager, LibTreeManageretc.); 12/16/99
`
`(see, e.g., Exh. Z, p. 196 showing a check-in by Andrei Veltchev with notes indicating “delay inserted
`
`to accommodate the D12's timing requirements”); 12/17/99 (see, e.g., Exh. Z, p. 4 showing a check-in
`
`by Howard Egan with notes indicating ‘First cut with playback manager hookedto 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”); 12/20/99 (see, e.g., Exh.
`
`Z, p. 11 showing a check-in by Howard Egan with notesindicating “Miscellania”); 12/22/99(see,
`
`e.g., Exh. Z, p. 70 showing a check-in by Howard Egan with notes indicating “Moved from sysmgr’”);
`
`12/23/99 (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. 11 showing a check-in by Gerald I. with notes indicating “Fixed sometransport issues”);
`12/26/99 (see, e.g., Exh. Z, p. 10 showing a check-in by Howard Egan with notes indicating “Fixed
`several transport key issues, and changed fonts and LCD Displaysizeto 6 lines (total)”); 12/27/99
`
`(see, e.g., Exh. Z, p. 10 showing a check-in by Howard Egan with notes indicating “Added status line
`class to LCDPagefor use by both nowplaying screen and qlist screen. Added elapsed playing time
`calculations and functions to dsp managerfor use bystatus line.”); 12/28/99 (see, e.g., Exh. Z, p. 35
`
`13787448
`
`- 32
`
`SONYExhibit 1004 - Page 542
`
`SONY Exhibit 1004 - Page 542
`
`
`
`showing a check-in by Howard Egan with notesindicating “Miscellaneous bug fixes”); 12/29/99
`
`(see, e.g., Exh. Z, p. 35 showing a check-in by Howard Eganwith notes indicating “Added fix to
`filesystem to take aninitial file size on creation. "Cause double indirect is broken currently"”’);
`
`12/30/99 (see, e.g., Exh. Z, p. 35 showing a check-in by Howard Egan with notes indicating “Better
`
`fonts, cosmetics”); 12/31/99 (see, e.g., Exh. Z, p. 5 showing a check-in by Howard Egan with notes
`indicating “Added INode debug output statements.”); 01/01/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”); 01/03/2000 (see, e.g., Exh. Z, p. 15 showing a check-in by Howard Egan with notes
`
`indicating “CES Release”); and 01/04/2000 (see, e.g., Exh. Z, p. 21 showing a check-in by Howard
`
`Egan with notes indicating “CES Final”).
`
`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. 14, 1999 and Jan. 4, 2000, except the following
`
`days: Dec. 15, 1999; Dec. 19, 1999; Dec. 21, 1999; Christmas day, 1999; 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. 14, 1999 and Jan. 4, 2000, with the possible exception of
`
`Christmas day, 1999.
`
`I worked on revising and testing the Oasis operating system on every single
`
`day in this time period, except Christmas day.
`
`In addition, | 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 embeddedsoftware developmentactivity on that date because the Oasis source code developers
`
`followed the standard practice of testing all source code revisions before checking them in, andthis
`wasoften a complicated and time consumingprocess.
`I note that there was a very well attended
`
`Oasis Engineering Meeting on Dec. 15, 1999. See Exh. W, pp. 16-18. Mr. Freeman’s notebook
`
`showsthat at least he was working on developmentof the Nomad Jukebox on Dec. 19, 1999, See
`
`Exh. W, pp. 18-19.
`
`I am certain | worked that day as well. Thus, the only daysin the period for
`
`which | cannot find direct evidence of work activity are: Dec. 21, 1999; Jan. 2, 2000 (which was a
`
`Sunday); and Christmas day, 1999. However,as I said, I am certain that I personally worked on
`every day between Dec. 14, 1999 and Jan. 4, 2000, except Christmas day.
`In this time period, |
`estimate that | 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 workedat a
`
`similar pace in developing various other components of the Nomad Jukebox. As explained,
`
`the
`
`reason forthis tireless pace was that we had promisedto deliver a working Nomad Juekbox prototype
`
`in time to demonstrate it at the CES 2000 show in Las Vegas, NV starting on January 5, 2000.
`
`13787448
`
`-33
`
`SONYExhibit 1004 - Page 543
`
`SONY Exhibit 1004 - Page 543
`
`
`
`55.
`
`Ane-mail sent by Dan Freeman on Dec. 28, 1999 to Andrei Veltchev and Howard Egan
`
`regarding “ARM Initialization Pwr Up/Downfor 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 | had previously discussed at the Oasis Engineering Meeting’on Dec. 9, 1999. See Exh. X; see
`
`also Exh. W,pp. 15-16.
`
`56.
`
`Dan Freemansent another e-mail on Dec. 30, 1999 to a numberof people including myself.
`
`See Exh. Y. This email attached a Word document,entitled “Script Guideline: Public
`
`Demonstration.” Jd. The purpose of the document wasto 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. Jd. This document provides direct evidence about what functions were
`ready for the “demonstration” at CES 2000.
`Id.
`Infact, the document provide directions for how to
`perform the demonstration, including the following excerpts:
`
`e
`
`e
`
`e
`
`e
`e
`
`e
`e
`
`e
`
`e
`
`e
`
`e
`
`©“Lets start with the LibraryKey — showthat 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 searchingthe library, they are used to expand the view via
`different categories”;
`‘Show the use of the ScrollKeys by moving up and downlists of albums,styles,
`artists or tracks”;
`“Mention 6GB HD holds 100 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 howto play this directly from
`the Library by pressing the PLAYtransport 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 PlayKey is pressed when the Library Screenis 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 howeasyit is to immediately Play any Album from the library
`by selecting and using the PlayKey. However, whenever you repeat this action
`with the PlayKey, whateveris playing will stop and the newselection will take
`its place on the “virtual turntable”. Show an example ofthis by selecting and
`playing a track from the Library followed by a second “played”track after about
`10 seconds.
`,
`
`“To build up a list of selections, instead of pressing the PlayKey when
`searching throughthe library, press the QueueKey ... This will add your
`selection to the currently playing list, and you can checkthis by lookingat the
`
`13787448
`
`- 34
`
`SONYExhibit 1004 - Page 544
`
`SONY Exhibit 1004 - Page 544
`
`
`
`list view of the PlayScreens. After any listening session, you can chooseto save
`all the music you have beenlistening to as a playlist for future occasions.”
`
`See Exh. Y, p. 3 (emphasis added).
`57.
`As indicated in the CVSlog, | 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. 21 (showing a check-in on 01/04/2000 by Howard Egan
`
`with notes indicating ““CES 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.
`
`| was present at the show,and| participated in demonstrating the NOMAD® Jukebox. Durling
`
`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 OO) - which was embeddedas fully operative firmware in the NOMAD® Jukebox
`
`portable media players presented at CES 2000 - implemented each and every element of claims 1-33
`
`of the °433 Patent.
`
`Table B
`
`~- Claim'Elements.
`
`|
`
`~~~
`
`Jan.4, 2000 “CES Final”Oasis SourceCode
`
`t. A method ofselecting at|The Nomad Jukebox “Script Guideline : Public Demonstration”
`least one track from a
`explains many features of the Nomad Jukebox portable audio players
`plurality of tracks 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 SoftKeys(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 headphonesor a speaker
`and third display screen on|(seeid.at p. 3.).
`the display of the media
`player.
`The Oasis source code (see Exhs. AA through OO) was embedded as
`fully operative firmware in the NOMAD® Jukebox portable media
`players presented at CES 2000.
`
`interface, and also stores the actual details of where to find a particular
`
`Onor 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 Jukeboxsource code.
`
`The source codefiles 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 shownin a user
`
`13787448
`
`- 35
`
`SONYExhibit 1004 - Page 545
`
`SONY Exhibit 1004 - Page 545
`
`
`
`
`
`Claim Elements
`
`Jan. 4, 2000 “CES Final” Oasis Source Code
`
`
`
`/d. A display screenis displayed for every
`track in the file system.
`
`/d. Thus, the entire display is replicated by the
`level of the hierarchy.
`library tree. Jd. This way the user-interface code traverses the tree
`
`and displays any items(s) at the current node. Jd.
`
` A plurality of musical “tracks” are stored in a computer-readable
`medium accessedvia thelibrary tree. See file LibraryTree.cpp at Exh.
`
`BB, p. 2 (referring to a “tracks directory”); see also Exh. CC.
`
` Asindicated by developer notes in the source code, the “Class
`CLibTreeMegr 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.
`
`The display of the above elements is one example ofa “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::Softkey | Handler() at Exh. DD, pp.
`1 and 3; Exh. EE,p. 1).
`
`
`
`
` Onentry into the Library display screen, the elements of the top level
`of the Library Tree are displayed by the CLCDLibPageclass. See
`
`Exhs. DD and EE. Thetop level of the Library Tree has the following
`
`categories: “Albums,” “Artists,” “Styles,” “Play Lists.” See, e.g.,
`
`Exh, BB,pp.1-2.
`
`
`
`
`
`
`The user moves the:selection up and downlists by pressing up and
`downarrow keys, wherein the key presses are handled by the
`
`CLCDMgr(see Exh. FF, p. 5) whichin turn tells the CLCDLibPage
`
`(see Exhs. DD and EE)to scroll the highlight up or down.
` Whenthe user presses “Open” with the “Albums”item highlighted,
`the CLCDLibPageclass (see Exhs. DD and EE)displays a currentlist
`
`of Albums, which is one example of a “second ... display screen.” As
`
`explained above,the user can scroll up and downthelist, and either
`
`Open, Queue,or Play an item. Atthis level, the Close softkey is also
`
`active. (See Exhs. DD and EE.)
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Whenthe user again presses “Open”with a selected album
`highlighted, the CLCDLibPageclass (see Exhs. DD and EE)redraws
`the screen showinga list of tracks corresponding to the album. Thisis
`one example of a “third display screen.” At this point CLCDLibPage ~
`(see Exhs. DD and EE)again changesthe 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 source codefiles LibraryTree.cpp and LibraryTree.h implement a
`the plurality of tracks
`“hierarchy” in the form ofa library tree. See Exhs. B and C. The
`accessed according toa
`
`
`
`library tree is built at system startup by traversing tracks stored in a
`hierarchy,
`
`
`file system. Jd. Additionally, as the user adds tracks, the library tree
`
`is expanded.
`/d. Thelibrary
`tree stores human-readable information
`
`
`
`13787448
`
`- 36
`
`SONYExhibit 1004 - Page 546
`
`SONY Exhibit 1004 - Page 546
`
`
`
`Claim Elements
`
`Jan. 4, 2000 “CES Final” Oasis Source Code
`
`that is shownin a userinterface, and also stores the actualdetails of
`whereto find a particular track in the file system.
`/d. A display screen
`is displayed for every level of the hierarchy.
`/d. Thus, the entire
`display is replicated by the library tree. /d. This way the user-
`interface code traverses the tree and displays any items(s) at the
`current node.
`/d. Thelibrary tree is implementedin classbythe files
`LibraryTree.cpp (see Exh. BB) and LibraryTree.h (see Exh. CC).
`
`Tracksare “accessed” using the “hierarchy”in the form ofa library
`tree. See Exhs. BB and CC.
`
`Asindicated by developer notes in the files LibraryTree.cpp and
`LibraryTree.h, “Class CLibTreeMgrcreates and makes modifications
`as necessary to a tree structure whose purposeis to make the track data
`on disk logically and quickly navigable.
`It is currently rebuilt every
`time the system boots.” See Exh. BB, p. 1; Exh. CC,p. 1.
`
`the hierarchy having a
`plurality of categories,
`subcategories, and items
`respectively in a first,
`second,andthird level of
`the hierarchy, the method
`comprising:
`
`The source codefiles LibraryTree.cpp and LibraryTree.h implement a
`hierarchy in the form of a library tree. See Exhs. B and C.
`
`Thelibrary tree stores human-readable information that is shown in a
`user interface, and also stores the actual details of where to find a
`particulartrack in the file system. Jd. A display screen is displayed
`for every level of the hierarchy.
`/d. Thus, the entire display is
`replicated by the library tree. /d. This way the user-interface code
`traverses the tree and displays any items(s) at the current node.
`/d.
`
`The top level of the Library Tree (see LibraryTree.cpp ) displays the
`top level categories (i.e., “Albums,” “Artists,” “Styles,” “Play Lists’’)
`onafirst display screen. See, e.g., Exh. BB, pp. 1-2.
`Thecategories are inafirst “level” of the “hierarchy.”
`
`list of tracks is another example of a plurality of “items.”
`
`Whenthe user presses “Open”with the “Artists” element highlighted,
`the CLCDLibPageclass (see Exhs. DD and EE)gets a currentlist of
`Artists from an artist level of the library tree. This artist level is one
`example of a “secondlevel”of the “hierarchy.” The list ofartists is
`one example ofa plurality of “subcategories” in a “second level” of
`the “hierarchy.”
`
`Now if a user presses “Open” with a particular Artist item highlighted,
`the CLCDLibPageclass (see Exhs. DD and EE)gets a currentlist of
`Albumsfor the selected Artist from an album level of the hierarchy.
`This album level is one example ofa “third level” of the “hierarchy.”
`Thelist of albumsis one example of a plurality of “items”in a “third
`level” of the “hierarchy.”
`
`Nowif 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 fromatrack level of the hierarchy. This
`track level is one example of a “fourth level” of the hierarchy. This
`
`13787448
`
`-37
`
`SONYExhibit 1004 - Page 547
`
`SONY Exhibit 1004 - Page 547
`
`
`
`Claim Elements
`
`Jan. 4, 2000 “CES Final’ Oasis Source Code
`
`selecting a category in the
`first display screen of the
`portable media player;
`
`Highlighting a track and pressing the Play button cause the CLCDMgr
`(see Exh. FF and G) to call CNowPlayingMgr::Play() function (see
`Exhs. HH and11) to clear the contents of the NowPlayingQ, and
`replace it with the track and begin playing.
`
`Onentry into the Library display screen, the elements ofthe top level
`of the Library Tree are displayed by the CLCDLibPage class. See
`Exhs. DD and EE.
`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.
`Thedisplay of the above categories is one example ofa “first display
`screen.” From here the user has the option of opening any of the
`displayed categories by pressing an “Open” softkey (see CLCDLib
`Page::Softkey | Handler() at Exh. DD, pp.
`| and 3; Exh. EE,p. 1).
`
`The user moves the selection up and downlists 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)toscroll the highlight up or down.
`
`Whenthe user presses “Open” with the “Albums”category
`highlighted in the “first display screen,” the CLCDLibPageclass (see
`Exhs. DD and EE)displays a currentlist of Albums. This is one
`exampleof“selecting a category in thefirst display screen of the
`portable media player.”
`
`
`
`Whenthe user presses “Open” with the “Albums”category
`displaying the
`subcategories belonging to|highlighted in the “first display screen,” the CLCDLibPage class (see
`the selected category in a
`-Exhs. DD and EE)displays a currentlist of Albums, which is one
`listing presented in the
`example of “subcategories belonging to the selected category in a
`second display screen;
`listing presented in the second display screen.”
`As explained above, the user can scroll up and downthelist, and either
`Open, Queue, or Play a selected one of the albumsin thelist. (See
`Exhs. DD and EE.)
`
`selecting a subcategory in
`the second display screen;
`
`Whenthe userpresses “Open” with the “Albums” category
`highlighted in the “first display screen,” the CLCDLibPageclass (see
`Exhs. DD and EE)displays a currentlist 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 downlist of Albums, andactivate either
`Open, Queue, or Play buttons to select one