Re: [Qemu-devel] [PATCH] cocoa.m: Adds console items to the view menu

2015-02-13 Thread Programmingkid

On Feb 13, 2015, at 2:45 AM, Gerd Hoffmann wrote:

>  Hi,
> 
>> We're going to need to automatically create and update
>> the menu entries based on which consoles get created
>> if we want this to work properly, I think. Gerd, any
>> suggestions?  Is there a hook for "list of active
>> consoles has changed"?
> 
> No.  consoles are not hotpluggable.
> 
>> What's the right way to get
>> the printable name of a console?
> 
> gd_vc_gfx_init() has code for gfx consoles (qemu_console_is_graphic() ==
> true).
> 
> There is nothing for text consoles.
> 
> Guess we should create a qemu_console_get_label() helper function in
> ui/console.c, then move the code from gd_vc_gfx_init() to that place,
> and for text consoles use QemuConsole->chr->label.
> 
> cheers,
>  Gerd
Thank you Gerd for your suggestion. 

Here is my suggestion:
int get_Graphics_Console_Index()
int get_Serial_Console_Index()
int get_Parallel_Console_Index()
int get_Monitor_Console_Index()

Then I would be able to do this:
console_select(get_Serial_Console_Index());

The is simple and to the point. No having to have to search for a console.
If the console does not exist, the function could return -1. Then the code
would something like this:

if(get_Serial_Console_Index() != -1)
console_select(get_Serial_Console_Index());
else
printf("Sorry but Serial console does not exist\n\a");





Re: [Qemu-devel] [PATCH] cocoa.m: Adds console items to the view menu

2015-02-12 Thread Gerd Hoffmann
  Hi,

> We're going to need to automatically create and update
> the menu entries based on which consoles get created
> if we want this to work properly, I think. Gerd, any
> suggestions?  Is there a hook for "list of active
> consoles has changed"?

No.  consoles are not hotpluggable.

> What's the right way to get
> the printable name of a console?

gd_vc_gfx_init() has code for gfx consoles (qemu_console_is_graphic() ==
true).

There is nothing for text consoles.

Guess we should create a qemu_console_get_label() helper function in
ui/console.c, then move the code from gd_vc_gfx_init() to that place,
and for text consoles use QemuConsole->chr->label.

cheers,
  Gerd





Re: [Qemu-devel] [PATCH] cocoa.m: Adds console items to the view menu

2015-02-12 Thread Programmingkid

On Feb 11, 2015, at 10:39 PM, Peter Maydell wrote:

> On 24 January 2015 at 01:56, Programmingkid  wrote:
>> This patch adds these consoles to the View menu:
>> VGA
>> QEMU Monitor
>> Parallel
>> Serial
>> 
>> Signed-off-by: John Arbuckle 
> 
>> +/* Displays the VGA screen */
>> +- (void)displayVGA:(id)sender
>> +{
>> +console_select(0);
>> +}
>> +
>> +/* Displays the QEMU Monitor screen */
>> +- (void)displayMonitor:(id)sender
>> +{
>> +console_select(1);
>> +}
>> +
>> +/* Displays the parallel port screen */
>> +- (void)displayParallel:(id)sender
>> +{
>> +console_select(3);
>> +}
>> +
>> +/* Displays the serial port screen */
>> +- (void)displaySerial:(id)sender
>> +{
>> +console_select(2);
>> +}
> 
> I'm afraid this doesn't work, because there's no guarantee
> that these consoles will be created or in this order.
> They just happen to be the set you get for the x86
> PC model. If you boot a versatilepb ARM image with the
> serial output directed to stdio, for instance, then the
> "serial" entry in the menu gets you the parallel
> port console, and the parallel port entry does nothing,
> because this board and config happens to end up creating
> only 3 consoles, not 4 (graphics, monitor, parallel).
> 
> We're going to need to automatically create and update
> the menu entries based on which consoles get created
> if we want this to work properly, I think. Gerd, any
> suggestions? Is there a hook for "list of active
> consoles has changed"? What's the right way to get
> the printable name of a console?

Do you know where the code is that creates the consoles? 


Re: [Qemu-devel] [PATCH] cocoa.m: Adds console items to the view menu

2015-02-12 Thread Programmingkid

On Feb 11, 2015, at 10:39 PM, Peter Maydell wrote:

> On 24 January 2015 at 01:56, Programmingkid  wrote:
>> This patch adds these consoles to the View menu:
>> VGA
>> QEMU Monitor
>> Parallel
>> Serial
>> 
>> Signed-off-by: John Arbuckle 
> 
>> +/* Displays the VGA screen */
>> +- (void)displayVGA:(id)sender
>> +{
>> +console_select(0);
>> +}
>> +
>> +/* Displays the QEMU Monitor screen */
>> +- (void)displayMonitor:(id)sender
>> +{
>> +console_select(1);
>> +}
>> +
>> +/* Displays the parallel port screen */
>> +- (void)displayParallel:(id)sender
>> +{
>> +console_select(3);
>> +}
>> +
>> +/* Displays the serial port screen */
>> +- (void)displaySerial:(id)sender
>> +{
>> +console_select(2);
>> +}
> 
> I'm afraid this doesn't work, because there's no guarantee
> that these consoles will be created or in this order.
> They just happen to be the set you get for the x86
> PC model. If you boot a versatilepb ARM image with the
> serial output directed to stdio, for instance, then the
> "serial" entry in the menu gets you the parallel
> port console, and the parallel port entry does nothing,
> because this board and config happens to end up creating
> only 3 consoles, not 4 (graphics, monitor, parallel).
> 
> We're going to need to automatically create and update
> the menu entries based on which consoles get created
> if we want this to work properly, I think. Gerd, any
> suggestions? Is there a hook for "list of active
> consoles has changed"? What's the right way to get
> the printable name of a console?
> 

I was hoping the gtk.c file would have some code I could use, but it doesn't. 
My model for these menu items came from a YouTube video demonstrating the GTK 
UI in QEMU. Does QEMU still have these menu items in the GTK UI? The gtk.c file 
does not seem to indicate that. 


Re: [Qemu-devel] [PATCH] cocoa.m: Adds console items to the view menu

2015-02-11 Thread Peter Maydell
On 24 January 2015 at 01:56, Programmingkid  wrote:
> This patch adds these consoles to the View menu:
> VGA
> QEMU Monitor
> Parallel
> Serial
>
> Signed-off-by: John Arbuckle 

> +/* Displays the VGA screen */
> +- (void)displayVGA:(id)sender
> +{
> +console_select(0);
> +}
> +
> +/* Displays the QEMU Monitor screen */
> +- (void)displayMonitor:(id)sender
> +{
> +console_select(1);
> +}
> +
> +/* Displays the parallel port screen */
> +- (void)displayParallel:(id)sender
> +{
> +console_select(3);
> +}
> +
> +/* Displays the serial port screen */
> +- (void)displaySerial:(id)sender
> +{
> +console_select(2);
> +}

I'm afraid this doesn't work, because there's no guarantee
that these consoles will be created or in this order.
They just happen to be the set you get for the x86
PC model. If you boot a versatilepb ARM image with the
serial output directed to stdio, for instance, then the
"serial" entry in the menu gets you the parallel
port console, and the parallel port entry does nothing,
because this board and config happens to end up creating
only 3 consoles, not 4 (graphics, monitor, parallel).

We're going to need to automatically create and update
the menu entries based on which consoles get created
if we want this to work properly, I think. Gerd, any
suggestions? Is there a hook for "list of active
consoles has changed"? What's the right way to get
the printable name of a console?

thanks
-- PMM



[Qemu-devel] [PATCH] cocoa.m: Adds console items to the view menu

2015-01-23 Thread Programmingkid
This patch adds these consoles to the View menu:
VGA
QEMU Monitor
Parallel
Serial

Signed-off-by: John Arbuckle 

---
 ui/cocoa.m |   34 ++
 1 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/ui/cocoa.m b/ui/cocoa.m
index d37c29b..c88c0d0 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -801,6 +801,10 @@ QemuCocoaView *cocoaView;
 - (void)toggleFullScreen:(id)sender;
 - (void)showQEMUDoc:(id)sender;
 - (void)showQEMUTec:(id)sender;
+- (void)displayVGA:(id)sender;
+- (void)displayMonitor:(id)sender;
+- (void)displayParallel:(id)sender;
+- (void)displaySerial:(id)sender;
 @end
 
 @implementation QemuCocoaAppController
@@ -943,6 +947,31 @@ QemuCocoaView *cocoaView;
 [[NSWorkspace sharedWorkspace] openFile:[NSString 
stringWithFormat:@"%@/../doc/qemu/qemu-tech.html",
 [[NSBundle mainBundle] resourcePath]] withApplication:@"Help Viewer"];
 }
+
+/* Displays the VGA screen */
+- (void)displayVGA:(id)sender
+{
+console_select(0);
+}
+
+/* Displays the QEMU Monitor screen */
+- (void)displayMonitor:(id)sender
+{
+console_select(1);
+}
+
+/* Displays the parallel port screen */
+- (void)displayParallel:(id)sender
+{
+console_select(3);
+}
+
+/* Displays the serial port screen */
+- (void)displaySerial:(id)sender
+{
+console_select(2);
+}
+
 @end
 
 
@@ -1006,6 +1035,11 @@ int main (int argc, const char * argv[]) {
 // View menu
 menu = [[NSMenu alloc] initWithTitle:@"View"];
 [menu addItem: [[[NSMenuItem alloc] initWithTitle:@"Enter Fullscreen" 
action:@selector(toggleFullScreen:) keyEquivalent:@"f"] autorelease]]; // 
Fullscreen
+[menu addItem:[NSMenuItem separatorItem]]; //Separator
+[menu addItem: [[[NSMenuItem alloc] initWithTitle:@"VGA" 
action:@selector(displayVGA:) keyEquivalent:@""] autorelease]]; // VGA
+[menu addItem: [[[NSMenuItem alloc] initWithTitle:@"QEMU Monitor" 
action:@selector(displayMonitor:) keyEquivalent:@""] autorelease]]; // QEMU 
Monitor
+[menu addItem: [[[NSMenuItem alloc] initWithTitle:@"Parallel" 
action:@selector(displayParallel:) keyEquivalent:@""] autorelease]]; // Parallel
+[menu addItem: [[[NSMenuItem alloc] initWithTitle:@"Serial" 
action:@selector(displaySerial:) keyEquivalent:@""] autorelease]]; // Serial
 menuItem = [[[NSMenuItem alloc] initWithTitle:@"View" action:nil 
keyEquivalent:@""] autorelease];
 [menuItem setSubmenu:menu];
 [[NSApp mainMenu] addItem:menuItem];
-- 
1.7.5.4