Esempio n. 1
0
static int lv_morph_flash_apply (VisPluginData *plugin, float rate, VisAudio *audio, VisVideo *dest, VisVideo *src1, VisVideo *src2)
{
    FlashPrivate *priv = visual_object_get_private (VISUAL_OBJECT (plugin));

    switch (dest->depth) {
    case VISUAL_VIDEO_DEPTH_8BIT:
        flash_8 (priv, rate, dest, src1, src2);
        break;

    case VISUAL_VIDEO_DEPTH_16BIT:

        break;

    case VISUAL_VIDEO_DEPTH_24BIT:
        replacetable_generate_24 (priv, rate);
        flash_24 (priv, rate, dest, src1, src2);
        break;

    case VISUAL_VIDEO_DEPTH_32BIT:
        replacetable_generate_24 (priv, rate);
        flash_24 (priv, rate, dest, src1, src2);
        break;

    default:
        break;
    }

    return 0;
}
Esempio n. 2
0
static int lv_nebulus_cleanup (VisPluginData *plugin)
{
	NebulusPrivate *priv = visual_object_get_private (VISUAL_OBJECT (plugin));

	visual_return_val_if_fail (plugin != NULL, -1);

	if (!face_first)
		glDeleteLists(facedl, 1);
	if (!tentacles_first)
		glDeleteLists(cubedl, 1);
	if (!child_first)
		glDeleteLists(childdl, 1);

	delete_gl_texture(knotbg);
	delete_gl_texture(tunnel);
	delete_gl_texture(tentacle);
	delete_gl_texture(twist);
	delete_gl_texture(twistbg);
	delete_gl_texture(texchild);
	delete_gl_texture(childbg);
	delete_gl_texture(energy);

	visual_object_unref (VISUAL_OBJECT (&child_image));
	visual_object_unref (VISUAL_OBJECT (&energy_image));
	visual_object_unref (VISUAL_OBJECT (&tentacle_image));
	visual_object_unref (VISUAL_OBJECT (&tunnel_image));
	visual_object_unref (VISUAL_OBJECT (&twist_image));
	visual_object_unref (VISUAL_OBJECT (&background_image));

	visual_buffer_free (priv->pcmbuf);

	visual_mem_free (priv);

	return 0;
}
Esempio n. 3
0
VISUAL_C_LINKAGE
int lv_gforce_events (VisPluginData *plugin, VisEventQueue *events)
{
    GForcePrivate *priv = (GForcePrivate *) visual_object_get_private (VISUAL_OBJECT (plugin));
    VisEvent ev;

    while (visual_event_queue_poll (events, &ev)) {
        switch (ev.type) {
        case VISUAL_EVENT_RESIZE:
            lv_gforce_resize (plugin, ev.event.resize.width, ev.event.resize.height);
            break;

        case VISUAL_EVENT_MOUSEMOTION:
            break;

        case VISUAL_EVENT_MOUSEBUTTONDOWN:
        case VISUAL_EVENT_MOUSEBUTTONUP:
            break;

        case VISUAL_EVENT_KEYDOWN:
            priv->gGF->HandleKey (ev.event.keyboard.keysym.sym);
            break;

        default:
            break;
        }
    }

    return 0;
}
Esempio n. 4
0
static int act_infinite_render (VisPluginData *plugin, VisVideo *video, VisAudio *audio)
{
	VisBuffer *buffer;
	InfinitePrivate *priv;

	visual_return_val_if_fail (plugin != NULL, -1);
	visual_return_val_if_fail (video != NULL, -1);
	visual_return_val_if_fail (audio != NULL, -1);

	priv = visual_object_get_private (VISUAL_OBJECT (plugin));

	buffer = visual_buffer_new ();

	visual_buffer_set_data_pair (buffer, priv->pcm_data[0], sizeof (float) * 512);
	visual_audio_get_sample (audio, buffer, VISUAL_AUDIO_CHANNEL_LEFT);

	visual_buffer_set_data_pair (buffer, priv->pcm_data[1], sizeof (float) * 512);
	visual_audio_get_sample (audio, buffer, VISUAL_AUDIO_CHANNEL_LEFT);

	_inf_renderer (priv);
	_inf_display (priv, (uint8_t *) visual_video_get_pixels (video), video->pitch);

	visual_buffer_free (buffer);

	return 0;
}
Esempio n. 5
0
static int inp_debug_upload (VisPluginData *plugin, VisAudio *audio)
{
    /* FIXME: Wave is incrementally calculated and will very gradually
       increase/decrease in frequency due to error accumulation */

    DebugPriv *priv = visual_object_get_private (VISUAL_OBJECT (plugin));

    int16_t data[OUTPUT_SAMPLES];
    int i;

    for(i = 0; i < VISUAL_TABLESIZE(data); i++) {
        data[i] = (int16_t) (65535/2 * priv->ampltitude * sin (priv->angle));

        priv->angle += priv->angle_step;
        if (priv->angle >= 2 * VISUAL_MATH_PI) {
            priv->angle -= 2 * VISUAL_MATH_PI;
        }
    }

    VisBuffer *buffer = visual_buffer_new_wrap_data (data, VISUAL_TABLESIZE (data));

    visual_audio_samplepool_input (audio->samplepool, buffer, VISUAL_AUDIO_SAMPLE_RATE_44100,
                                   VISUAL_AUDIO_SAMPLE_FORMAT_S16, VISUAL_AUDIO_SAMPLE_CHANNEL_STEREO);

    visual_buffer_free (buffer);

    return 0;
}
Esempio n. 6
0
VISUAL_C_LINKAGE
int lv_gforce_render (VisPluginData *plugin, VisVideo *video, VisAudio *audio)
{
    GForcePrivate *priv = (GForcePrivate *) visual_object_get_private (VISUAL_OBJECT (plugin));
    VisBuffer pcmbuf;
    VisBuffer freqbuf;
    int i;
    long time;
    float gSoundBuf[SND_BUF_SIZE];
    float gFFTBuf[FFT_BUF_SIZE];

    visual_buffer_set_data_pair (&pcmbuf, gSoundBuf, sizeof (gSoundBuf));
    visual_audio_get_sample_mixed_simple (audio, &pcmbuf, 2,
                                          VISUAL_AUDIO_CHANNEL_LEFT,
                                          VISUAL_AUDIO_CHANNEL_RIGHT);

    visual_buffer_set_data_pair (&freqbuf, gFFTBuf, sizeof (gFFTBuf));

    visual_audio_get_spectrum_for_sample_multiplied (&freqbuf, &pcmbuf, TRUE, 3.0);

    // Increase volume
    for (i = 0; i < SND_BUF_SIZE; i++)
        gSoundBuf[i] *= 32768;

    // Set the video buffer
    priv->gGF->SetOutVideoBuffer ((unsigned char *) visual_video_get_pixels (video));

    time = EgOSUtils::CurTimeMS ();
    priv->gGF->RecordSample (time, gSoundBuf, .000043, NUMSAMPLES, gFFTBuf, 1, FFT_BUF_SIZE);

    return 0;
}
static int act_gstreamer_cleanup (VisPluginData *plugin)
{
	GstreamerPrivate *priv = visual_object_get_private (VISUAL_OBJECT (plugin));

	visual_mem_free (priv);

	return 0;
}
Esempio n. 8
0
static int lv_goom_resize (VisPluginData *plugin, int width, int height)
{
	GoomPrivate *priv = visual_object_get_private (VISUAL_OBJECT (plugin));

	goom_set_resolution (priv->goominfo, width, height);

	return 0;
}
extern "C" int lv_projectm_cleanup (VisPluginData *plugin)
{
	ProjectmPrivate *priv = (ProjectmPrivate*)visual_object_get_private (VISUAL_OBJECT (plugin));

	/* Cleanup, and thus also free our private */
	visual_mem_free (priv->PM);
	visual_mem_free (priv);
	return 0;
}
Esempio n. 10
0
static VisPalette *act_infinite_palette (VisPluginData *plugin)
{
	InfinitePrivate *priv;

	visual_return_val_if_fail (plugin != NULL, NULL);

	priv = visual_object_get_private (VISUAL_OBJECT (plugin));

	return priv->pal;
}
Esempio n. 11
0
static int lv_morph_flash_cleanup (VisPluginData *plugin)
{
    FlashPrivate *priv = visual_object_get_private (VISUAL_OBJECT (plugin));

    visual_palette_free (priv->whitepal);

    visual_mem_free (priv);

    return 0;
}
Esempio n. 12
0
static int lv_flower_cleanup (VisPluginData *plugin)
{
	FlowerPrivate *priv = visual_object_get_private (VISUAL_OBJECT (plugin));

	visual_timer_free (priv->flower.timer);
	visual_timer_free (priv->t);
	visual_mem_free (priv);

	return 0;
}
Esempio n. 13
0
extern "C" int lv_projectm_dimension (VisPluginData *plugin, VisVideo *video, int width, int height)
{
	ProjectmPrivate *priv = (ProjectmPrivate*)visual_object_get_private (VISUAL_OBJECT (plugin));

	visual_video_set_dimension (video, width, height);

	priv->PM->projectM_resetGL( width, height );

	return 0;
}
Esempio n. 14
0
static int act_infinite_resize (VisPluginData *plugin, int width, int height)
{
	InfinitePrivate *priv = visual_object_get_private (VISUAL_OBJECT (plugin));
	priv->plugwidth = width;
	priv->plugheight = height;

	_inf_close_renderer (priv);
	_inf_init_renderer (priv);

	return 0;
}
Esempio n. 15
0
VISUAL_C_LINKAGE
int lv_gforce_resize (VisPluginData *plugin, int width, int height)
{
    GForcePrivate *priv = (GForcePrivate *) visual_object_get_private (VISUAL_OBJECT (plugin));
    Rect r;

    SetRect (&r, 0, 0, width, height);
    priv->gGF->SetWinPort (0, &r);

    return 0;
}
Esempio n. 16
0
static int act_jakdaw_resize (VisPluginData *plugin, int width, int height)
{
	JakdawPrivate *priv = visual_object_get_private (VISUAL_OBJECT (plugin));

	priv->xres = width;
	priv->yres = height;

	_jakdaw_feedback_reset (priv, width, height);

	return 0;
}
Esempio n. 17
0
/**
 * Notifies all the callbacks for the given VisParamEntry parameter.
 *
 * @param param Pointer to the VisParamEntry of which all the change notification
 * 	callbacks need to be called.
 *
 * @return VISUAL_OK on succes, -VISUAL_ERROR_PARAM_NULL on failure.
 */
int visual_param_entry_notify_callbacks (VisParamEntry *param)
{
	VisListEntry *le = NULL;
	VisParamEntryCallback *pcall;
	
	visual_log_return_val_if_fail (param != NULL, -VISUAL_ERROR_PARAM_NULL);

	while ((pcall = visual_list_next (&param->callbacks, &le)) != NULL)
		pcall->callback (param, visual_object_get_private (VISUAL_OBJECT (pcall)));

	return VISUAL_OK;
}
Esempio n. 18
0
static int lv_nebulus_render (VisPluginData *plugin, VisVideo *video, VisAudio *audio)
{
	NebulusPrivate *priv = visual_object_get_private (VISUAL_OBJECT (plugin));

	visual_return_val_if_fail (plugin != NULL, -1);
	visual_return_val_if_fail (video != NULL, -1);
	visual_return_val_if_fail (audio != NULL, -1);

	nebulus_sound (priv, audio);
	nebulus_draw (priv, video);

	return 0;
}
Esempio n. 19
0
static int act_jakdaw_cleanup (VisPluginData *plugin)
{
	JakdawPrivate *priv = visual_object_get_private (VISUAL_OBJECT (plugin));

	_jakdaw_feedback_close (priv);

	visual_object_unref (VISUAL_OBJECT (priv->pcmbuf));
	visual_object_unref (VISUAL_OBJECT (priv->freqbuf));

	visual_mem_free (priv);

	return 0;
}
Esempio n. 20
0
int inp_alsa_upload (VisPluginData *plugin, VisAudio *audio)
{
	int16_t data[PCM_BUF_SIZE];
	alsaPrivate *priv = NULL;
	int rcnt;

	visual_return_val_if_fail(audio != NULL, -1);
	visual_return_val_if_fail(plugin != NULL, -1);
	priv = visual_object_get_private (VISUAL_OBJECT (plugin));
	visual_return_val_if_fail(priv != NULL, -1);

#if 0
	{	/* DEBUG STUFF, REMOVE IN RELEASE FIXME FIXME XXX TODO WHATEVER */
		VisBuffer buffer;

		visual_buffer_init (&buffer, data, 512, NULL);

		for (i = 0; i < 16; i++) {
			visual_audio_samplepool_input (audio->samplepool, &buffer, VISUAL_AUDIO_SAMPLE_RATE_44100,
					VISUAL_AUDIO_SAMPLE_FORMAT_S16, VISUAL_AUDIO_SAMPLE_CHANNEL_STEREO);
		}
		return 0;
	}
#endif
	do {
		rcnt = snd_pcm_readi(priv->chandle, data, PCM_BUF_SIZE / 2);

		if (rcnt > 0) {
			VisBuffer buffer;

			visual_buffer_init (&buffer, data, rcnt, NULL);

			visual_audio_samplepool_input (audio->samplepool, &buffer, VISUAL_AUDIO_SAMPLE_RATE_44100,
					VISUAL_AUDIO_SAMPLE_FORMAT_S16, VISUAL_AUDIO_SAMPLE_CHANNEL_STEREO);
		}

		if (rcnt < 0) {
			if (rcnt == -EPIPE) {
				visual_log(VISUAL_LOG_WARNING, _("ALSA: Buffer Overrun"));

				if (snd_pcm_prepare(priv->chandle) < 0) {
					visual_log(VISUAL_LOG_ERROR,
							_("Failed to prepare interface"));
					return(-1);
				}
			}
		}
	} while (rcnt > 0);

	return 0;
}
Esempio n. 21
0
static int lv_goom_cleanup (VisPluginData *plugin)
{
	GoomPrivate *priv = visual_object_get_private (VISUAL_OBJECT (plugin));

	if (priv->goominfo != NULL)
		goom_close (priv->goominfo);

	visual_buffer_free (priv->pcmbuf1);
	visual_buffer_free (priv->pcmbuf2);

	visual_mem_free (priv);

	return 0;
}
Esempio n. 22
0
static int act_jakdaw_events (VisPluginData *plugin, VisEventQueue *events)
{
	JakdawPrivate *priv = visual_object_get_private (VISUAL_OBJECT (plugin));
	VisEvent ev;
	VisParamEntry *param;

	while (visual_event_queue_poll (events, &ev)) {
		switch (ev.type) {
			case VISUAL_EVENT_RESIZE:
				act_jakdaw_resize (plugin, ev.event.resize.width, ev.event.resize.height);
				break;

			case VISUAL_EVENT_PARAM:
				param = ev.event.param.param;

				visual_log (VISUAL_LOG_DEBUG, "Param changed: %s", param->name);

				if (visual_param_entry_is (param, "zoom mode")) {
					visual_log (VISUAL_LOG_DEBUG, "New value for the zoom mode param: %d",
							param->numeric.integer);

					priv->zoom_mode = visual_param_entry_get_integer (param);

					_jakdaw_feedback_reset (priv, priv->xres, priv->yres);
				}
				else if (visual_param_entry_is (param, "plotter trigger")) {
					visual_log (VISUAL_LOG_DEBUG, "New value for the plotter trigger param: %d",
							param->numeric.integer);

					priv->plotter_colortype = visual_param_entry_get_integer (param);

				}
				else if (visual_param_entry_is (param, "plotter type")) {
					visual_log (VISUAL_LOG_DEBUG, "New value for the plotter type param: %d",
							param->numeric.integer);

					priv->plotter_scopetype = visual_param_entry_get_integer (param);

					_jakdaw_feedback_reset (priv, priv->xres, priv->yres);
				}

				break;

			default: /* to avoid warnings */
				break;
		}
	}

	return 0;
}
Esempio n. 23
0
static int lv_morph_flash_palette (VisPluginData *plugin, float rate, VisAudio *audio, VisPalette *pal, VisVideo *src1, VisVideo *src2)
{
    FlashPrivate *priv = visual_object_get_private (VISUAL_OBJECT (plugin));

    if (src1->pal == NULL || src2->pal == NULL)
        return 0;

    if (rate < 0.5)
        visual_palette_blend (pal, src1->pal, priv->whitepal, rate * 2);
    else
        visual_palette_blend (pal, priv->whitepal, src2->pal, (rate - 0.5) * 2);

    return 0;
}
Esempio n. 24
0
int act_infinite_cleanup (VisPluginData *plugin)
{
	InfinitePrivate *priv;

	visual_return_val_if_fail (plugin != NULL, -1);

	priv = visual_object_get_private (VISUAL_OBJECT (plugin));

	_inf_close_renderer (priv);

	visual_palette_free (priv->pal);
	visual_mem_free (priv);

	return 0;
}
Esempio n. 25
0
VISUAL_C_LINKAGE
int lv_gforce_cleanup (VisPluginData *plugin)
{
    GForcePrivate *priv = (GForcePrivate *) visual_object_get_private (VISUAL_OBJECT (plugin));

    if (priv->gGF)
        delete priv->gGF;

    EgOSUtils::Shutdown ();

    delete priv->pal;

    delete priv;

    return 0;
}
Esempio n. 26
0
/**
 * upload data to libvisual
 *
 * @param plugin plugin that should upload data.
 * @param where to upload data.
 *
 * @return 0 on success.
 */
static int inp_mplayer_upload( VisPluginData *plugin, VisAudio *audio )
{
	mplayer_priv_t *priv = NULL;

	visual_return_val_if_fail( audio != NULL, -1 );
	visual_return_val_if_fail( plugin != NULL, -1 );
	priv = visual_object_get_private (VISUAL_OBJECT (plugin));
	visual_return_val_if_fail( priv != NULL, -1 );
	visual_return_val_if_fail( priv->mmap_area != NULL, -1 );

	visual_mem_copy( audio->plugpcm,
			((uint8_t *)priv->mmap_area) + sizeof( mplayer_data_t ),
			2048 );

	return 0;
}
Esempio n. 27
0
/**
 * cleanup plugin (release resources)
 *
 * @param plugin plugin to be cleaned up.
 *
 * @return 0 on success.
 */
static int inp_mplayer_cleanup( VisPluginData *plugin )
{
	int unclean = 0;
	mplayer_priv_t *priv = NULL;

	visual_return_val_if_fail( plugin != NULL, -1 );
	priv = visual_object_get_private (VISUAL_OBJECT (plugin));
	visual_return_val_if_fail( priv != NULL, -1 );

	if ( priv->loaded == 1 )
	{
		void *mmap_area  = (void*)priv->mmap_area;
		int   mmap_count = priv->mmap_area->bs + sizeof( mplayer_data_t );

		if ( priv->fd > 0 )
		{
			if ( close( priv->fd ) != 0 )
			{
				visual_log( VISUAL_LOG_CRITICAL,
						_("Could not close file descriptor %d: %s"),
						priv->fd, strerror( errno ) );
				unclean |= 1;
			}
			priv->fd = -1;
		}
		else
		{
			visual_log( VISUAL_LOG_CRITICAL, _("Wrong file descriptor %d"),
					priv->fd );
			unclean |= 2;
		}

		if ( munmap( mmap_area, mmap_count ) != 0 )
		{
			visual_log( VISUAL_LOG_CRITICAL,
					_("Could not munmap() area %p+%d. %s"),
					mmap_area, mmap_count,
					strerror( errno ) );
			unclean |= 4;
		}
	}

	visual_mem_free( priv->sharedfile );
	visual_mem_free( priv );

	return - unclean;
}
Esempio n. 28
0
static int act_gstreamer_render (VisPluginData *plugin, VisVideo *video, VisAudio *audio)
{
	GstreamerPrivate *priv = visual_object_get_private (VISUAL_OBJECT (plugin));
	static int playing = 0;

	if (playing == 0) {
		char pipe[1024];

		gst_init (NULL, NULL);
/*
		snprintf(pipe, 1024, "filesrc location=%s ! decodebin ! ffmpegcolorspace ! "
				"videoscale ! video/x-raw-rgb,bpp=32,depth=32,width=%d,height=%d,"
				"red_mask=0xff000000,green_mask=0x00ff0000,blue_mask=0x0000ff00 !"
				"fakesink name=sink sync=true", "test.mpg", video->width, video->height);

*/
		snprintf(pipe, 1024, "filesrc location=%s ! decodebin ! ffmpegcolorspace ! "
				"video/x-raw-rgb,bpp=24,depth=24 ! "
				"fakesink name=sink signal-handoffs=true", "test.mpg");

		GError *err = NULL;

		priv->pipe = GST_PIPELINE_CAST(gst_parse_launch (pipe, &err));

		if (err) {
			visual_log (VISUAL_LOG_ERROR, "Failed to create pipeline", err->message);
			return;
		}

		gst_element_set_state (GST_ELEMENT (priv->pipe), GST_STATE_PLAYING);

		g_signal_connect (gst_bin_get_by_name_recurse_up (GST_BIN (priv->pipe), "sink"),
				"handoff", G_CALLBACK (have_data), video);

		playing = 1;
	}

//	g_signal_handlers_disconnect_by_func (gst_bin_get_by_name_recurse_up (GST_BIN (priv->pipe), "sink"),
//			G_CALLBACK (have_data), priv->old_video);


	gst_bin_iterate (GST_BIN (priv->pipe));

	priv->old_video = video;

	return 0;
}
Esempio n. 29
0
VISUAL_C_LINKAGE
VisPalette *lv_gforce_palette (VisPluginData *plugin)
{
    GForcePrivate *priv = (GForcePrivate *) visual_object_get_private (VISUAL_OBJECT (plugin));
    PixPalEntry *GFpal;
    int i;

    GFpal = priv->gGF->GetPalette ();

    for (i = 0; i < 256; i++) {
        priv->pal->colors[i].r = GFpal[i].red;
        priv->pal->colors[i].g = GFpal[i].green;
        priv->pal->colors[i].b = GFpal[i].blue;
    }

    return priv->pal;
}
Esempio n. 30
0
static int lv_goom_render (VisPluginData *plugin, VisVideo *video, VisAudio *audio)
{
	GoomPrivate *priv = visual_object_get_private (VISUAL_OBJECT (plugin));
	VisSongInfo *songinfo;
	short pcmdata[2][512];
	float fpcmdata[2][512];
	uint32_t *buf;
	uint8_t *vidbuf = visual_video_get_pixels (video);
	int showinfo = TRUE;
	int i;

	visual_buffer_set_data_pair (priv->pcmbuf1, fpcmdata[0], sizeof (float) * 512);
	visual_audio_get_sample (audio, priv->pcmbuf1, VISUAL_AUDIO_CHANNEL_LEFT);

	visual_buffer_set_data_pair (priv->pcmbuf2, fpcmdata[1], sizeof (float) * 512);
	visual_audio_get_sample (audio, priv->pcmbuf2, VISUAL_AUDIO_CHANNEL_RIGHT);

	for (i = 0; i < 512; i++) {
		pcmdata[0][i] = fpcmdata[0][i] * 32767;
		pcmdata[1][i] = fpcmdata[1][i] * 32767;
	}

	/* Retrieve the songinfo */
	songinfo = VISUAL_ACTOR_PLUGIN (visual_plugin_get_specific (plugin))->songinfo;

	/* FIXME goom should support setting a pointer, so we don't need that final visual_mem_copy */
	if (songinfo != NULL && visual_songinfo_get_age (songinfo) <= 1 && showinfo == TRUE) {
	    VisSongInfoType songinfo_type = visual_songinfo_get_type (songinfo);

		if (songinfo_type == VISUAL_SONGINFO_TYPE_SIMPLE)
		    buf = goom_update (priv->goominfo, pcmdata, 0, 0, visual_songinfo_get_simple_name (songinfo), NULL);
		else if (songinfo_type == VISUAL_SONGINFO_TYPE_ADVANCED)
		    buf = goom_update (priv->goominfo, pcmdata, 0, 0, visual_songinfo_get_song (songinfo), NULL);
		else
			buf = goom_update (priv->goominfo, pcmdata, 0, 0, NULL, NULL);
	}
	else
		buf = goom_update (priv->goominfo, pcmdata, 0, 0, NULL, NULL);

	visual_mem_copy_pitch (vidbuf, buf, video->pitch,
			video->width * video->bpp,
			video->width * video->bpp,
			video->height);

	return 0;
}