Beispiel #1
0
void sound_start_music (gchar *filename)
{
    if (!xmms_remote_is_running (0))
    {
	system ("xmms &");
	g_timeout_add (200, poll_xmms, (gpointer) filename);
    } else
	start_music0 (filename);
}
Beispiel #2
0
static gboolean poll_xmms (gpointer data)
{
    if (xmms_remote_is_running (0))
    {
	start_music0 ((gchar *) data);
	return FALSE;
    }
    return TRUE;
}
Beispiel #3
0
static int cxmms_read (void)
{
  gint rate;
  gint freq;
  gint nch;

  if (!xmms_remote_is_running (xmms_session))
    return (0);

  xmms_remote_get_info (xmms_session, &rate, &freq, &nch);

  if ((freq == 0) || (nch == 0))
    return (-1);

  cxmms_submit ("bitrate", rate);
  cxmms_submit ("frequency", freq);

  return (0);
} /* int read */
Beispiel #4
0
void sound_stop_music ()
{
    gint i;
    
    if (xmms_remote_is_running (0))
    {
	if (xmms_remote_is_playing (0))
	    xmms_remote_stop (0);

	xmms_remote_playlist_clear (0);
	xmms_remote_playlist (0, old_playlist, old_length, TRUE);

	if (xmms_remote_is_repeat (0) != old_repeat)
	    xmms_remote_toggle_repeat (0);
    }

    for (i = 0; i < old_length; i++)
	g_free (old_playlist[i]);
    g_free (old_playlist);
}
Beispiel #5
0
void XMMSSensor::update()
{
    QString format;
    SensorParams *sp;
    Meter *meter;
    QObjectListIt it( *objList );

#ifdef HAVE_XMMS

    int pos;
    QString title;
    int songLength = 0;
    int currentTime = 0;
    bool isPlaying = false;
    bool isRunning = xmms_remote_is_running(0);

    if( isRunning )
    {
        isPlaying = xmms_remote_is_playing(0);
        pos = xmms_remote_get_playlist_pos(0);
        qDebug("unicode start");
        title = codec->toUnicode( QCString( xmms_remote_get_playlist_title( 0, pos ) )  );
        qDebug("unicode end");
        if( title.isEmpty() )
            title = "XMMS";

        qDebug("Title: %s", title.ascii());
        songLength = xmms_remote_get_playlist_time( 0, pos );
        currentTime = xmms_remote_get_output_time( 0 );
    }
#endif // HAVE_XMMS

    while (it != 0)
    {
        sp = (SensorParams*)(*it);
        meter = sp->getMeter();

#ifdef HAVE_XMMS

        if( isRunning )
        {

            format = sp->getParam("FORMAT");


            if (format.length() == 0 )
            {
                format = "%title %time / %length";
            }

            if( format == "%ms" )
            {
                meter->setMax( songLength );
                meter->setValue( currentTime );
            }
            else

                if ( format == "%full" )
                {
                    meter->setValue( 1 );
                }
                else

                {


                    format.replace( QRegExp("%title", false), title );

                    format.replace( QRegExp("%length", false), QTime( 0,0,0 ).
                                    addMSecs( songLength )
                                    .toString( "h:mm:ss" ) );

                    format.replace( QRegExp("%time", false), QTime( 0,0,0 ).
                                    addMSecs( currentTime )
                                    .toString( "h:mm:ss" ) );

                    if( isPlaying  )
                    {
                        format.replace( QRegExp("%remain", false), QTime( 0,0,0 ).
                                        addMSecs( songLength )
                                        .addMSecs(-currentTime )
                                        .toString( "h:mm:ss" ) );
                    }

                    else
                    {
                        format.replace( QRegExp("%remain", false), QTime( 0,0,0 ).toString("h:mm:ss" ) );
                    }
                    meter->setValue(format);
                }
        }
        else
#endif // HAVE_XMMS

        {
            meter->setValue("");
        }
        ++it;

    }

}