Can a macro be made to initialize Dual monitor for Eventghost?
#16
bigbub Wrote:Marirs, would you be able to describe how you hacked XBMC to do this natively? I would prefer using that vs. a separate program for my dual display setup. Thanks!

If you can build from source, I can send you a patch. It's pretty simple actually, just need to comment one line and change another if I recall.

Quote:Mm-kay, interesting. I wonder if you can use Move Window to position something "off-screen", as it were. Like, instead of the upper-left corner being at 1280,0, it would be at 1280, -40. The XBMClaunch app does some voodoo to remove the window borders and titlebar from XBMC when it launches it, but it hasn't been 100% reliable for me.

(Actually, that wouldn't work, because it would have window borders hanging over onto my primary display. Damn. Can we get the devs to add in a "launch windowless" command line argument? )

doesn't sound like you're launching xbmc with the right command line arguments. You need -fs to start fullscreen (no borders)
Reply
#17
marirs Wrote:doesn't sound like you're launching xbmc with the right command line arguments. You need -fs to start fullscreen (no borders)
But I think that's what breaks the resolution on the first screen, because "fullscreen" and "1280x768, no borders" are not the same thing. (Unless I'm wrong and that is exactly what it means in XBMC's case.)

Remember, also, that my two monitors have two different aspect ratios, so I think launching fullscreen on Monitor 1 is going to create a 4x3 screen, which is now the wrong size when I move it over to the other screen.

Now, a way to do it might be:

Set display preset
Launch XBMC windowed
Move to second screen
Go fullscreen
Set display preset (to fix stretching issue on first screen)
Reply
#18
Here's what is working perfectly for me:

Start:
Set display present (to start second display)
Start program: XBMC
Find window: XBMC
Move window to X:1280, Y:0
Emulate Keystrokes: \
Emulate Keystrokes: \

(For some reason the XBMC: Full Screen action doesn't want to work for me, so I'm just using the backslash to do the same thing, twice to get around the stretch-on-first-display issue. Kludgy, but it's working. Smile)

Then, closing is simple:

XBMC: Quit XBMC
Set Display Preset (to turn off second display)

Getting all of this working solely in EG not only is an elegant solution (save for that embarrassing-but-it-works double-backslash at the end), it seems to have fixed a problem I was having getting the flipping TV to switch to HDMI2 to see all of this in the first place. So I'm pretty jazzed.

Now, can we get a Hulu plugin back in this thing so I don't have to do it all over again with Boxee in a couple months? Smile
Reply
#19
clemon79 Wrote:BigBub: Not sure what you think needs hacked: these are all actions built into XBMC, in the "window" and "display" branches of the tree that comes up when you add an action (or an event for the first time.)

I'm admittedly quite new to the non-Xbox ports of XBMC so will need to do a bit of experimenting... I'm not that familiar with the event interface in XBMC yet. I'll give that a try. Would you mind providing a quick pointer to where I should start reading up / experimenting (or should I be just digging through the forums)?

marirs Wrote:If you can build from source, I can send you a patch. It's pretty simple actually, just need to comment one line and change another if I recall.

I'm guilty, have never compiled XBMC before. I'll try to work with XBMC as-is first... thanks for the offer!
Reply
#20
Hi,

My request is more simple. I plugged both monitor and my TV to my computer. But mostly i am using only one screen. So I have to swith the monitors regularly. I want a program that can provide me a shortcut to change the monitor that i am using just like notebooks. Is there any possibility that one of those programs can do that? Please tell me which one can do it. Thank you in advance.
Reply
#21
bigbub Wrote:I'm admittedly quite new to the non-Xbox ports of XBMC so will need to do a bit of experimenting... I'm not that familiar with the event interface in XBMC yet. I'll give that a try. Would you mind providing a quick pointer to where I should start reading up / experimenting (or should I be just digging through the forums)?
Actually, that's partially my mistake...I thought you were referring to EventGhost macros still, but I see that marirs said he actually hacked the code to accomplish launching on the second monitor directly. So I apologize for any confusion.
Reply
#22
Hi,

My request is more simple. I plugged both monitor and my TV to my computer. But mostly i am using only one screen. So I have to swith the monitors regularly. I want a program that can provide me a shortcut to change the monitor that i am using just like notebooks. Is there any possibility that one of those programs can do that? Please tell me which one can do it. Thank you in advance.
Reply
#23
Songoku Wrote:My request is more simple. I plugged both monitor and my TV to my computer. But mostly i am using only one screen. So I have to swith the monitors regularly. I want a program that can provide me a shortcut to change the monitor that i am using just like notebooks. Is there any possibility that one of those programs can do that? Please tell me which one can do it. Thank you in advance.
EventGhost would do it, I think. You'd just make it Set Display Preset to your XBMC monitor as part of your startup macro, and Set Display Preset to your regular monitor part of your shutdown one.
Reply
#24
clemon79 Wrote:Here's what is working perfectly for me:

Start:
Set display present (to start second display)
Start program: XBMC
Find window: XBMC
Move window to X:1280, Y:0
Emulate Keystrokes: \
Emulate Keystrokes: \

I have something similar except that the "\" key doesn't work when used in sequence after the "move window" command. I have even tried adding up to 10 seconds delay after "move". Currently I have MCE Radio button configured to just this i.e. emulate "\". An extra button press but I guess I'll have to live with it Rolleyes
Reply
#25
rexian Wrote:I have something similar except that the "\" key doesn't work when used in sequence after the "move window" command.
Yeah, the whole "find window" / "move Window" / "send slash" sequence isn't perfect...sometimes it doesn't get moved and I have to do it by hand. (Currently I have the "find window" set to look for 5 seconds. I was worried this would unnecessarily delay things, but I guess jacking it up to 10 or 20 wouldn't hurt, since it will move on to the next command if it finds it sooner.) Annoying, since part of the fun of all of this for me is to squash out all of those bugs and figure out the most reliable solution, but there it is. 90% of the time right now it's working. I just wish "XBMC: Full Screen" worked.
Reply
#26
Me too. If they had a poll on fixes users would like to have, this would be very high on the list. I bet most of the XBMC users have their HTPCs connected to a real monitor as well and in most cases they'd want that monitor to be primary.
Reply
#27
rexian Wrote:Me too. If they had a poll on fixes users would like to have, this would be very high on the list. I bet most of the XBMC users have their HTPCs connected to a real monitor as well and in most cases they'd want that monitor to be primary.
I'd be surprised, actually. I bet in the mass majority of cases it's being used on a standalone HTPC and if there is a second monitor involved, it's solely to admin the PC.
Reply
#28
i had the same issue i have 2 monitors in dualview and one tv. Yesterday i found a way too make xbmc only run on the tv and when xbmc is done its switching back to the dual view get autoit3 from http://www.autoitscript.com
Code:
gotoTv()
;replace the path with your xbmc path
$pid = run("C:\Apps\XBMC\XBMC.exe -p")
ProcessWaitClose($PID)
gotoNormal(0)
Exit

func gotoTv()
    ;Working one
    ;rundll32.exe nvcpl.dll,dtcfg setview 1 standard #T0
    nvcplaction("nvcpl.dll,dtcfg setview 1 standard #T0")
endfunc

func gotoNormal($viewtype)
    select
        case $viewtype=0;primary on left monitor
        nvcplaction("nvcpl.dll,dtcfg setview 1 standard #DA")
    case $viewtype=1;useless for me primary on right monitor
        nvcplaction("nvcpl.dll,dtcfg setview 1 standard #AA")
    case $viewtype=2;dualview
        nvcplaction("nvcpl.dll,dtcfg setview 1 dualview #DA #AA")
    EndSelect
    ;single monitor
    ;rundll32.exe nvcpl.dll,dtcfg setview 1 standard #DA
    ;primary on second monitor
    ;rundll32.exe nvcpl.dll,dtcfg setview 1 standard #AA
    ;dual view
    ;rundll32.exe nvcpl.dll,dtcfg setview 1 dualview #DA #AA
EndFunc

func nvcplaction($nvcplcmd)
    ShellExecute("rundll32.exe" ,$nvcplcmd)
    sleep(500)
EndFunc
you only need to modify the path for xbmc and compile the script to .exe
Reply
#29
tiben20 Wrote:i had the same issue i have 2 monitors in dualview and one tv. Yesterday i found a way too make xbmc only run on the tv and when xbmc is done its switching back to the dual view get autoit3 from http://www.autoitscript.com
Code:
gotoTv()
;replace the path with your xbmc path
$pid = run("C:\Apps\XBMC\XBMC.exe -p")
ProcessWaitClose($PID)
gotoNormal(0)
Exit

func gotoTv()
    ;Working one
    ;rundll32.exe nvcpl.dll,dtcfg setview 1 standard #T0
    nvcplaction("nvcpl.dll,dtcfg setview 1 standard #T0")
endfunc

func gotoNormal($viewtype)
    select
        case $viewtype=0;primary on left monitor
        nvcplaction("nvcpl.dll,dtcfg setview 1 standard #DA")
    case $viewtype=1;useless for me primary on right monitor
        nvcplaction("nvcpl.dll,dtcfg setview 1 standard #AA")
    case $viewtype=2;dualview
        nvcplaction("nvcpl.dll,dtcfg setview 1 dualview #DA #AA")
    EndSelect
    ;single monitor
    ;rundll32.exe nvcpl.dll,dtcfg setview 1 standard #DA
    ;primary on second monitor
    ;rundll32.exe nvcpl.dll,dtcfg setview 1 standard #AA
    ;dual view
    ;rundll32.exe nvcpl.dll,dtcfg setview 1 dualview #DA #AA
EndFunc

func nvcplaction($nvcplcmd)
    ShellExecute("rundll32.exe" ,$nvcplcmd)
    sleep(500)
EndFunc
you only need to modify the path for xbmc and compile the script to .exe

Thanks, but wondering if this is Nvidia specific (I have an ATI HD4850 grapahics card).

I have a sort of acceptable solution now as I added the keystroke "\" to MCE:OK event after XBMC:Select. So, after starting XBMC, first time I press the OK button, it makes XBMC go fullscreen and the extra keystroke didn't seem to interfere with any other operation. So the moment I select a profile, it's fullscreen and I don't have to press any extra key for it.
Reply
#30
rexian Wrote:I have a sort of acceptable solution now as I added the keystroke "\" to MCE:OK event after XBMC:Select.
Have you tried a second Find Window after the window move? It seems to me like that would be more elegant than having to wait until you've selected a profile. Just being a perfectionist, mind you. Smile
Reply

Logout Mark Read Team Forum Stats Members Help
Can a macro be made to initialize Dual monitor for Eventghost?0