コード例 #1
0
ファイル: osd-example.c プロジェクト: akashpandey/showkeys
int main (int argc, char *argv[])
{
  xosd *osd;
  int i;

  osd = xosd_create (10);

  xosd_set_font(osd, "fixed");
  xosd_set_colour(osd, "LawnGreen");
  xosd_set_timeout(osd, 3);
  xosd_set_shadow_offset(osd, 1);

  
  for(i = 0; i < 10; i ++) {
    xosd_display (osd, i, XOSD_printf, "Example XOSD output %d", i);
  }

  for(i = 0; i < 10; i ++) {
    sleep(1);
    printf(".");
    xosd_scroll(osd, 2);
  }
  



  xosd_wait_until_no_display(osd);

  xosd_destroy (osd);

  return 0;
}
コード例 #2
0
ファイル: xosdvol.c プロジェクト: hhomar/volume_events
void
volume_display(xosd *osd, int percent, int muted)
{
    char vol_percent[25];
    if (muted)
        snprintf(vol_percent, 22, "Volume - %i%% (Muted)", percent);
    else
        snprintf(vol_percent, 14, "Volume - %i%%", percent);
    xosd_set_timeout(osd, 5);
    xosd_display(osd, 0, XOSD_string, vol_percent);
    xosd_display(osd, 1, XOSD_slider, percent);
}
コード例 #3
0
ファイル: osd.c プロジェクト: d-torrance/dockapps
int osd_init(char *progname, char *font, char *color,
	     int x, int y, int shadow, int timeout) {

#ifdef HAVE_XOSD
    /*
    osd = xosd_init(! font ? font : "fixed" ,
		    ! color ? color : "LawnGreen",
		    timeout,
		    XOSD_top,
		    x,
		    shadow,
		    1);
    if(!osd) {
    	fprintf(stderr, "%s: OSD error\n", progname);
	return 0;
    }
    */

    if (!(osd = xosd_create(1))) {
	fprintf(stderr, "%s: OSD error\n", progname);
	return 0;
    }

    if (font) {
	if (xosd_set_font(osd, font)) {
	    fprintf(stderr, "%s: OSD font init error\n", progname);
            xosd_set_font(osd, "fixed");
	}
    }
    else xosd_set_font(osd, "fixed");

    if (color) {
	if (xosd_set_colour(osd, color)) {
	    fprintf(stderr, "%s: OSD color init error\n", progname);
	    xosd_set_colour(osd, "LawnGreen");
	}
    }
    else xosd_set_colour(osd, "LawnGreen");

    xosd_set_vertical_offset(osd, y);
    xosd_set_horizontal_offset(osd, x);
    xosd_set_shadow_offset(osd, shadow);
    xosd_set_timeout(osd, timeout);

    return 1;
#else /* HAVE_XOSD */
    printf("wmradio: warning - compiled without osd\n");
    return 0;
#endif /* HAVE_XOSD */
}
コード例 #4
0
ファイル: showkeys.c プロジェクト: nibrahim/showkeys
xosd *
configure_osd(int lines)
{
  xosd *osd;
  osd = xosd_create (NKEYS);

  xosd_set_font(osd, SK_FONT);
  xosd_set_pos(osd, SK_POS);
  xosd_set_align(osd, SK_ALIGN);
  xosd_set_colour(osd, SK_FG);
  xosd_set_outline_colour(osd, SK_OUTLINE);
  xosd_set_outline_offset(osd, SK_OFFSET);
  xosd_set_shadow_colour(osd, SK_SHADOW);
  xosd_set_shadow_offset(osd, SK_SHOFFSET);
  xosd_set_timeout(osd, SK_TIMEOUT);

  return osd;
}
コード例 #5
0
/*****************************************************************************
 * Open: initialize and create stuff
 *****************************************************************************/
static int Open( vlc_object_t *p_this )
{
    intf_thread_t *p_intf = (intf_thread_t *)p_this;
    intf_sys_t *p_sys;
    xosd *p_osd;
    char *psz_font, *psz_colour;

    if( getenv( "DISPLAY" ) == NULL )
    {
        msg_Err( p_intf, "no display, please set the DISPLAY variable" );
        return VLC_EGENERIC;
    }

    /* Allocate instance and initialize some members */
    p_sys = p_intf->p_sys = malloc( sizeof( intf_sys_t ) );
    if( p_sys == NULL )
        return VLC_ENOMEM;

    /* Initialize library */
    psz_font = config_GetPsz( p_intf, "xosd-font" );
    psz_colour = config_GetPsz( p_intf, "xosd-colour" );

    p_osd = xosd_create( 1 );
    if( p_osd == NULL )
    {
        msg_Err( p_intf, "couldn't initialize libxosd" );
        free( psz_colour );
        free( psz_font );
        free( p_sys );
        return VLC_EGENERIC;
    }
    p_sys->p_osd = p_osd;

    /* Set user preferences */
    xosd_set_outline_colour( p_osd, "black" );
    xosd_set_font( p_osd, psz_font );
    xosd_set_colour( p_osd, psz_colour );
    xosd_set_timeout( p_osd, 3 );
    xosd_set_pos( p_osd, config_GetInt( p_intf, "xosd-position" ) ?
                  XOSD_bottom: XOSD_top );
    xosd_set_horizontal_offset( p_osd,
                                config_GetInt( p_intf, "xosd-text-offset" ) );
    xosd_set_vertical_offset( p_osd,
                              config_GetInt( p_intf, "xosd-text-offset" ) );
    xosd_set_shadow_offset( p_osd,
                            config_GetInt( p_intf, "xosd-shadow-offset" ));

    /* Initialize to NULL */
    xosd_display( p_osd, 0, XOSD_string, "XOSD interface initialized" );

    free( psz_colour );
    free( psz_font );

    // Initialize mutex and condition variable before adding the callbacks
    vlc_mutex_init( &p_sys->lock );
    vlc_cond_init( &p_sys->cond );
    // Add the callbacks
    playlist_t *p_playlist = pl_Hold( p_intf );
    var_AddCallback( p_playlist, "item-current", PlaylistNext, p_this );
    var_AddCallback( p_playlist, "item-change", PlaylistNext, p_this );
    pl_Release( p_intf );

    p_sys->b_need_update = true;
    p_intf->pf_run = Run;
    return VLC_SUCCESS;
}
コード例 #6
0
/*****************************************************************************
 * Open: initialize and create stuff
 *****************************************************************************/
static int Open( vlc_object_t *p_this )
{
    intf_thread_t *p_intf = (intf_thread_t *)p_this;
    xosd *p_osd;

    /* Allocate instance and initialize some members */
    p_intf->p_sys = (intf_sys_t *)malloc( sizeof( intf_sys_t ) );
    if( p_intf->p_sys == NULL )
    {
        msg_Err( p_intf, "out of memory" );
        return VLC_ENOMEM;
    }

    if( getenv( "DISPLAY" ) == NULL )
    {
        msg_Err( p_intf, "no display, please set the DISPLAY variable" );
        return VLC_EGENERIC;
    }

    /* Initialize library */
#if defined(HAVE_XOSD_VERSION_0) || defined(HAVE_XOSD_VERSION_1)
    p_osd  = p_intf->p_sys->p_osd =
        xosd_init( config_GetPsz( p_intf, "xosd-font" ),
                   config_GetPsz( p_intf,"xosd-colour" ), 3,
                   XOSD_top, 0, 1 );
    if( p_intf->p_sys->p_osd == NULL )
    {
        msg_Err( p_intf, "couldn't initialize libxosd" );
        return VLC_EGENERIC;
    }
#else
    p_osd = p_intf->p_sys->p_osd = xosd_create( 1 );
    if( p_osd == NULL )
    {
        msg_Err( p_intf, "couldn't initialize libxosd" );
        return VLC_EGENERIC;
    }
    xosd_set_colour( p_osd, config_GetPsz( p_intf,"xosd-colour" ) );
    xosd_set_timeout( p_osd, 3 );
#endif


    playlist_t *p_playlist =
            (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
                                           FIND_ANYWHERE );
    if( p_playlist == NULL )
    {
        return VLC_EGENERIC;
    }

    var_AddCallback( p_playlist, "playlist-current", PlaylistNext, p_this );
    var_AddCallback( p_playlist, "item-change", PlaylistNext, p_this );

    vlc_object_release( p_playlist );

    /* Set user preferences */
    xosd_set_font( p_intf->p_sys->p_osd,
                    config_GetPsz( p_intf, "xosd-font" ) );
    xosd_set_outline_colour( p_intf->p_sys->p_osd,"black" );
#ifdef HAVE_XOSD_VERSION_2
    xosd_set_horizontal_offset( p_intf->p_sys->p_osd,
                    config_GetInt( p_intf, "xosd-text-offset" ) );
    xosd_set_vertical_offset( p_intf->p_sys->p_osd,
                    config_GetInt( p_intf, "xosd-text-offset" ) );
#else
    xosd_set_offset( p_intf->p_sys->p_osd,
                    config_GetInt( p_intf, "xosd-text-offset" ) );
#endif
    xosd_set_shadow_offset( p_intf->p_sys->p_osd,
                    config_GetInt( p_intf, "xosd-shadow-offset" ));
    xosd_set_pos( p_intf->p_sys->p_osd,
                    config_GetInt( p_intf, "xosd-position" ) ?
                                         XOSD_bottom: XOSD_top );

    /* Initialize to NULL */
    xosd_display( p_osd, 0, XOSD_string, "XOSD interface initialized" );

    p_intf->pf_run = Run;

    p_intf->p_sys->b_need_update = VLC_TRUE;

    return VLC_SUCCESS;
}
コード例 #7
0
ファイル: sublim.c プロジェクト: enkiv2/asublim
	--screen-height	Specify screen height\n\n";
int main(int argc, char** argv) {
	signal(SIGINT, intHandler);
	
	xosd *osd;

	Display* d=XOpenDisplay(":0");
	
	int screenCount = ScreenCount(d);
	fprintf(stderr, "\nNumber of screens: %d\n", screenCount);
	int i;
	for (i=0; i<screenCount ; i++) {
		fprintf(stderr, " %d: %dx%x\n", i, DisplayWidth(d, i), DisplayHeight(d, i));
	}	

	int timeout;
	char* color="LawnGreen";
	char* font="-*-fixed-*-*-*-*-15-140-*-*-*-*-*-*";
	FILE* input=stdin;
	int delayShowMax=10000;
	int delayShowMin=1000;
	int delayWordMax=50;
	int delayWordMin=10;

	int screenWidthOverride=0;
	int screenHeightOverride=0;

	int ret;
	while((ret=getopt_long(argc, argv, ASublimOptString, lopts, NULL)) != -1) {
		switch(ret) {
			case 'S':
				delayShowMax=atoi(optarg);
				break;
			case 's':
				delayShowMin=atoi(optarg);
				break;
			case 'D':
				delayWordMax=atoi(optarg);
				break;
			case 'd':
				delayWordMin=atoi(optarg);
				break;
			case 't':
				timeout=atoi(optarg);
				break;
			case 'f':
				font=strncpy(malloc(strlen(optarg)+1), optarg, strlen(optarg)+1);
				break;
			case 'c':
				color=malloc(strlen(optarg));
				color=strncpy(malloc(strlen(optarg)+1), optarg, strlen(optarg)+1);
				break;
			case 'F':
				input=fopen(optarg, "r");
				if(errno) {
					fprintf(stderr, "File error! Defaulting to stdin.\n");
					input=stdin;
				}
				break;
			case 'w':
				screenWidthOverride=atoi(optarg);
				break;
			case 'y':
				screenHeightOverride=atoi(optarg);
				break;
			case 'h':
			case '?':
				fprintf(stderr, "Usage: %s %s", argv[0], helpstr);
				exit(0);
				break;
		}
	}

	osd = xosd_create(1);
	if(xosd_set_font(osd, font)==-1) {
		fprintf(stderr, "Font not found\n");
		exit(1);
	}
	if(xosd_set_colour(osd, color)==-1) {
		fprintf(stderr, "Color set error\n");
		exit(1);
	}
	if(xosd_set_timeout(osd, timeout)==-1) {
		fprintf(stderr, "Timeout set error\n");
		exit(1);
	}

	xosd_set_shadow_offset(osd, 3);
	srand48(time(NULL));
	char* buf=calloc(1025, sizeof(char));

	int height=screenHeightOverride;
	int width=screenWidthOverride;
	ret=fscanf(input, "%1024s", buf);
	while(buf[0]!=EOF && ret>0) {
		int screen = lrand48() % screenCount;
		if (!(screenWidthOverride && screenHeightOverride)) {
			height=	DisplayHeight(d, screen);
			width=	DisplayWidth(d, screen);
		}
		xosd_set_vertical_offset(osd, lrand48()%height);
		xosd_set_horizontal_offset(osd, lrand48()%width);
		xosd_display(osd, screen, XOSD_string, buf);
		
		xosd_show(osd);
		usleep((unsigned int)((lrand48()%(delayShowMax-delayShowMin)))+delayShowMin);
		xosd_hide(osd);
		
		ret=fscanf(input, "%1024s", buf);
		usleep((unsigned int)((lrand48()%(delayWordMax-delayWordMin)))+delayWordMin);
	}
	
	xosd_wait_until_no_display(osd);
	xosd_destroy(osd);

	return 0;
}
コード例 #8
0
ファイル: xmms_osd.c プロジェクト: skripac/libxosd
/*
 * Apply changed from configuration dialog.
 */
static void configure_apply_cb (gpointer data)

{

  ConfigFile *cfgfile;

  show_volume=isactive(vol_on);
  show_balance=isactive(bal_on);
  show_pause=isactive(pause_on);
  show_trackname=isactive(trackname_on);
  show_stop=isactive(stop_on);
  show_repeat=isactive(repeat_on);
  show_shuffle=isactive(shuffle_on);


  if (colour)
    g_free (colour);
  if (font)
    g_free (font);

  colour = g_strdup (gtk_entry_get_text (GTK_ENTRY (colour_entry)));
  font = g_strdup (gtk_entry_get_text (GTK_ENTRY (font_entry)));
  timeout = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (timeout_spin));
  offset = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (offset_spin));
  shadow_offset = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (shadow_spin));
  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (pos_top)))
    pos = XOSD_top;
  else
    pos = XOSD_bottom;

  if (osd)
    {
      xosd_set_colour (osd, colour);
      if (xosd_set_font (osd, font) == -1) {
	DEBUG("invalid font");
	DEBUG(font);
      }
      xosd_set_timeout (osd, timeout);
      xosd_set_offset (osd, offset);
      xosd_set_shadow_offset (osd, shadow_offset);
      xosd_set_pos (osd, pos);
    }

  cfgfile = xmms_cfg_open_default_file();
  xmms_cfg_write_string(cfgfile, "osd", "colour", colour);
  xmms_cfg_write_string(cfgfile, "osd", "font", font);
  xmms_cfg_write_int(cfgfile, "osd", "timeout", timeout);
  xmms_cfg_write_int(cfgfile, "osd", "offset", offset);
  xmms_cfg_write_int(cfgfile, "osd", "shadow_offset", shadow_offset);
  xmms_cfg_write_int(cfgfile, "osd", "pos", pos);

  xmms_cfg_write_int (cfgfile, "osd", "show_volume", show_volume );
  xmms_cfg_write_int (cfgfile, "osd", "show_balance", show_balance );
  xmms_cfg_write_int (cfgfile, "osd", "show_pause", show_pause );
  xmms_cfg_write_int (cfgfile, "osd", "show_trackname", show_trackname );
  xmms_cfg_write_int (cfgfile, "osd", "show_stop", show_stop );
  xmms_cfg_write_int (cfgfile, "osd", "show_repeat", show_repeat );
  xmms_cfg_write_int (cfgfile, "osd", "show_shuffle", show_shuffle );

  xmms_cfg_write_default_file(cfgfile);
  xmms_cfg_free(cfgfile);
}
コード例 #9
0
ファイル: xcid.c プロジェクト: amigan/cidserv
int
main (int argc, char *argv[])
{
/*	if(argc < 2) {
		fprintf(stderr, "Usage: %s server-ip\n", argv[0]);
		exit(1);
	}
	servaddr = strdup(argv[1]); */
#ifdef USE_XOSD
	int ch;
  	xosd *osd;
	while ((ch = getopt(argc, argv, "f:t:o:c:sa:")) != -1) {
		switch(ch) {
			case 'f':
				XOSD_FONT = strdup(optarg);
				break;
			case 'a': /* align... tr == top right bl ==
				     bottomleft */
				if(strlen(optarg) != 2) {
					fprintf(stderr, "-a error\n");
					exit(-1);
				}
				if(*optarg == 'b')
					vert = 0;
				if(optarg[1] == 'l')
					horiz = 0;
				break;
			case 't':
				XOSD_TIMEOUT = atoi(optarg);
				if(XOSD_TIMEOUT < 1) XOSD_TIMEOUT = 
					DEF_XOSD_TIMEOUT;
				break;
			case 'o':
				XOSD_VOFFSET = atoi(optarg);
				break;
			case 'c':
				XOSD_COLOUR = strdup(optarg);
				break;
			case 's':
				test = 1;
				break;
			case '?':
			default:
				usage();
				exit(-1);
		}
	}
	argc -= optind;
	argv += optind;

	if(test) {
osd = xosd_create(2);
  xosd_set_font(osd, XOSD_FONT);
  xosd_set_colour(osd, XOSD_COLOUR);
  xosd_set_timeout(osd, XOSD_TIMEOUT);
  xosd_set_pos(osd, vert ? XOSD_top : XOSD_bottom);
  xosd_set_align(osd, horiz ? XOSD_right : XOSD_left);
  xosd_set_vertical_offset(osd, XOSD_VOFFSET);
  xosd_set_shadow_offset(osd, 1);
  xosd_display(osd, 0, XOSD_printf, "Welcome to xcid!");
  xosd_wait_until_no_display(osd);
  xosd_destroy(osd);
}

#endif
  start_netloop ();
#ifdef USE_XOSD
  free(XOSD_COLOUR);
  free(XOSD_FONT);
#endif
  return 0;
}