void log_write_direct(int log_id, const char *fmt, ...) { va_list ap; time_t now; char line[LOG_MAXLINELEN]; if (log_id < 0 || log_id >= LOG_MAXLOGS) return; va_start(ap, fmt); now = time(NULL); _lock_logger(); vsnprintf(line, LOG_MAXLINELEN, fmt, ap); if (_log_open (log_id, now)) { int len = create_log_entry (log_id, "", line); if (len > 0) loglist[log_id].size += len; } _unlock_logger(); va_end(ap); fflush(loglist[log_id].logfile); }
void log_write(int log_id, unsigned priority, const char *cat, const char *func, const char *fmt, ...) { static char *prior[] = { "EROR", "WARN", "INFO", "DBUG" }; int datelen; time_t now; char pre[256]; char line[LOG_MAXLINELEN]; va_list ap; if (log_id < 0 || log_id >= LOG_MAXLOGS) return; /* Bad log number */ if (loglist[log_id].level < priority) return; if (priority > sizeof(prior)/sizeof(prior[0])) return; /* Bad priority */ va_start(ap, fmt); vsnprintf(line, LOG_MAXLINELEN, fmt, ap); now = time(NULL); _lock_logger(); datelen = strftime (pre, sizeof (pre), "[%Y-%m-%d %H:%M:%S]", localtime(&now)); snprintf (pre+datelen, sizeof (pre)-datelen, " %s %s%s ", prior [priority-1], cat, func); if (_log_open (log_id, now)) { int len = create_log_entry (log_id, pre, line); if (len > 0) loglist[log_id].size += len; } _unlock_logger(); va_end(ap); }
void noteon_to_arpeggiator(MidiDevice * midi_device, uint8_t inByte0, uint8_t inByte1, uint8_t inByte2){ uint8_t channel = inByte0 - MIDI_NOTEON; create_log_entry(true, inByte0, inByte1, inByte2); if (inByte2 == 0) remove_note_from_arpeggiator(stored_sequencer, inByte1); else{ add_note_to_arpeggiator(stored_sequencer, inByte1, inByte2, channel); } }
void serial_midi_send(MidiDevice* midi_device, uint8_t cnt, uint8_t inByte0, uint8_t inByte1, uint8_t inByte2){ //debug routine to produce logs create_log_entry(false, inByte0, inByte1, inByte2); //we always send the first byte while (!(USARTD1.STATUS & 0x20)){}; // Wait for empty transmit buffer USARTD1.DATA = inByte0; //if cnt == 2 or 3 we send the send byte if(cnt > 1) { while (!(USARTD1.STATUS & 0x20)){}; // Wait for empty transmit buffer USARTD1.DATA = inByte1; } //if cnt == 3 we send the third byte if(cnt == 3) { while (!(USARTD1.STATUS & 0x20)){}; // Wait for empty transmit buffer USARTD1.DATA = inByte2; } }
void noteoff_to_arpeggiator(MidiDevice * midi_device, uint8_t inByte0, uint8_t inByte1, uint8_t inByte2){ create_log_entry(true, inByte0, inByte1, inByte2); remove_note_from_arpeggiator(stored_sequencer, inByte1); }