Difference between revisions of "InteractionSystem"

From VideoLAN Wiki
Jump to navigation Jump to search
 
Line 1: Line 1:
 
== Goal ==
 
== Goal ==
 +
 +
Reference : https://trac.videolan.org/vlc/ticket/27
 +
 +
The goal is to implement a system to:
 +
 +
* Alert the user of critical errors (cannot play file). Should be blocking.
 +
* Ask the user a question
 +
** Are you sure?
 +
** Try to Fix index of avi?
 +
** Overwrite File ?
 +
* Inform the user, without disturbing him. (Buffering stream). This might require a displaytime or something. Because how do we know how long this information should be displayed? Also think of buffering 0-100%
 +
* present a user/passwd dialog when we get an authentication failure on a stream.
  
 
== Roadmap ==
 
== Roadmap ==
 +
 +
Scheduled for implementation in 0.8.5
 +
 +
Some work will have to be done in all interfaces
  
 
== Objects architecture ==
 
== Objects architecture ==
  
 
* Interaction object
 
* Interaction object
  - void * pointer for interface specific stuff
+
** void * pointer for interface specific stuff
  
 
* Widget object
 
* Widget object
  - for input, associated with a vlc_value_t
+
** for input, associated with a vlc_value_t
  
 
* Interaction manager
 
* Interaction manager
  - Maintains a list of currently active interaction displays
+
** Maintains a list of currently active interaction displays
  - When a new interaction is requested, forward the request to the  
+
** When a new interaction is requested, forward the request to the interface (ASYNCHRONOUS !)
    interface (ASYNCHRONOUS !)
+
** Asks the interface to show/modify/remove a display
  - Asks the interface to show/modify/remove a display
+
** Active polling ?
  - Active polling ?
 
  
  - Signalling thhe interface :  
+
* Signalling the interface :  
      - function pointer
+
** function pointer
- easier to know if interface does not support
+
*** easier to know if interface does not support
-
+
** variable
      - variable
+
*** cleaner ?  
- cleaner ?  
+
** "control" function
- "control" function
 
  
 
* Requester  
 
* Requester  
  - Builds the interaction object
+
** Builds the interaction object
  - Add it to the interaction manager request queue.  
+
** Add it to the interaction manager request queue.  
      - Queue or single with lock ?   
+
*** Queue or single with lock ?   
      - Analyze deadlock possibility
+
*** Analyze deadlock possibility

Revision as of 15:15, 15 September 2005

Goal

Reference : https://trac.videolan.org/vlc/ticket/27

The goal is to implement a system to:

  • Alert the user of critical errors (cannot play file). Should be blocking.
  • Ask the user a question
    • Are you sure?
    • Try to Fix index of avi?
    • Overwrite File ?
  • Inform the user, without disturbing him. (Buffering stream). This might require a displaytime or something. Because how do we know how long this information should be displayed? Also think of buffering 0-100%
  • present a user/passwd dialog when we get an authentication failure on a stream.

Roadmap

Scheduled for implementation in 0.8.5

Some work will have to be done in all interfaces

Objects architecture

  • Interaction object
    • void * pointer for interface specific stuff
  • Widget object
    • for input, associated with a vlc_value_t
  • Interaction manager
    • Maintains a list of currently active interaction displays
    • When a new interaction is requested, forward the request to the interface (ASYNCHRONOUS !)
    • Asks the interface to show/modify/remove a display
    • Active polling ?
  • Signalling the interface :
    • function pointer
      • easier to know if interface does not support
    • variable
      • cleaner ?
    • "control" function
  • Requester
    • Builds the interaction object
    • Add it to the interaction manager request queue.
      • Queue or single with lock ?
      • Analyze deadlock possibility