Author |
Message |
khrusher
|
Posted: Wed Nov 29, 2006 9:29 am |
|
Joined: Tue Apr 13, 2004 6:51 pm
Posts: 890
Location:
Groton, MA
|
there are a set of default key bindings that are installed with mythtv. And yes, each module withing mythtv can have different bindings for each key.
Ignore the remote for a moment, and think of the keyboard. All of the mythttv functions are performed with keyboard commands. The easiest way to see the keybindings is with mythweb->setting->keybindings. This data is maintained in the keybindings table
Every mythtv function is listed with the cooresponding keyboard key. I have altered my keybindings to my liking, I would guess that most leave the default.
Once you have defined the keybinding (or chosen the default), you can configure the buttons on the remote to send keyboard key signals.
This multi-level config drove me to write the script above
_________________ R5F1 - Dell P4 2.4Ghz 500MB - PVR250 x 2 - GeForce FX 5200 - Onboard sound/NIC 80GB ATA/250GB ATA/400GB SATA
|
|
Top |
|
 |
spalVl
|
Posted: Wed Nov 29, 2006 10:06 am |
|
Joined: Mon Aug 29, 2005 4:04 pm
Posts: 729
Location:
Philadelphia, PA US
|
A lot of this is repeating what Krusher said, so ignore if too lengthy.
Quote: So let me ask you this: In the lircrc, can you make Mythtv use a particular button for different functions, while doing different stuff?
For instance, the >> button might go x3 fast foward while watching TV or a recorded tv show, but in the Gallery it might jump to the next photo, or in the music player, it might skip ahead in the track? I don't know, but I don't think you want to. Basically how the lircrc file works in the preconfigured lircrc files if button UP is pressed, prog mythtv sends the configured function Up. The Up key in the MythTV's key configuration can have a Global setting, a function in MythPhoto, MythMusic etc... Those key configs are stored in the mythconverg MySQL database and can be configured on frontend, or MythWeb. Krusher's script looks at lircrc and compares what for example the Up key is configured to do by looking at the mythconverg database and outputting to a friendly format (BTW nice script Krusher) Quote: Don't tell me that we need to make database changes to make this work.. So, in my lircinator, I should have many tabs for within MythTV, such as "TV Playback", "Gallery", etc.
For MythTV I am in the line of thinking of let the remote send keyboard presses to the application and allow the user to change the functions of those key presses in the frontend or MythWeb if they are a power user of a Myth plugin (MythMusic, MythGallery) and need more functionality.
|
|
Top |
|
 |
tophee
|
Posted: Wed Nov 29, 2006 10:18 am |
|
Joined: Tue Sep 13, 2005 10:48 am
Posts: 852
Location:
London, UK
|
In reference to the question of setting buttons to do different things depending on circumstance, I think there is a real need.
Mplayer now appears to be the default playback package everything: for recordings and Live TV, and now with 0.20 for DVD. It will need to get the buttons to do different things in different circumstances.
For example, when watching live TV (using DVB-T) I have access on 0.20 to various interactive services - usually the coloured keys at the bottom of the remote. Whereas, when watching a recorded program, I want them to be used for accessing editing and speeding up playback and sound...
_________________ Version:R8 Intel C2D 7400, Nvidia 5600 via HDMI to Samsung B37B650TW (PAL), Asus P5QL-E mobo, 4Gb PC6400 DDR2 ram, Samsung Spinpoint 500 Gb & 1Tb drive, Nova-HD-S2 (x2)
|
|
Top |
|
 |
schmeckendeugler
|
Posted: Wed Nov 29, 2006 10:41 am |
|
Joined: Fri Oct 20, 2006 8:49 pm
Posts: 52
Location:
Lafayette, IN
|
Well, for now, I will only address the creation of a lircrc file. Future revisions of this app may incorporate sub-functionality (various functions within mythtv), but something like that, I feel should really be done inside mythtv itself.
Schmeckendeugler
p.s. I plan to dedicated 2-6 hours this week toward this project.
|
|
Top |
|
 |
spalVl
|
Posted: Thu Nov 30, 2006 12:48 pm |
|
Joined: Mon Aug 29, 2005 4:04 pm
Posts: 729
Location:
Philadelphia, PA US
|
@schmeckendeugler
Here is the Xine key bindings as defined from Code: xine --keymap Code: # start playback Play
# playback pause toggle Pause # stop playback Stop
# take a snapshot Snapshot
# eject the current medium Eject
# select and play next MRL in the playlist NextMrl
# select and play previous MRL in the playlist PriorMrl
# loop mode toggle ToggleLoopMode
# stop playback after played stream PlaylistStop
# scan playlist to grab stream infos ScanPlaylistInfo
# add a mediamark from current playback AddMediamark
# edit selected mediamark MediamarkEditor
# set position to -60 seconds in current stream SeekRelative-60
# set position to +60 seconds in current stream SeekRelative+60
# set position to -30 seconds in current stream SeekRelative-30
# set position to +30 seconds in current stream SeekRelative+30
# set position to -15 seconds in current stream SeekRelative-15
# set position to +15 seconds in current stream SeekRelative+15
# set position to -7 seconds in current stream SeekRelative-7 { key = Left modifier = mod3 }
# set position to +7 seconds in current stream SeekRelative+7
# set position to beginning of current stream SetPosition0%
# set position to 10% of current stream SetPosition10%
# set position to 20% of current stream SetPosition20%
# set position to 30% of current stream SetPosition30%
# set position to 40% of current stream SetPosition40%
# set position to 50% of current stream SetPosition50%
# set position to 60% of current stream SetPosition60%
# set position to 70% of current stream SetPosition70%
# set position to 80% of current stream SetPosition80%
# set position to 90% of current stream SetPosition90%
# increment playback speed SpeedFaster
# decrement playback speed SpeedSlower
# reset playback speed SpeedReset
# increment audio volume Volume+
# decrement audio volume Volume-
# increment amplification level Amp+
# decrement amplification level Amp-
# reset amplification to default value ResetAmp
# audio muting toggle Mute
# select next audio channel AudioChannelNext
# select previous audio channel AudioChannelPrior
# visibility toggle of audio post effect window APProcessShow
# toggle post effect usage APProcessEnable
# select next sub picture (subtitle) channel SpuNext
# select previous sub picture (subtitle) channel SpuPrior
# interlaced mode toggle ToggleInterleave
# cycle aspect ratio values ToggleAspectRatio
# reduce the output window size by factor 1.2 WindowReduce
# enlarge the output window size by factor 1.2 WindowEnlarge
# set video output window to 50% Window50
# set video output window to 100% Window100
# set video output window to 200% Window200
# zoom in ZoomIn
# zoom out ZoomOut
# zoom in horizontally ZoomInX
# zoom out horizontally ZoomOutX
# zoom in vertically ZoomInY
# zoom out vertically ZoomOutY
# reset zooming ZoomReset
# resize output window to stream size Zoom1:1
# fullscreen toggle ToggleFullscreen
# Xinerama fullscreen toggle ToggleXineramaFullscr
# jump to media Menu Menu
# jump to Title Menu TitleMenu
# jump to Root Menu RootMenu
# jump to Subpicture Menu SubpictureMenu
# jump to Audio Menu AudioMenu
# jump to Angle Menu AngleMenu
# jump to Part Menu PartMenu
# menu navigate up EventUp
# menu navigate down EventDown
# menu navigate left EventLeft
# menu navigate right EventRight
# menu select EventSelect
# jump to next chapter EventNext
# jump to previous chapter EventPrior
# select next angle EventAngleNext
# select previous angle EventAnglePrior
# visibility toggle of help window HelpShow
# visibility toggle of video post effect window VPProcessShow
# toggle post effect usage VPProcessEnable
# visibility toggle of output window ToggleWindowVisibility
# bordered window toggle of output window ToggleWindowBorder
# visibility toggle of UI windows ToggleVisibility
# visibility toggle of control window ControlShow
# visibility toggle of mrl browser window MrlBrowser
# visibility toggle of playlist editor window PlaylistEditor
# visibility toggle of the setup window SetupShow
# visibility toggle of the event sender window EventSenderShow
# visibility toggle of analog TV window TVAnalogShow
# visibility toggle of log viewer ViewlogShow
# visibility toggle of stream info window StreamInfosShow
# display stream information using OSD OSDStreamInfos
# show OSD menu OSDMenu
# enter key binding editor KeyBindingEditor
# open file selector FileSelector
# select a subtitle file SubSelector
# download a skin from the skin server SkinDownload
# display MRL/Ident toggle MrlIdentToggle
# grab pointer toggle GrabPointer
# enter the number 0 Number0
# enter the number 1 Number1
# enter the number 2 Number2
# enter the number 3 Number3
# enter the number 4 Number4
# enter the number 5 Number5
# enter the number 6 Number6
# enter the number 7 Number7
# enter the number 8 Number8
# enter the number 9 Number9
# add 10 to the next entered number Number10add
# set position in current stream to numeric percentage SetPosition%
# set position forward by numeric argument in current stream SeekRelative+
# set position back by numeric argument in current stream SeekRelative-
# change audio video syncing (delay video) AudioVideoDecay+
# change audio video syncing (delay audio) AudioVideoDecay-
# reset audio video syncing offset AudioVideoDecayReset
# change subtitle syncing (delay video) SpuVideoDecay+
# change subtitle syncing (delay subtitles) SpuVideoDecay-
# reset subtitle syncing offset SpuVideoDecayReset
# toggle TV modes (on the DXR3) ToggleTVmode
# switch Monitor to DPMS standby mode DPMSStandby
# increase hue by 10 HueControl+
# decrease hue by 10 HueControl-
# increase saturation by 10 SaturationControl+
# decrease saturation by 10 SaturationControl-
# increase brightness by 10 BrightnessControl+
# decrease brightness by 10 BrightnessControl-
# increase contrast by 10 ContrastControl+
# decrease contrast by 10 ContrastControl-
# quit the program Quit
# VDR Red button VDRButtonRed
# VDR Green button VDRButtonGreen
# VDR Yellow button VDRButtonYellow
# VDR Blue button VDRButtonBlue
# VDR play VDRPlay
# VDR Pause VDRPause
# VDR Stop VDRStop
# VDR Record VDRRecord
# VDR Fast Forward VDRFastFwd
# VDR Fast Rewind VDRFastRew
# VDR power VDRPower
# VDR next channel VDRChannelPlus
# VDR previous channel VDRChannelMinus
# VDR schedule menu VDRSchedule
# VDR Channel menu VDRChannels
# VDR Timers menu VDRTimers
# VDR Recordings menu VDRRecordings
# VDR Setup menu VDRSetup
# VDR Command menu VDRCommands
# VDR Command Back VDRBack
# VDR User command 1 VDRUser1
# VDR User command 2 VDRUser2
# VDR User command 3 VDRUser3
# VDR User command 4 VDRUser4
# VDR User command 5 VDRUser5
# VDR User command 6 VDRUser6
# VDR User command 7 VDRUser7
# VDR User command 8 VDRUser8
# VDR User command 9 VDRUser9
# VDR Volume plus VDRVolumePlus
# VDR Volume minus VDRVolumeMinus
# VDR Audio Mute VDRMute
# VDR Audio menu VDRAudio
# VDR Command info VDRInfo
Some thinking I had on the layout of the page. I'll try to express what I am thinking best as possible. This is 100% intended to be constructive. I applaud your initiative and great work you have put forward.
When I configure a lircrc file I tend to think in terms of application functionality. I look at a blank remote and tend to fill in the function per button on how I want MythTV to behave as a whole, then Xine functions as a whole, then Mplayer etc... With all MythTV button assignment laid out in 1 screen before me I find it easier to avoid duplicate keys and maximize button usage. (I tend to be a visual person)
If going the approach of functions of application I find it may be easier to have all the buttons laid out for MythTV, with drop down lists of keys next to each button. Then move to Xine tab with drop down lists of functions next each button next to each button, tab for Mplayer, etc.
Check out below pics New Happauge_Remote_HQ_rev3.jpg & Remote_Gen_Concept.jpg for better representation of what I mean.
http://mikenet.iwarp.com/MythTV/Hauppau ... G/?thumb=1
I'll work on getting the Mplayer command list (I think will be pretty large)
BTW everything looks great. Just trying to help.
|
|
Top |
|
 |
schmeckendeugler
|
Posted: Thu Nov 30, 2006 12:56 pm |
|
Joined: Fri Oct 20, 2006 8:49 pm
Posts: 52
Location:
Lafayette, IN
|
Hmm. Yeah, I understand what you mean. Those images were in fact partly what inspired me to do the idea of the MouseOver pop-up. But I know what you mean, to have "MythTV" be on one screen, with all the functions, rather than have one screen per button. I will give that some thought and try to see what I can come up with.
me
|
|
Top |
|
 |
tjc
|
Posted: Thu Nov 30, 2006 10:22 pm |
|
Joined: Thu Mar 25, 2004 11:00 am
Posts: 9551
Location:
Arlington, MA
|
 Very, very cute!  It looks like a lot of work has already gone into this, since setting up that image map couldn't have been easy.
I might suggest adding some simple text directions (Click on the each button on the remote and then select the functions you would like it to perform for the various applications listed on the tabs), and either making the settings a bit more open ended (there are a lot of possible MythTV keys, and quite a few Xine functions), or more "functional". It might also be nice to show which functions are already assigned to some other button, even though you want to allow duplicates.
|
|
Top |
|
 |
schmeckendeugler
|
Posted: Thu Nov 30, 2006 10:59 pm |
|
Joined: Fri Oct 20, 2006 8:49 pm
Posts: 52
Location:
Lafayette, IN
|
Hey,
I did about two hours' work of more just cosmetic stuff to give a better idea of how it'll look...
Of course, it still doesn't WORK yet...
-added a javascript thingy for the mouseovers on the buttons. The contents of these will be generated by either PHP or javascript... probably php. Dynamically. With cheese.
-Made the buttons on the remote activate the proper dialogue boxes to the right
-made a heading
-changed the background graphic on the unselected button display
|
|
Top |
|
 |
schmeckendeugler
|
Posted: Thu Nov 30, 2006 11:17 pm |
|
Joined: Fri Oct 20, 2006 8:49 pm
Posts: 52
Location:
Lafayette, IN
|
tjc wrote: :!: Very, very cute!  It looks like a lot of work has already gone into this, since setting up that image map couldn't have been easy. Actually, the image map was probably the easiest thing I did so far! And the funnest!  Dreamweaver made at least THAT part easy... the hardest part was deciding how to lay it all out with the tabs, and hack up some javascript that I got from www.dynamicdrive.com. I wanted the buttons on the picture of the remote itself to "light up", when you pressed it, but I could NOT FOR THE LIFE OF ME find ANY javascript to do that properly. So I had to bastardize the script for the tabbed area. Quite by accident, I assure you, but I like the way it turned out. Too lazy to go back on that now. tjc wrote: I might suggest adding some simple text directions
Yeah, you're right. some directions would be useful. and examples, I always love examples when i'm trying to learn / use something. tjc wrote: making the settings a bit more open ended (there are a lot of possible MythTV keys, and quite a few Xine functions), or more "functional". If you're observing a lack of options in the radio buttons, then... yes... I know that mythtv, xine, etc. has a TON of more keypresses that need added... the files posted by spalVl will be quite helpful. I will also refer to the mythtv source docs, when I ever get around to it, for a COMPLETE list of EVERY default keypress. Hey, I bet I could just go into mythtv right now and get most of them... bleh, too tired, it's midnight and there's a storm a' brewin.... I can tell by my corns. ...and my mythWeather. ok, only mythWeather. tjc wrote: It might also be nice to show which functions are already assigned to some other button, even though you want to allow duplicates.
Dangit! Now I gotta make them CHECKBOXES rather than RADIO BUTTONS?? But I understand what you mean. the indication of duplicates might be something to put on the list of bonus stuff that I'll do later, after getting version 1.0 out.
|
|
Top |
|
 |
tjc
|
Posted: Thu Nov 30, 2006 11:24 pm |
|
Joined: Thu Mar 25, 2004 11:00 am
Posts: 9551
Location:
Arlington, MA
|
schmeckendeugler wrote: Dangit! Now I gotta make them CHECKBOXES rather than RADIO BUTTONS?? But I understand what you mean. the indication of duplicates might be something to put on the list of bonus stuff that I'll do later, after getting version 1.0 out.
No, radio buttons are good in this context. I was thinking more along the lines of changing the label text presentation (color, etc.) to indicate that something had an existing assignment.
|
|
Top |
|
 |
schmeckendeugler
|
Posted: Fri Dec 01, 2006 8:39 am |
|
Joined: Fri Oct 20, 2006 8:49 pm
Posts: 52
Location:
Lafayette, IN
|
Aha! I see.
I need to find out the total list of functions in all the myth modules / other apps. The remote only has 44 buttons. If any app has less than 44 mappable functions, then by default, we should map every function to some button.
Perhaps somebody would care to assist me in that? Come up with a master list of all functions? I did plan to do it myself, but.... i'm lazy.
|
|
Top |
|
 |
spalVl
|
Posted: Tue Dec 05, 2006 8:18 pm |
|
Joined: Mon Aug 29, 2005 4:04 pm
Posts: 729
Location:
Philadelphia, PA US
|
Here is the Mplayer command list.
Code: MPlayer 1.0pre8-3.3.5 (C) 2000-2006 MPlayer Team CPU: Intel Celeron 2/Pentium III Coppermine,Geyserville (Family: 6, Model: 8, Stepping: 3) CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 0 Compiled with runtime CPU detection.
seek Float [Integer] edl_mark audio_delay Float [Integer] speed_incr Float speed_mult Float speed_set Float quit [Integer] pause frame_step grab_frames pt_step Integer [Integer] pt_up_step Integer [Integer] alt_src_step Integer sub_delay Float [Integer] sub_step Integer [Integer] osd [Integer] osd_show_text String [Integer] [Integer] osd_show_property_te String [Integer] [Integer] volume Float [Integer] use_master mute [Integer] contrast Integer [Integer] gamma Integer [Integer] brightness Integer [Integer] hue Integer [Integer] saturation Integer [Integer] frame_drop [Integer] sub_pos Integer [Integer] sub_alignment [Integer] sub_visibility [Integer] sub_load String sub_remove [Integer] vobsub_lang [Integer] sub_select [Integer] sub_log get_percent_pos get_time_pos get_time_length switch_audio [Integer] tv_step_channel Integer tv_step_norm tv_step_chanlist tv_set_channel String tv_last_channel tv_set_freq Float tv_set_norm String tv_set_brightness Integer [Integer] tv_set_contrast Integer [Integer] tv_set_hue Integer [Integer] tv_set_saturation Integer [Integer] forced_subs_only [Integer] dvb_set_channel Integer Integer switch_ratio [Float] vo_fullscreen [Integer] vo_ontop [Integer] vo_rootwin [Integer] vo_border [Integer] screenshot panscan Float [Integer] switch_vsync [Integer] loadfile String [Integer] loadlist String [Integer] run String change_rectangle Integer Integer get_vo_fullscreen get_sub_visibility key_down_event Integer set_property String String get_property String
|
|
Top |
|
 |
schmeckendeugler
|
Posted: Tue Dec 05, 2006 10:17 pm |
|
Joined: Fri Oct 20, 2006 8:49 pm
Posts: 52
Location:
Lafayette, IN
|
Thanks!
I didn't get as much done with this as I thought I would. too busy funkin' out to "Spare Parts" www.sparepartsmusic.com.
I guess I did get maybe 2 hrs into it last week though.
THis week i'm foregoing some more cosmetic stuff, and working on what the output is gonna look like! plan to try and get 2-6 hours of work in.
|
|
Top |
|
 |
schmeckendeugler
|
Posted: Sun Dec 10, 2006 11:01 pm |
|
Joined: Fri Oct 20, 2006 8:49 pm
Posts: 52
Location:
Lafayette, IN
|
WHEW. put in the hours today.
You will notice that now if you go select the "Go" button, then choose a keystroke for Mythtv, then click the "Lircinate!" button, the beginnings of a lircrc file will appear!
spalVl, I thought about your idea for the drop-downs, and it would've been just too hard for me to figure out. This is the only way I can figure out how to do this, for now. What's gonna suck is that for EACH BUTTON, I have to make a huge long bunch of form fields, at least, the way it's currently coded. I wish I could think of a more elegant way, but I really cannot at this point. my major web design work is from ColdFusion from work, and PHP is still kinda new to me. Hell, I'm still trying to figure out CSS. And Javascript, forget it. I don't even usually know what the syntax IS for that stuff, I just borrow it off of other people who make examples.
sleepy time....  ZZzzzzz......
Dream of a Perfect lircrc file.... where the One Remote rules them all...
_________________ ()xxx[]=========> Herr Schmeckendeugler <========[]xxx()
Used to be Developing the LIRCinator for the Hauppauge A415-HPG remote! but chilltemp took it over.
|
|
Top |
|
 |
chilltemp
|
Posted: Tue Jan 01, 2008 8:14 pm |
|
Joined: Tue Apr 04, 2006 8:50 pm
Posts: 6
|
schmeckendeugler, I'm not sure if you are still working on this. Probably just temporarily derailed due to Christmas.
I was playing around, and came up with an idea for making this work with more remotes with the use of ini files. I have two remotes setup, the Hauppauge has all of its buttons thanks to you're map, and ATI only has the top two rows.
http://chillweb.net/remote/
Let me know what you think. I'd be happy to collaborate on this project.
|
|
Top |
|
 |