int default_send(struct ir_remote *remote, struct ir_ncode *code) { /* things are easy, because we only support one mode */ if (drv.send_mode != LIRC_MODE_PULSE) return (0); if (drv.features & LIRC_CAN_SET_SEND_CARRIER) { unsigned int freq; freq = remote->freq == 0 ? DEFAULT_FREQ : remote->freq; if (default_ioctl(LIRC_SET_SEND_CARRIER, &freq) == -1) { logprintf(LIRC_ERROR, "could not set modulation frequency"); logperror(LIRC_ERROR, NULL); return (0); } } if (drv.features & LIRC_CAN_SET_SEND_DUTY_CYCLE) { unsigned int duty_cycle; duty_cycle = remote->duty_cycle == 0 ? 50 : remote->duty_cycle; if (default_ioctl(LIRC_SET_SEND_DUTY_CYCLE, &duty_cycle) == -1) { logprintf(LIRC_ERROR, "could not set duty cycle"); logperror(LIRC_ERROR, NULL); return (0); } } if (!init_send(remote, code)) return (0); if (write_send_buffer(drv.fd) == -1) { logprintf(LIRC_ERROR, "write failed"); logperror(LIRC_ERROR, NULL); return (0); } return (1); }
int default_send(struct ir_remote *remote, struct ir_ncode *code) { /* things are easy, because we only support one mode */ if (drv.send_mode != LIRC_MODE_PULSE) return (0); if (!init_send(remote, code)) return (0); if (write_send_buffer(drv.fd) == -1) { logprintf(LIRC_ERROR, "write failed"); logperror(LIRC_ERROR, NULL); return (0); } return (1); }
int default_send(struct ir_remote *remote,struct ir_ncode *code) { lirc_t remaining_gap; /* things are easy, because we only support one mode */ if(hw.send_mode!=LIRC_MODE_PULSE) return(0); #if !defined(SIM_SEND) || defined(DAEMONIZE) if(hw.features&LIRC_CAN_SET_SEND_CARRIER) { unsigned int freq; freq=remote->freq==0 ? 38000:remote->freq; if(ioctl(hw.fd,LIRC_SET_SEND_CARRIER,&freq)==-1) { logprintf(LOG_ERR,"could not set modulation " "frequency"); logperror(LOG_ERR,NULL); return(0); } } if(hw.features&LIRC_CAN_SET_SEND_DUTY_CYCLE) { unsigned int duty_cycle; duty_cycle=remote->duty_cycle==0 ? 50:remote->duty_cycle; if(ioctl(hw.fd,LIRC_SET_SEND_DUTY_CYCLE,&duty_cycle)==-1) { logprintf(LOG_ERR,"could not set duty cycle"); logperror(LOG_ERR,NULL); return(0); } } #endif remaining_gap=remote->remaining_gap; if(!init_send(remote,code)) return(0); #if !defined(SIM_SEND) || defined(DAEMONIZE) if(remote->last_code!=NULL) { struct timeval current; unsigned long usecs; gettimeofday(¤t,NULL); usecs=time_left(¤t,&remote->last_send,remaining_gap*2); if(usecs>0) usleep(usecs); } #endif if(write_send_buffer(hw.fd,code->length,code->signals)==-1) { logprintf(LOG_ERR,"write failed"); logperror(LOG_ERR,NULL); return(0); } else { gettimeofday(&remote->last_send,NULL); remote->last_code=code; #if defined(SIM_SEND) && !defined(DAEMONIZE) printf("space %lu\n",(unsigned long) remote->remaining_gap); #endif } return(1); }