Beispiel #1
0
bool counter::circular(int n)
{
    if (!m_p[n])
        return false;
    to_digits(n);
    for (auto i = m_ds.size(); --i;) {
        if (!m_p[rotate()])
            return false;
    }
    return true;
}
Beispiel #2
0
int pt_digits(char *str){
	int len;
	len = strlen(str);
	if((len>3)&&(str[0]=='p')&&(str[1]=='t')&&(str[2]=='=')){
		return to_digits(str+3);
	}
	else{
		api_warn("Wrong parameters passed in the endpoints");
		return 0;
		//ERROR handling
	}
}
Beispiel #3
0
EndPoint *parse_end_point(char *endpoint){
	EndPoint *result = (EndPoint*) g_malloc(sizeof(EndPoint));
	int i=0,len1,len2,len, tlen;
	char *str2, temp[30], *host_str;
	//api_trace("parse_end_point: parsing %s\n", endpoint);
	result->pt = -1;
	while(1){
		str2 = (char*) strpbrk(endpoint, ":");
		if(str2 == NULL){ 
			str2 = (char*) strpbrk(endpoint, ";");
			if(str2 == NULL){
				len = strlen(endpoint); 
			}
			else{
				len1 = strlen(endpoint);
				len2 = strlen(str2);
				len = len1-len2;
			}
		}
		else{
			len1 = strlen(endpoint);
			len2 = strlen(str2);
			len = len1-len2;
		}
		strncpy(temp,endpoint,len);
		temp[len] = '\0';
		tlen = strlen(temp);
		if((tlen >= 2)&&(temp[0] == '/')&&(temp[1] == '/')){
			host_str = remove_slash(temp);
		}
		switch(i){
			case 0: if(strcmp(temp,"rtp")==0){
					result->protocol=MEDIA_RTP;
				}
				else if(strcmp(temp,"oss")==0){
					result->protocol=MEDIA_OSS;
				}
				else if(strcmp(temp,"alsa")==0){
					result->protocol=MEDIA_ALSA;
				}
				else if(strcmp(temp,"file")==0){
					result->protocol=MEDIA_FILE;
				}
				break;
			case 1: if(result->protocol==MEDIA_FILE){
					result->file=host_str;
				}
				else{
					result->host = host_str;
				}
				break;
			case 2: result->port = to_digits(temp);
				break;
			case 3: result->pt = pt_digits(temp);
				break;
			default://result->options[result->nOptions++] = temp;
				break;
		}
		if(str2 != NULL) endpoint = str2+1;
		else break;
		i++;
	}
	return result;		
}