⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sources.cpp

📁 DVB-S的softcam源代码
💻 CPP
字号:
/* * sources.c: Source handling * * See the main source file 'vdr.c' for copyright information and * how to reach the author. * * $Id: sources.c 1.3 2004/12/26 11:58:52 kls Exp $ */#include "sources.h"#include <ctype.h>#include <stdio.h>// -- cSource ----------------------------------------------------------------cString cSource::ToString(int Code){	char buffer[16];	char *q = buffer;	switch (Code & st_Mask) {		case stCable: *q++ = 'C'; break;		case stSat:   *q++ = 'S';						{							int pos = Code & ~st_Mask;							q += _snprintf(q, sizeof(buffer) - 2, "%u.%u", (pos & ~st_Neg) / 10, (pos & ~st_Neg) % 10); // can't simply use "%g" here since the silly 'locale' messes up the decimal point							*q++ = (Code & st_Neg) ? 'E' : 'W';						}						break;		case stTerr:  *q++ = 'T'; break;		default:      *q++ = Code + '0'; // backward compatibility	}	*q = 0;	return buffer;}int cSource::FromString(const char *s){	int type = stNone;	switch (toupper(*s)) {		case 'C': type = stCable; break;		case 'S': type = stSat;   break;		case 'T': type = stTerr;  break;		case '0':		case '1':		case '2':		case '3':		case '4':		case '5':		case '6':		case '7':		case '8':		case '9': type = *s - '0'; break; // backward compatibility		default: printf("ERROR: unknown source key '%c'", *s);				return stNone;	}	int code = type;	if (type == stSat) {		int pos = 0;		bool dot = false;		bool neg = false;		while (*++s) {			switch (toupper(*s)) {				case '0':				case '1':				case '2':				case '3':				case '4':				case '5':				case '6':				case '7':				case '8':				case '9': pos *= 10;							pos += *s - '0';							break;				case '.': dot = true;							break;				case 'E': neg = true; // fall through to 'W'				case 'W': if (!dot)							pos *= 10;							break;				default: printf("ERROR: unknown source character '%c'", *s);						return stNone;			}		}		if (neg)			pos |= st_Neg;		code |= pos;	}	return code;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -