File: SMP_Settings_Window.cpp

package info (click to toggle)
aqemu 0.8.2-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 5,740 kB
  • ctags: 2,347
  • sloc: cpp: 31,857; makefile: 2
file content (92 lines) | stat: -rw-r--r-- 2,909 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/****************************************************************************
**
** Copyright (C) 2009-2010 Andrey Rijov <ANDron142@yandex.ru>
**
** This file is part of AQEMU.
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor,
** Boston, MA  02110-1301, USA.
**
****************************************************************************/

#include "SMP_Settings_Window.h"

SMP_Settings_Window::SMP_Settings_Window( QWidget *parent )
	: QDialog( parent )
{
	ui.setupUi( this );
}

VM::SMP_Options SMP_Settings_Window::Get_Values() const
{
	VM::SMP_Options smp;
	
	smp.SMP_Count = ui.SB_SMP->value();
	smp.SMP_Cores = ui.SB_Cores->value();
	smp.SMP_Threads = ui.SB_Threads->value();
	smp.SMP_Sockets = ui.SB_Sockets->value();
	smp.SMP_MaxCPUs = ui.SB_MaxCPUs->value();
	
	return smp;
}

void SMP_Settings_Window::Set_Values( const VM::SMP_Options &smp, unsigned short PSO_SMP_Count, bool PSO_SMP_Cores,
									  bool PSO_SMP_Threads, bool PSO_SMP_Sockets, bool PSO_SMP_MaxCPUs )
{
	Backup_SMP = smp;
	
	ui.SB_SMP->setValue( smp.SMP_Count );
	ui.SB_Cores->setValue( smp.SMP_Cores );
	ui.SB_Threads->setValue( smp.SMP_Threads );
	ui.SB_Sockets->setValue( smp.SMP_Sockets );
	ui.SB_MaxCPUs->setValue( smp.SMP_MaxCPUs );
	
	ui.SB_SMP->setMaximum( PSO_SMP_Count );
	
	ui.SB_Cores->setEnabled( PSO_SMP_Cores );
	ui.Label_Cores->setEnabled( PSO_SMP_Cores );
	ui.SB_Threads->setEnabled( PSO_SMP_Threads );
	ui.Lebel_Threads->setEnabled( PSO_SMP_Threads );
	ui.SB_Sockets->setEnabled( PSO_SMP_Sockets );
	ui.Label_Sockets->setEnabled( PSO_SMP_Sockets );
	ui.SB_MaxCPUs->setEnabled( PSO_SMP_MaxCPUs );
	ui.Label_MaxCPUs->setEnabled( PSO_SMP_MaxCPUs );
}

void SMP_Settings_Window::Set_SMP_Count( int count )
{
	Backup_SMP.SMP_Count = count;
	ui.SB_SMP->setValue( count );
	ui.SB_Cores->setValue( 0 );
	ui.SB_Threads->setValue( 0 );
	ui.SB_Sockets->setValue( 0 );
	ui.SB_MaxCPUs->setValue( 0 );
}

void SMP_Settings_Window::on_Button_OK_clicked()
{
	// FIXME Calculate Max CPU Count
	accept();
}

void SMP_Settings_Window::on_Button_Cancel_clicked()
{
	ui.SB_SMP->setValue( Backup_SMP.SMP_Count );
	ui.SB_Cores->setValue( Backup_SMP.SMP_Cores );
	ui.SB_Threads->setValue( Backup_SMP.SMP_Threads );
	ui.SB_Sockets->setValue( Backup_SMP.SMP_Sockets );
	ui.SB_MaxCPUs->setValue( Backup_SMP.SMP_MaxCPUs );
	
	reject();
}