Difference between revisions of "User:Esev"

From LinuxMCE
Jump to: navigation, search
(Investigate power button issues)
(Investigate power button issues)
Line 27: Line 27:
 
</pre>
 
</pre>
  
Also should look into how the 'HOME' key works on the Orbiter's remote.  For some reason when the code was removed the 'HOME' key didn't switch back on the Orbiter OSD.  I'm wondering if I make this change will I break something there.
+
Also should look into how the 'HOME' key works on the Orbiter's remote.  For some reason when the code was removed the 'HOME' key didn't switch back on the Orbiter OSD.  I'm wondering if I make this change will I break something there. Need to look at the Orbiter's ''Orbiter::GotActivity( int PK_Button )'' function.  It turns on the screen if it is off.  ''if( !m_bDisplayOn ) CMD_Display_OnOff( "1",false )''.  Maybe m_bDisplayOn is getting set for the case when audio is playing with no video.
 +
 
  
 
Might also consider turning off the OSD if only audio is playing and the audio was started via a remote Orbiter.  I think that could be accomplished by not setting the ''pMediaDevice_MD->m_bDontSendOffIfOSD_ON''.
 
Might also consider turning off the OSD if only audio is playing and the audio was started via a remote Orbiter.  I think that could be accomplished by not setting the ''pMediaDevice_MD->m_bDontSendOffIfOSD_ON''.

Revision as of 20:47, 5 November 2010

Welcome to my user page. I started with LinuxMCE in July of 2010. Home automation is a hobby of mine and LinuxMCE offers all the flexibility that I need. I have experience with system/backend level programming on linux and am willing to contribute back to the project where ever it makes sense.

Real Name: Eric Severance
Blog: http://esev.com/blog/
LinuxMCE Setup: Hybrid Core + 2 Media Directors
Contact Me: Send an email




ToDo list for 0810


Investigate power button issues

I'm having issues when pressing the Power button on my Gyration_GYR4101US remote. If I'm controlling a non-pluto device, and press power, the device turns off but my receiver and TV are not switched back to the Orbiter OSD.

This isn't fixed yet. The fix that is in place won't work correctly for Live AV audio sources. They will still turn the TV back on. Need to read and understand this function. Right now in StreamEnded it calls this function with 0 and NULL for the Current arguments. I might be able to pass in the MD's device and use the Prior media type for the current media type and things will work. Need to test this.

void
Media_Plugin::HandleOnOffs(
    int PK_MediaType_Prior,
    int PK_MediaType_Current,
    map<int,MediaDevice *> *pmapMediaDevice_Prior,
    map<int,MediaDevice *> *pmapMediaDevice_Current,
    MediaStream *pMediaStream,
    EntertainArea *pEntertainArea)

Also should look into how the 'HOME' key works on the Orbiter's remote. For some reason when the code was removed the 'HOME' key didn't switch back on the Orbiter OSD. I'm wondering if I make this change will I break something there. Need to look at the Orbiter's Orbiter::GotActivity( int PK_Button ) function. It turns on the screen if it is off. if( !m_bDisplayOn ) CMD_Display_OnOff( "1",false ). Maybe m_bDisplayOn is getting set for the case when audio is playing with no video.


Might also consider turning off the OSD if only audio is playing and the audio was started via a remote Orbiter. I think that could be accomplished by not setting the pMediaDevice_MD->m_bDontSendOffIfOSD_ON.

See also:


Can't access scenarios via number keys

The Quick tip on navigating the Orbiter screen by pressing numbers is not working for me.

#LinuxMCE-Devel on 20101031

<esev> TSCHAKeee2: Hm, I see how the shortcuts work now.  The device template sets the mapping and the orbiter controls what command the shortcut executes.  The shortcuts seem like a single button press type thing.  I thought the wiki was describing a way to navigate the OSD menus.  Was I mistaken?
<TSCHAKeee2> yes
<TSCHAKeee2> we do set button mappings for button arrays
<TSCHAKeee2> for orbiter menus
<esev> ok.  I see that now in hadesigner.  ie designobj 3456 is for the lighting options
<esev> it is mapped to button 1
<esev> media to button 2, etc
<TSCHAKeee2> yup
<TSCHAKeee2> now look at the arrays
<esev> in hadesigner?
<TSCHAKeee2> yup
<esev> hm, having a harder time following that one, but I think #1258 (butMediaArray) is one of them.  I see it is mapped to button 1
<TSCHAKeee2> now look in src/UpdateEntArea
<TSCHAKeee2> in the different UpdateEntArea_Lights.cpp and UpdateEntArea_Media.cpp
<esev> ok.  I see the pCommandGroup->AddCommand with the OrderNum parameter
<TSCHAKeee2> *nod*
<esev> I see OrbiterGen sorting on OrderNum, but I don't see it assigning a button based on it
<TSCHAKeee2> then it doesn't.
<TSCHAKeee2> :)
<esev> ha! :)
<esev> I see it now in OrbiterGen "// In an array we want to increment the buttons"
<TSCHAKeee2> esev: the point here was to take you through how it's all set up
<TSCHAKeee2> esev: also, if you're looking for a variable in orbiter that magically shows up
<TSCHAKeee2> esev: and it's in OrbiterData.h
<TSCHAKeee2> esev: look in OrbiterGen
<esev> thanks TSCHAKeee2
<TSCHAKeee2> esev: for it's a serialized variable that OrbiterGen creates, and serializes for later unpacking by orbiter when it starts.
<esev> I think I can follow the rest from here
<TSCHAKeee2> cool ok
<TSCHAKeee2> hopefully it's a bit more clear how that part works

See also


Document the GYR4101US remote

There is pretty good documentation on the Gyration_GYR3101US remote. I'd like to clean up the pages for the Gyration_GYR4101US remote and add a codes page similar to the Gyration-GYR3101US-codes page. It'll be easier to track down which button controls which events if this is properly documented.

Also need to upload the latest modifications I've made to the HID driver to fix the Power button repeat issue.

Other pages of interest:


Volume control of non-pluto devices

See this forum post and ticket #746. It doesn't seem to matter if the end device has pipes or not. The volume messages are always sent to the device, not the audio/video pipes of the remote MD.

#LinuxMCE-devel on 20101102

<TSCHAKeee2> esev: be very careful re volume pipes                   
<TSCHAKeee2> esev: volume commands should only go to the app server _IF_ an audio device isn't in the pipes.
<esev> TSCHAKeee2: what if the audio device in the pipes is in a different room?                                                                     
<TSCHAKeee2> you need to follow those pipes                          
<TSCHAKeee2> if there is no audio pipe setup for an EA, then the App Server should be used

See also

08	11/02/10 23:23:31.944		Received Message from 21 (OnScreen Orbiter / Home Theater) to 59 (BDP-S350 / Home Theater), type 1 id 89 Command:Vol Up, retry none, parameters: <0xa88fdb90>
08	11/02/10 23:23:31.944		  Parameter 41(StreamID): 1004 <0xa88fdb90>
10	11/02/10 23:23:31.944		AddMessageToQueue(ProcessQueue) adding message from 21 to 59 type 1 id 89 to queue size was: 0 <0xa88fdb90>
10	11/02/10 23:23:31.944		AddMessageToQueue(ProcessQueue) sent broadcast <0xa88fdb90>
10	11/02/10 23:23:31.944		ProcessQueue woke up with size: 1 <0xb662fb90>
10	11/02/10 23:23:31.944		ProcessQueue sending message from 21 to 59 type 1 id 89 to queue now size: 0 <0xb662fb90>
10	11/02/10 23:23:31.944		ProcessQueue Calling realsendmessage from queue <0xb662fb90>
08	11/02/10 23:23:31.944		Forwarding 89 Command:Vol Up up pipe to 139 (TX-SR602) <0xb662fb90>

Submit Xbox 360 device template

I'd like to use my Xbox 360 as an external DVD player. Most of the remote codes on remote central page work (T=1), except for power on/off. For some reason those codes tend to flip flop between T=0 and T=1. The solution is to combine the T=0 and T=1 codes for those two commands. (See The ProntoEdit HEX Format details needed to combine codes)

Power On: ON(T=1) + ON(T=0)

0000 0073 0000 003F 0060 0020 0010 0010 0010 0010 0010 0020 0010 0020 0030 0020 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0020 0020 0020 0010 0010 0010 0010 0010 0010 0020 0020 0020 0020 0020 0020 0010 09AC 0060 0020 0010 0010 0010 0010 0010 0020 0010 0020 0030 0020 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0020 0020 0010 0010 0010 0010 0020 0020 0020 0010 0010 0010 0010 0010 0010 0020 0020 0020 0020 0020 0020 0010 09AC

Power Off: OFF(T=1) + OFF(T=0)

0000 0073 0000 003F 0060 0020 0010 0010 0010 0010 0010 0020 0010 0020 0030 0020 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0020 0020 0020 0010 0010 0010 0010 0010 0010 0020 0020 0020 0020 0010 0010 0020 09BC 0060 0020 0010 0010 0010 0010 0010 0020 0010 0020 0030 0020 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0020 0020 0010 0010 0010 0010 0020 0020 0020 0010 0010 0010 0010 0010 0010 0020 0020 0020 0020 0010 0010 0020 09BC


Add info about inputs to capture cards

MythTV is a little difficult to setup if LinuxMCE doesn't have information about your channel providers. I've been able to develop a work around for my setup by realizing MythTV_Plugin doesn't like capture cards with Source=0. It would nice if at minimum the Source input box on the device had a drop-down for each of the video sources. It would be even nicer if on the Media Director wizard page, the inputs were broken out and both Source (for MythTV) and FK_Device_Capture_Card_Port (for external devices) could be set.

 start with lmce-admin/operations/myDevices/mediaDirectors.php
 - $pvrArray
 - getPVRCards
    Need to extend query to get children

Maybe someday list


Native web orbiter

Orbited_For_A_New_WebOrbiter would be interesting to look into


Add DCE bindings for other programming languages

Python, Java, Javascript, and Ruby are a few that come to mind. All follow an OO paradigm that would allow the objects to look and feel similar to the C++ equivalents.

I believe the DCE base libraries should be implemented in the language vs requiring a C++ plugin/native interface - this is so the base libraries will work anywhere the language works. This means all the code in src/DCE will need to be implemented in the other language.

A variant of sql2cpp and DCEGen could be created for each language too to help with development. I think the sql2cpp variant should be written in C++ so that the language not need to be installed on a build server. The DCEGen should be written in the native language so that it will work where ever there is an interpreter for that language.


New Event Plugin

Check out this tutorial on intercepting DCE messages

See also the DataLogger_Plugin

Hoping to be able to intercept device data changes as well as events.  Device data changes are needed to support Drools notifications.

Unserialization occurs in Gen_Devices/*Base.h inside the GetConfig function.  It sends a CONFIG message on the Event Channel. DeviceList population occurs inEvent_Impl::GetDeviceListcalled from within GetConfig.


Use mobile phone as asterisk trunk

See this forum post. chan_mobile won't work because it takes over the bluetooth dongle - and also requires the dongle to be in the core.

The bluez/alsa integration work looks promising. If working it could easily be integrated with linphone/simplephone.