Changeset 41355 for titan/titan/frontenddev.h
- Timestamp:
- 12/06/17 19:54:38 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
titan/titan/frontenddev.h
r41330 r41355 2148 2148 } 2149 2149 2150 #if defined DTV_ENUM_DELSYS 2151 int fesetDeliverySystem(fe_delivery_system_t delsys, int fd) 2152 { 2153 struct dtv_property p[2]; 2154 memset(p, 0, sizeof(p)); 2155 struct dtv_properties cmdseq; 2156 cmdseq.props = p; 2157 cmdseq.num = 2; 2158 p[0].cmd = DTV_CLEAR; 2159 p[1].cmd = DTV_DELIVERY_SYSTEM; 2160 p[1].u.data = delsys; 2161 if (ioctl(fd, FE_SET_PROPERTY, &cmdseq) == -1) 2162 { 2163 perr("[DTV_ENUM_DELSYS] FE_SET_PROPERTY failed"); 2164 return 0; 2165 } 2166 return 1; 2167 } 2168 #endif 2169 2150 2170 int fegetdev() 2151 2171 { … … 2169 2189 } 2170 2190 2191 #if defined DTV_ENUM_DELSYS 2192 if(getconfig("tempnim", NULL) == NULL) 2193 addconfig("tempnim", "/tmp/tempnim"); 2194 if(file_exist(getconfig("tempnim", NULL)) == 1) 2195 unlink(getconfig("tempnim", NULL)); 2196 #endif 2197 2171 2198 for(i = 0; i < MAXDVBADAPTER; i++) 2172 2199 { … … 2177 2204 if(fd >= 0) 2178 2205 { 2206 2207 #if defined DTV_ENUM_DELSYS 2208 struct dtv_property p[1]; 2209 memset(p, 0, sizeof(p)); 2210 p[0].cmd = DTV_ENUM_DELSYS; 2211 struct dtv_properties cmdseq; 2212 cmdseq.num = 1; 2213 cmdseq.props = p; 2214 int type = -1; 2215 int mz = -1; 2216 struct dvb_frontend_info* t_feinfo = NULL; 2217 2218 //tricky... temporäre nim_sockets bauen da ansonsten viel im code geändert werden müßte 2219 free(tmpstr); tmpstr= NULL; 2220 free(tmpstr1); tmpstr1= NULL; 2221 tmpstr = ostrcat("NIM Socket " , oitoa(y), 0, 1); 2222 tmpstr = ostrcat(tmpstr , ":\n", 1, 0); 2223 2224 t_feinfo = (struct dvb_frontend_info*)malloc(sizeof(struct dvb_frontend_info)); 2225 if (ioctl(fd, FE_GET_PROPERTY, &cmdseq) >= 0) 2226 { 2227 for (; p[0].u.buffer.len > 0; p[0].u.buffer.len--) 2228 { 2229 memset(t_feinfo, 0, sizeof(struct dvb_frontend_info)); 2230 fe_delivery_system_t delsys = (fe_delivery_system_t)p[0].u.buffer.data[p[0].u.buffer.len - 1]; 2231 printf("--------> delsys %d devive: %d\n", delsys, y); 2232 fesetDeliverySystem(delsys, fd); 2233 if (ioctl(fd, FE_GET_INFO, t_feinfo) < 0) 2234 { 2235 perr("[DTV_ENUM_DELSYS] ioctl FE_GET_INFO failed"); 2236 } 2237 else 2238 { 2239 printf("------> name %s %d\n", t_feinfo->name, t_feinfo->type); 2240 if(type != t_feinfo->type) 2241 { 2242 type = t_feinfo->type; 2243 mz = mz + 1; 2244 switch (type) 2245 { 2246 case FE_QPSK: 2247 { 2248 tmpstr = ostrcat(tmpstr , " Mode ", 1, 0); 2249 tmpstr = ostrcat(tmpstr , oitoa(feSatellite), 1, 1); 2250 tmpstr = ostrcat(tmpstr , ": DVB-S/S2\n", 1, 0); 2251 //tmpstr1 = ostrcat(tmpstr1 , oitoa(feSatellite), 1, 1); 2252 //tmpstr1 = ostrcat(tmpstr1 , "\n", 1, 0); 2253 2254 break; 2255 } 2256 case FE_QAM: 2257 { 2258 tmpstr = ostrcat(tmpstr , " Mode ", 1, 0); 2259 tmpstr = ostrcat(tmpstr , oitoa(feCable), 1, 1); 2260 tmpstr = ostrcat(tmpstr , ": DVB-C\n", 1, 0); 2261 //tmpstr1 = ostrcat(tmpstr1 , oitoa(feCable), 1, 1); 2262 //tmpstr1 = ostrcat(tmpstr1 , "\n", 1, 0); 2263 break; 2264 } 2265 case FE_OFDM: 2266 { 2267 tmpstr = ostrcat(tmpstr , " Mode ", 1, 0); 2268 tmpstr = ostrcat(tmpstr , oitoa(feTerrestrial), 1, 1); 2269 tmpstr = ostrcat(tmpstr , ": DVB-T/T2\n", 1, 0); 2270 //tmpstr1 = ostrcat(tmpstr1 , oitoa(feTerrestrial), 1, 1); 2271 //tmpstr1 = ostrcat(tmpstr1 , "\n", 1, 0); 2272 break; 2273 } 2274 } 2275 } 2276 } 2277 } 2278 if(mz > 0) 2279 { 2280 tmpstr = ostrcat(tmpstr , " Frontend_Device: ", 1, 0); 2281 tmpstr = ostrcat(tmpstr , oitoa(y), 1, 1); 2282 tmpstr = ostrcat(tmpstr , "\n", 1, 0); 2283 tmpstr = ostrcat(tmpstr , " I2C_Device: x\n", 1, 0); 2284 writesys(getconfig("tempnim", NULL), tmpstr, 2); 2285 //fehyprid = ostrcat(tmpstr1 , NULL, 0, 0); 2286 } 2287 free(tmpstr); tmpstr = NULL; 2288 free(tmpstr1); tmpstr1 = NULL; 2289 } 2290 else 2291 { 2292 perr("[DTV_ENUM_DELSYS] ioctl FE_GET_PROPERTY failed"); 2293 } 2294 free(t_feinfo); t_feinfo = NULL; 2295 #endif 2296 2179 2297 fehyprid = gethypridtunerchoicesvalue(y); 2298 2180 2299 if(fehyprid != NULL) 2181 2300 { … … 2198 2317 2199 2318 feinfo = fegetinfo(NULL, fd); 2319 2200 2320 if(feinfo != NULL) 2201 2321 { … … 2311 2431 2312 2432 if(tuner->fd == -1) 2313 tuner->fd = feopen(tuner, NULL); 2433 { 2434 if(feopen(tuner, NULL) < 0) 2435 err("open tuner dev"); 2436 } 2314 2437 else 2315 2438 wasopen = 1; … … 2338 2461 //to do set voltage --> wenn der Tuner es kann 2339 2462 //fesetvoltage(tuner, SEC_VOLTAGE_13, 10); 2340 if(realname != NULL && ostrstr(realname, "DVB-T2") != NULL) 2463 //if(realname != NULL && ostrstr(realname, "DVB-T2") != NULL) 2464 /*if(realname != NULL && ostrstr(realname, "T2") != NULL) 2341 2465 p[1].u.data = SYS_DVBT2; 2342 else 2466 else*/ 2343 2467 p[1].u.data = SYS_DVBT; 2344 2468 break; … … 2366 2490 } 2367 2491 debug(200, "data %d",p[1].u.data ); 2492 ret = 0; 2368 2493 if (ioctl(tuner->fd, FE_SET_PROPERTY, &cmdseq) == -1) 2369 2494 { 2370 2495 perr("FE_SET_PROPERTY"); 2371 2496 err("FE_SET_PROPERTY failed -> use procfs to switch delivery system tuner %d mode %s type %d",tuner->devnr ,value, type); 2372 } 2497 ret = -1; 2498 } 2499 else 2500 { 2501 printf("fe set property value %s data %d ... RC:%i\n", value, p[1].u.data, ret); 2502 } 2503 2373 2504 if(wasopen != 1) 2374 2505 feclose(tuner, -1); … … 2397 2528 } 2398 2529 else 2399 err("set system tuner to %d ... file not found -> %s", value, buf);2530 printf("set system tuner to %s ... file not found -> %s\n", value, buf); 2400 2531 free(buf); buf = NULL; 2532 2533 if(ret > -1) 2401 2534 return 1; //true 2402 2403 return 0; //true2535 else 2536 return 0; //false 2404 2537 2405 2538 #else //if DVB_API_VERSION < 5
Note: See TracChangeset
for help on using the changeset viewer.