`
`The application design is a standard formbased MFC application. This dialog box has two tree
`controls, one for MP3s and one for speakers.
`When "Refresh View" button is pressed, the application constructs two networks queries. First it
`submits a query for MP3s, optionally constrained by a user supplied "genre" and "artist". For example,
`if the user typed "Nirvana" into the "artist" field, the application would construct a query string that
`looks something like "query:ext='mp3' AND artist='Nirvana'". Then the application uses a network
`browser to submit the query. The response is a list of network objects representing the MP3s, which
`the application uses to populate the "music files" tree control. Next, the application submits a query for
`all network speakers. It uses, "query:RpcClass=='Speaker'", which asks for all network objects that
`support the "Speaker" remote procedure call interface. It uses these values to populate the speakers
`tree control.
`When the user presses the "Play" button, the application creates a "session" on the selected music file
`and a session on each checked speaker. It then create a "data flow" from the music file session to the
`speaker sessions. The "data flow" is started, which will start the audio.
`When the user presses the "Stop" button, the application stops the data flow and destroys it.
`
`The code for this application is included and is located at 'bdk\radkit
`
`Page 1 of 1
`
`Implicit Exhibit 2026
`Sonos v. Implicit, IPR2018-0766, -0767
`
`