Difference between revisions of "User:Esev"

From LinuxMCE
Jump to: navigation, search
(Investigate power button issues)
(Updated contact info and a note about free time)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
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.
+
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.  Unfortunately I do not have time to work on LinuxMCE consistently.  With an upcoming international relocation/move and a new baby things are a bit busy for me.  I hope to be back working on the project on a more stable schedule in 2012.
 
{|
 
{|
 
|'''Real Name:''' || Eric Severance
 
|'''Real Name:''' || Eric Severance
Line 10: Line 10:
 
|}
 
|}
 
<br /><br /><hr /><br />
 
<br /><br /><hr /><br />
 +
== Bookmarks ==
 +
* [[LinuxMCE-0810 beta#Upcoming_fixes...|Upcoming fixes]] page that I can never remember.
 +
* [[User:Esev/Archived ToDo Items]]
 +
 
== ToDo list for 0810 ==
 
== ToDo list for 0810 ==
 
<hr />
 
<hr />
=== 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.
 
<pre>
 
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)
 
</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.  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:
 
* [http://svn.linuxmce.org/trac.cgi/changeset/23325 Changeset 23325 - Don't turn the TV on when music stops playing]
 
* [http://forum.linuxmce.org/index.php?topic=10895.0 OSD Orbiter does not display after stopping non-pluto media device]
 
 
<hr />
 
 
 
=== Can't access scenarios via number keys ===
 
=== Can't access scenarios via number keys ===
 
The [[Orbiters#Selecting_a_scenario_with_a_keyboard.27s_arrow_keys.2C_or_an_infrared_remote|Quick tip]] on navigating the Orbiter screen by pressing numbers is not working for me.
 
The [[Orbiters#Selecting_a_scenario_with_a_keyboard.27s_arrow_keys.2C_or_an_infrared_remote|Quick tip]] on navigating the Orbiter screen by pressing numbers is not working for me.
Line 88: Line 66:
  
 
<hr />
 
<hr />
=== Volume control of non-pluto devices ===
 
See this forum [http://forum.linuxmce.org/index.php?topic=10789.0 post] and ticket [http://svn.linuxmce.org/trac.cgi/ticket/746 #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 ====
 
* Regarding Entertainment areas
 
** [[Control_a_TV_or_cable/satellite_box#Programmer.27s_guide|Programmers guide for Media_Plugin]]
 
** [[Rooms#Multiple_Entertainment_Areas_in_One_Room|Entertainment Areas]]
 
** [[Media_Scenarios]]
 
** [[Generic_PC]]
 
* Source code
 
** DCERouter.cpp line 2076 - DCERouter handles the device pipes?  I would have figured those would be handled by the media plugin.
 
<pre>
 
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>
 
</pre>
 
 
<hr />
 
 
 
=== Submit Xbox 360 device template ===
 
=== Submit Xbox 360 device template ===
 
I'd like to use my Xbox 360 as an external DVD player.  Most of the remote codes on [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?5489#926639 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 [http://www.remotecentral.com/features/irdisp2.htm The ProntoEdit HEX Format] details needed to combine codes)
 
I'd like to use my Xbox 360 as an external DVD player.  Most of the remote codes on [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?5489#926639 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 [http://www.remotecentral.com/features/irdisp2.htm The ProntoEdit HEX Format] details needed to combine codes)
Line 162: Line 109:
  
 
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.
 
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.
 +
 +
Check out clipsmm for C++ interface to CLIPS: http://clipsmm.sourceforge.net/
 +
 +
 +
Wakeup at the start of each minute
 +
if (ProcessEventQueue()) {
 +
  clips->run()
 +
}
 +
 +
In the send-command function {
 +
  send-command
 +
  wait-for-response
 +
  ProcessEventQueue()
 +
  return;
  
 
<hr />
 
<hr />
 +
 
=== Use mobile phone as asterisk trunk ===
 
=== Use mobile phone as asterisk trunk ===
 
See [http://forum.linuxmce.org/index.php?topic=7927.msg51681#msg51681 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.
 
See [http://forum.linuxmce.org/index.php?topic=7927.msg51681#msg51681 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.
 
The bluez/alsa integration work looks promising.  If working it could easily be integrated with linphone/simplephone.

Latest revision as of 19:57, 4 March 2011

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. Unfortunately I do not have time to work on LinuxMCE consistently. With an upcoming international relocation/move and a new baby things are a bit busy for me. I hope to be back working on the project on a more stable schedule in 2012.

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




Bookmarks

ToDo list for 0810


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:


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.

Check out clipsmm for C++ interface to CLIPS: http://clipsmm.sourceforge.net/


Wakeup at the start of each minute if (ProcessEventQueue()) {

 clips->run()

}

In the send-command function {

 send-command
 wait-for-response
 ProcessEventQueue()
 return;

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.