1
1
// ------------------------------------------------------------------------
2
2
// eca-chainsetup-bufparams.cpp: Container for chainsetup buffering params.
3
// Copyright (C) 2001 Kai Vehmanen
3
// Copyright (C) 2001, 2007 Kai Vehmanen
6
// eca-style-version: 3
5
8
// This program is free software; you can redistribute it and/or modify
6
9
// it under the terms of the GNU General Public License as published by
17
20
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
21
// ------------------------------------------------------------------------
20
25
#include <kvu_utils.h> /* kvu_get_argument_number */
21
26
#include <kvu_numtostr.h>
23
28
#include "eca-chainsetup-bufparams.h"
25
ECA_CHAINSETUP_BUFPARAMS::ECA_CHAINSETUP_BUFPARAMS(void) {
30
ECA_CHAINSETUP_BUFPARAMS::ECA_CHAINSETUP_BUFPARAMS(void)
26
32
set_buffersize_rep = false;
27
33
set_raisedpriority_rep = false;
28
34
set_sched_priority_rep = false;
37
43
* @arg paramstr "int_buffersize, bool_raisedprio, int_schedprio,
38
44
* bool_db, int_db-bufsize, int_buffersize"
40
void ECA_CHAINSETUP_BUFPARAMS::set_all(const string& paramstr) {
46
void ECA_CHAINSETUP_BUFPARAMS::set_all(const string& paramstr)
41
48
set_buffersize(atoi(kvu_get_argument_number(1, paramstr).c_str()));
42
49
toggle_raised_priority(kvu_get_argument_number(2, paramstr) == "true");
43
50
set_sched_priority(atoi(kvu_get_argument_number(3, paramstr).c_str()));
59
67
if (set_double_buffer_size_rep == true) res++;
60
68
if (set_max_buffers_rep == true) res++;
65
string ECA_CHAINSETUP_BUFPARAMS::to_string(void) const {
73
string ECA_CHAINSETUP_BUFPARAMS::to_string(void) const
67
76
result += "\nbuffersize: ";
68
77
result += kvu_numtostr(buffersize_rep);
76
85
result += kvu_numtostr((int)double_buffer_size_rep);
77
86
result += "\nmax buffers: ";
78
87
result += kvu_numtostr(max_buffers_rep);
84
bool ECA_CHAINSETUP_BUFPARAMS::are_all_set(void) const {
93
bool ECA_CHAINSETUP_BUFPARAMS::are_all_set(void) const
85
95
if (set_buffersize_rep == true &&
86
96
set_raisedpriority_rep == true &&
87
97
set_sched_priority_rep == true &&
88
98
set_double_buffering_rep == true &&
89
99
set_double_buffer_size_rep == true &&
90
set_max_buffers_rep == true) return(true);
100
set_max_buffers_rep == true) return true;
95
void ECA_CHAINSETUP_BUFPARAMS::set_buffersize(long int value) {
105
void ECA_CHAINSETUP_BUFPARAMS::set_buffersize(long int value)
96
107
buffersize_rep = value;
97
108
set_buffersize_rep = true;
100
void ECA_CHAINSETUP_BUFPARAMS::toggle_raised_priority(bool value) {
111
void ECA_CHAINSETUP_BUFPARAMS::toggle_raised_priority(bool value)
101
113
raisedpriority_rep = value;
102
114
set_raisedpriority_rep = true;
105
void ECA_CHAINSETUP_BUFPARAMS::set_sched_priority(int prio) {
117
void ECA_CHAINSETUP_BUFPARAMS::set_sched_priority(int prio)
106
119
sched_priority_rep = prio;
107
120
set_sched_priority_rep = true;
110
void ECA_CHAINSETUP_BUFPARAMS::toggle_double_buffering(bool value) {
123
void ECA_CHAINSETUP_BUFPARAMS::toggle_double_buffering(bool value)
111
125
double_buffering_rep = value;
112
126
set_double_buffering_rep = true;
115
void ECA_CHAINSETUP_BUFPARAMS::set_double_buffer_size(long int v) {
129
void ECA_CHAINSETUP_BUFPARAMS::set_double_buffer_size(long int v)
116
131
double_buffer_size_rep = v;
117
132
set_double_buffer_size_rep = true;
120
void ECA_CHAINSETUP_BUFPARAMS::toggle_max_buffers(bool v) {
135
void ECA_CHAINSETUP_BUFPARAMS::toggle_max_buffers(bool v)
121
137
max_buffers_rep = v;
122
138
set_max_buffers_rep = true;