static DBusHandlerResult signal_filter (DBusConnection *connection, DBusMessage *message, void *user_data) { /* User data is the event loop we are running in */ //GMainLoop *loop = user_data; /* A signal from the bus saying we are about to be disconnected */ if (dbus_message_is_signal (message, DBUS_INTERFACE_LOCAL, "Disconnected")) { /* Tell the main loop to quit */ // g_main_loop_quit (loop); /* We have handled this message, don't pass it on */ return DBUS_HANDLER_RESULT_HANDLED; } else if (dbus_message_is_signal (message, "org.freedesktop.MediaPlayer", "TrackChange") || dbus_message_is_signal (message, "org.freedesktop.DBus.Properties", "PropertiesChanged")) { DBusError error; DBusMessageIter iter; dbus_error_init (&error); mylog("DBUS>> GOT SIGNAL!!!\n"); dbus_message_iter_init (message, &iter); last_string[0]='\0'; varian_now=0; do_iter(&iter); return DBUS_HANDLER_RESULT_HANDLED; } return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; }
int main() { int x, y; for (y = -FRAC_ONE+STEP_SIZE; y < FRAC_ONE; y += STEP_SIZE) { for (x = -3*FRAC_ONE+STEP_SIZE; x < 2*FRAC_ONE; x += STEP_SIZE) { int val = do_iter(x, y, MAX_SQUARE, MAX_ITER); WRITE(&(map[val & 0xf]), 1); } WRITE("\n", 1); } return 0; }
static void slave(void) { int slave_id = core_id-1; while (slave_mpb[slave_id]->packet.cmd != CMD_START) { /* spin until start packet arrives */ } /* respond to start packet */ slave_mpb[slave_id]->row.cmd = CMD_START; DMA(0, &(master_mpb->slave[slave_id].row), &(slave_mpb[slave_id]->row), sizeof(struct rowbuf_t)); /* loop while new packets arrive */ for (;;) { while (slave_mpb[slave_id]->packet.cmd <= CMD_NULL && slave_mpb[slave_id]->packet.cmd != CMD_STOP) { /* spin until packet arrives */ } /* terminate if stop packet arrives */ if (slave_mpb[slave_id]->packet.cmd == CMD_STOP) { break; } /* copy packet to local memory */ struct packet_t _SPM *ptr = &(slave_mpb[slave_id]->packet); struct packet_t p __attribute__ ((aligned (4))); p.yval = ptr->yval; p.xstart = ptr->xstart; p.xend = ptr->xend; p.xstep = ptr->xstep; p.cmd = ptr->cmd; /* clear command */ slave_mpb[slave_id]->packet.cmd = CMD_NULL; /* compute pixels for one row */ int x, idx; for (idx = 0, x = p.xstart; x < p.xend; idx++, x += p.xstep) { int val = do_iter(x, p.yval, MAX_SQUARE, MAX_ITER); slave_mpb[slave_id]->row.data[idx] = map[val & 0x3f]; } /* send row */ slave_mpb[slave_id]->row.cmd = p.cmd; DMA(0, &(master_mpb->slave[slave_id].row), &(slave_mpb[slave_id]->row), sizeof(struct rowbuf_t)); } }
int main(void) { #else int main(int argc, char **argv) { #endif write_xpm_header(); int x, y; for (y = YSTART; y < YEND; y += YSTEP_SIZE) { WRITE("\"", 1); for (x = XSTART; x < XEND; x += XSTEP_SIZE) { int val = do_iter(x, y, MAX_SQUARE, MAX_ITER); WRITE(&(map[val & 0x3f]), 1); } WRITE("\",\n", 3); } WRITE("};\n", 3); return 0; }
void draw_fract(t_env *e) { int i; double re; double im; e->win_x = 0; while (e->win_x < WIN_WIDTH) { e->win_y = 0; while (e->win_y < WIN_HEIGHT) { set_env_values(e, &re, &im); i = do_iter(e, re, im); ft_putpix(e, e->win_x, e->win_y, coloring(i, e->new_r, e->new_i) * (i < e->max_i)); e->win_y++; } e->win_x++; } }
static void do_iter (DBusMessageIter *iter) { static struct timeval album_time={0,0}, artist_time={0,0}, title_time={0,0}, now_time={0,0}; char *decoded; int pos, len, i; do { int type = dbus_message_iter_get_arg_type (iter); const char *str; if (type == DBUS_TYPE_INVALID) break; switch (type) { case DBUS_TYPE_STRING: dbus_message_iter_get_basic (iter, &str); if(varian_now){ gettimeofday(&now_time,NULL); mylog("DBUS>> %s : '%s'\n",last_string,str); if((strcmp(ALBUM_STRING,last_string)==0) || (strcmp(ALBUM_STRING2,last_string)==0)){ strncpy(album,str,MAX_STR_LEN); now_playing_changed=1; if(now_time.tv_sec-artist_time.tv_sec>DBUS_INTERVAL) artist[0]='\0'; if(now_time.tv_sec-title_time.tv_sec >DBUS_INTERVAL) title[0]='\0'; album_time.tv_sec=now_time.tv_sec; mylog("DBUS>> ALBUM='%s'\n",str); } else if((strcmp(TITLE_STRING,last_string)==0) || (strcmp(TITLE_STRING2,last_string)==0)){ strncpy(title,str,MAX_STR_LEN); now_playing_changed=1; if(now_time.tv_sec-artist_time.tv_sec>DBUS_INTERVAL) artist[0]='\0'; if(now_time.tv_sec-album_time.tv_sec >DBUS_INTERVAL) album[0]='\0'; title_time.tv_sec=now_time.tv_sec; mylog("DBUS>> TITLE='%s'\n",str); } else if((strcmp(ARTIST_STRING,last_string)==0) || (strcmp(ARTIST_STRING2,last_string)==0)){ strncpy(artist,str,MAX_STR_LEN); now_playing_changed=1; if(now_time.tv_sec-album_time.tv_sec>DBUS_INTERVAL) album[0]='\0'; if(now_time.tv_sec-title_time.tv_sec>DBUS_INTERVAL) title[0]='\0'; artist_time.tv_sec=now_time.tv_sec; mylog("DBUS>> ARTIST='%s'\n",str); } else if((now_playing_changed==0) && (strcmp(LOC_STRING,last_string)==0)){ decoded=url_decode(str); len=strlen(decoded); pos=0; for(i=0;i<len;++i){ if(decoded[i]=='/') pos=i+1; } strncpy(title,decoded+pos,MAX_STR_LEN); free(decoded); now_playing_changed=1; } } strncpy(last_string,str,MAX_STR_LEN); break; case DBUS_TYPE_VARIANT: { DBusMessageIter subiter; dbus_message_iter_recurse (iter, &subiter); // printf ("variant:"); varian_now=1; do_iter (&subiter); varian_now=0; break; } case DBUS_TYPE_ARRAY: { int current_type; DBusMessageIter subiter; dbus_message_iter_recurse (iter, &subiter); // printf("["); while ((current_type = dbus_message_iter_get_arg_type (&subiter)) != DBUS_TYPE_INVALID) { do_iter (&subiter); dbus_message_iter_next (&subiter); // if (dbus_message_iter_get_arg_type (&subiter) != DBUS_TYPE_INVALID) // printf (","); } // printf("]"); break; } case DBUS_TYPE_DICT_ENTRY: { DBusMessageIter subiter; dbus_message_iter_recurse (iter, &subiter); // printf("{"); do_iter (&subiter); dbus_message_iter_next (&subiter); do_iter (&subiter); // printf("}"); break; } default: break; } } while (dbus_message_iter_next (iter)); }