Warning, /libraries/phonon/doc/IDEAS is written in an unsupported language. File is not indexed.

0001 MediaInfo class
0002 ===============
0003 
0004 It might be nice to have a class that gives information about MediaSource
0005 objects without having to use MediaObject for it. Something like QFileInfo for
0006 QFile. MediaObject could also return a list of MediaInfo objects for all the
0007 MediaSource objects in the queue.
0008 
0009 Rationale: The app then can get info about length and substreams so that it can
0010 set up everything correctly for the next "file" in the queue.
0011 
0012 
0013 - on hotplug of a USB audio/video device:
0014   1. If the device is plugged in for the first time
0015     Check whether the backend now provides new device selections. If yes, open
0016     up central config with the page that allows selection of the default
0017     devices. Tell the user what new options are available.
0018     Allow the user to set preference of devices: If device USB-Headset is
0019     available use that, else use builtin speakers.
0020 
0021  device info persistence
0022 =========================
0023 On device selections: should the user be presented with options that are
0024 currently not available? It might actually be confusing to select a device that
0025 is not usable at the moment.
0026 
0027 Some situations:
0028 (device A is always available)
0029 - user plugs device B
0030 - selects device B as default
0031 next day: device B unplugged
0032 - phonon falls back to device A as B is not available and shows a passive popup
0033   informing the user about the fallback
0034 - user opens config dialog
0035 - device B still shows up as default
0036 - selects device A, closes dialog
0037 - opens dialog again
0038 - device B is gone...
0039 - user plugs device B
0040 - device B reappears
0041 
0042 The Backend has to provide the information about devices. Those can map directly
0043 to hardware or a soundserver or some other virtual device. The Backend has to
0044 have some unique identifier. For example the ALSA devices could be identified
0045 using the ALSA device names (either hw:0, hw:1 or aliases from asoundrc). OSS
0046 devices could be identified using /dev/dsp, /dev/dsp1 and so on.
0047 => the backend internal uid is a string
0048 In the Frontend all that is needed is a name and a description of the device
0049 (both translated to the current locale) and a unique identifier to talk to the
0050 backend. This identifier could be the same as used internally by the Backend,
0051 but doesn't have to be.
0052 
0053  "lowlevel" audio I/O
0054 ======================
0055 ByteStream is a buffered stream, and as therefore completely useless for cases
0056 where an application wants to write audio data to the soundcard/-system with low
0057 latency.
0058 => PcmInStream and PcmOutStream
0059 
0060 
0061 ============================================================================
0062 = Ideas for "useless but nice" things (until somebody can convince me that =
0063 = they're useful)                                                          =
0064 ============================================================================
0065 
0066  Video Output
0067 ==============
0068 Add another VideoOutput that can be used directly with QGraphicsView by creating
0069 a QGraphicsItem subclass.
0070