213
212
void Scanner::start(Frontend& frontend, const Glib::ustring& region_file_path)
215
Glib::RefPtr<Glib::IOChannel> initial_tuning_file = Glib::IOChannel::create_from_file(region_file_path, "r");
217
std::list<Glib::ustring> lines;
219
Glib::IOStatus status = initial_tuning_file->read_line(line);
220
while (status == Glib::IO_STATUS_NORMAL && !terminated)
214
if (region_file_path.empty())
223
Glib::ustring::size_type index = line.find("#");
224
if (index != Glib::ustring::npos)
226
line = line.substr(0, index);
229
// Remove trailing whitespace
230
index = line.find_last_not_of(" \t\r\n");
231
if (index == Glib::ustring::npos)
237
line = line.substr(0, index + 1);
240
if (!line.empty()) // Ignore empty lines or comments
242
lines.push_back(line);
245
status = initial_tuning_file->read_line(line);
248
guint size = lines.size();
250
for (StringList::iterator iterator = lines.begin(); iterator != lines.end() && !terminated; iterator++)
252
Glib::ustring process_line = *iterator;
220
Glib::RefPtr<Glib::IOChannel> initial_tuning_file = Glib::IOChannel::create_from_file(region_file_path, "r");
254
if (!process_line.empty())
222
std::list<Glib::ustring> lines;
224
Glib::IOStatus status = initial_tuning_file->read_line(line);
225
while (status == Glib::IO_STATUS_NORMAL && !terminated)
256
g_debug("Processing line: '%s'", process_line.c_str());
258
if (Glib::str_has_prefix(process_line, "T "))
260
process_terrestrial_line(frontend, process_line);
262
else if (Glib::str_has_prefix(process_line, "C "))
264
process_cable_line(frontend, process_line);
266
else if (Glib::str_has_prefix(process_line, "S "))
268
process_satellite_line(frontend, process_line);
270
else if (Glib::str_has_prefix(process_line, "A "))
272
process_atsc_line(frontend, process_line);
228
Glib::ustring::size_type index = line.find("#");
229
if (index != Glib::ustring::npos)
231
line = line.substr(0, index);
234
// Remove trailing whitespace
235
index = line.find_last_not_of(" \t\r\n");
236
if (index == Glib::ustring::npos)
276
throw Exception(_("Me TV cannot process a line in the initial tuning file"));
281
gboolean is_atsc = frontend.get_frontend_type() == FE_ATSC;
282
guint transponder_count = 0;
283
signal_progress(0, transponders.size());
284
for (TransponderList::const_iterator i = transponders.begin(); i != transponders.end() && !terminated; i++)
286
if (is_atsc) atsc_tune_to(frontend, *i);
287
else tune_to(frontend, *i);
288
signal_progress(++transponder_count, transponders.size());
242
line = line.substr(0, index + 1);
245
if (!line.empty()) // Ignore empty lines or comments
247
lines.push_back(line);
250
status = initial_tuning_file->read_line(line);
253
guint size = lines.size();
255
for (StringList::iterator iterator = lines.begin(); iterator != lines.end() && !terminated; iterator++)
257
Glib::ustring process_line = *iterator;
259
if (!process_line.empty())
261
g_debug("Processing line: '%s'", process_line.c_str());
263
if (Glib::str_has_prefix(process_line, "T "))
265
process_terrestrial_line(frontend, process_line);
267
else if (Glib::str_has_prefix(process_line, "C "))
269
process_cable_line(frontend, process_line);
271
else if (Glib::str_has_prefix(process_line, "S "))
273
process_satellite_line(frontend, process_line);
275
else if (Glib::str_has_prefix(process_line, "A "))
277
process_atsc_line(frontend, process_line);
281
throw Exception(_("Me TV cannot process a line in the initial tuning file"));
286
gboolean is_atsc = frontend.get_frontend_type() == FE_ATSC;
287
guint transponder_count = 0;
288
signal_progress(0, transponders.size());
289
for (TransponderList::const_iterator i = transponders.begin(); i != transponders.end() && !terminated; i++)
291
if (is_atsc) atsc_tune_to(frontend, *i);
292
else tune_to(frontend, *i);
293
signal_progress(++transponder_count, transponders.size());
291
297
g_debug("Scanner loop exited");