[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3] ui/cocoa.m: add Speed menu
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH v3] ui/cocoa.m: add Speed menu |
Date: |
Wed, 21 Jun 2017 16:19:58 +0100 |
On 14 June 2017 at 04:17, Programmingkid <address@hidden> wrote:
> Programs running inside of QEMU can sometimes use more CPU time than is really
> needed. To solve this problem, we just need to throttle the virtual CPU. This
> feature will stop laptops from burning up.
>
> This patch adds a menu called Speed that has menu items from 100% to 1% that
> represent the speed options. 100% is full speed and 1% is slowest.
>
> Signed-off-by: John Arbuckle <address@hidden>
> ---
> v3 changes:
> Changed the item deselection loop.
> Moved speed calculation equation to main function.
> Replaced "%c" with "%%".
> Changed how 100% menu item is made.
>
> v2 changes:
> Fixed missing space with 'if' and 'for' structures.
> Fixed tab damage.
> Use loop to create menu items.
> Changed name of menu items to use percentages.
> Use tags to determine selected menu item.
> + // Add the rest of the Speed menu items
> + int p, percentage, throttle_pct;
> + for (p = 10; p >= 0; p--)
> + {
> + percentage = p * 10 > 1 ? p * 10 : 1; // prevent a 0% menu item
> +
> + if (percentage == 100) {
> + [menuItem setState: NSOnState];
> + }
> + menuItem = [[[NSMenuItem alloc]
> + initWithTitle: [NSString stringWithFormat: @"%d%%",
> percentage] action:@selector(adjustSpeed:) keyEquivalent:@""] autorelease];
Here you try to call setState: on the menuItem before
you allocate it -- these lines should be the other way
around. (The effect is that the 100% item isn't ticked
on startup.)
> +
> + /* Calculate the throttle percentage */
> + throttle_pct = -1 * percentage + 100;
> +
> + [menuItem setTag: throttle_pct];
> + [menu addItem: menuItem];
> + }
That's a very minor fix, so I'll just make it locally
when I apply this patch to master.
thanks
-- PMM