Model-View-Controller in new Client/Server framework and multihead displays? (1 Viewer)

MariachiElf

Portal Member
May 23, 2006
17
0
USA / Los Angeles, CA
Hi there,

I'm extremely excited about the new Client/Server model for MP.
I am so excited about getting it to work after I got the server going on one computer then streaming out to another client computer. Great work by all involved (even in my less supported ATSC setup)!

I'm envisioning a system, and I'm hoping MP can help me, where:
1) Servers publish "sources" (could also be called "channels" or "feeds")
2) Clients have one or more instances of "controllers" and/or "monitors (could also be called "viewports" or "playback devices")
3) "Zones" are the abstract/virtual area where sources, controllers, and monitors are all bound together. I think of a zone as an area where any controller could attach to any source and/or monitor and manipulate them.

"Source" - Is ultimately what this all about, it's a content generator of some type
"Sources" are typically thought of as the CaptureCards and video/audio files/streams, however, the on screen displays and controls that we're used to seeing when an MP client starts up would also be a source (it's also a controller and a monitor for itself making it somewhat difficult to distinguish the parts when it's all on the same computer)

"Monitor" - is bound to a "Source", whatever that source is sending out they dutifully playback/display in whatever method is appropriate for that monitor.
Use a "Controller" to change the "Source" a "Monitor" is associated with.

"Controllers" - attach to and manipulate the settings of a "Source" (like what channel is currently tuned) and monitors (like the volume, contrast, brightness). The same controller instance, can control any device in the same zone, so it can detach from one source or monitor and attach to a different source or monitor. When a controller dettaches, it leaves the settings as they were, so a monitor watching channel 4 would be left watching channel 4 even if the controller was now manipulating some other capture card or monitor.


From these concepts the "Controller", "Source", and "Monitor" it's easy to separate so they could all be on separate devices. Whether that be different devices attached to the same computer (like multihead displays), or different computers (like controlling playback on an HTPC hooked up to a LCD from a WiFi tablet PC sitting on the coffee table).


Given the above design it should be possible to create any of the following setups:

Setup 1) 1 Computer with two monitors, 1 controller and 1 playback
Show separation of the control monitor from the playback monitor.
- On one display is a touch pad presenting the controls for MP
- This display is also the Controller
- On another display is the monitor (an HD LCD screen in full screen mode)
- All devices are in a single zone, the Controller, binds the monitor a CaptureCard source, the line out port on the sound card could be setup as another monitor for audio content in addition to the speaker out that works with the video output.
By selecting a different channel via the MP controller window, the monitor on the LCD TV gets changed. Looking at MP currently it seems that the menus to manipulate the channel selection are the same as the display where the playback occurs. I'm envisioning a design where these are clearly separated (though the existing functionality can be duplicated). I think I've seen the concepts of this separation in the code, but once I get to the Interface Plugin level the separation seems to get blurred.

Setup 2) Three computers, 1 server, 1 controller client, 1 viewer client.
Control a different MP client from another device
- I use a WiFI enabled tablet PC or smart phone running MP as the control display
- I use an HTPC with a dedicated LCD display and audio as a monitor for playback
Changing channels on the tablet/smart phone results in changes on the playback client.

Setup 3) Taking it all way beyond sanity - driving multihead displays with different channels and multi-zone audio
By configuring many instances of sources, controllers, and monitors tied to different devices, and then placing them all in one or more zones you can create an extremely fancy MP setup.
- I spend boatloads of money on more CPU/Video horsepower than any residence
should honestly have to get a machine with more inputs and outputs than a recording studio.
- I set up multiple output displays (LCD/Plasma/Projector/etc), a couple 7.1 audio zones in the main theater rooms, smaller TVs and 5.1 audio in each of the bedrooms, a bunch of 2.0 audio zones spread throughout the house and outdoors.
- I put touch panels and remotes in all the rooms and throughout the house and hook them all back into the media closet.
By selecting controls in each of the various rooms I can control the audio / video playback occuring in each room, I can bind rooms together so they are viewing / listenting to the same content and control the volumes and other local settings within each room from the controllers in the house.



I'm looking for a project whose ambition is to be able to do all the things I just mentioned. Whose design (if not now then at least in the future) will move in the direction of supporting all the things I just mentioned. I'm not looking to playback media on my computer which is what most HTPC apps try and do, I'm looking to make my HTPC control the playback of media thoughout my environment controlled by many different devices and remotes. Beyond an HTPC I'm looking for a complete HT Command and Control System. As an OSS project it seems that there is enough interest in the above to make them worthwhile. While most of us I'm sure will only have a remote or two, maybe web/smart phone control, and perhaps two displays the above design goals fit well with even that limited implementation and seems to scale well for larger installations. I'm hoping I'm not misreading the comments and I'm really the only one interested in these features.


If MP's goals aren't this lofty, then what are its goals? If I got some other system to act as my command and control system what parts of the above would MP be a good solution for? How would I integrate it with my Command Control system as a source/controller/monitor?


As an aside and if anyone cares, the design I'm envisioning and all of the setups I presented are based on the Model-View-Controller paradigm, where the program state (aka the model e.g. CaptureCard1 is tuned to channel 4) is separated from the presentation of that state (aka the view e.g. The MP playback client is tuned to the stream for CaptureCard1) which is separated still from the manipulation of that state (aka the controller e.g. I push the channel up on my remote which causes CaptureCard1 to go up a channel).
 

FishBluB

New Member
March 27, 2007
1
0
I could agree more with MariachiElf. :)

I'm looking also for a solution where client is server, server can be client, monitor can be server, ...
No limitation where your audio or video is shown ...

Are there any plans to implement this ?
 

Users who are viewing this thread

Top Bottom