Ejemplo n.º 1
0
void
_mp_app_media_key_event_cb(media_key_e key, media_key_event_e event, void *user_data)
{
	struct appdata *ad = (struct appdata *)user_data;
	MP_CHECK(ad);

	mp_debug("key [%d], event [%d]", key, event);
	bool released = false;
	if (event == MEDIA_KEY_STATUS_RELEASED)
		released = true;

	if (event == MEDIA_KEY_STATUS_UNKNOWN) {
		mp_debug("unknown key status");
		return;
	}

	const char *signal = NULL;

	switch (key) {
	case MEDIA_KEY_PLAY:
		if (released) {
			if (ad->player_state != PLAY_STATE_PLAYING)
				mp_play_control_play_pause(ad, true);
			else
				DEBUG_TRACE("Already playing state. skip event");
		}
		break;
	case MEDIA_KEY_PAUSE:
		if (released) {
			if (ad->player_state == PLAY_STATE_PLAYING)
				mp_play_control_play_pause(ad, false);
			else
				DEBUG_TRACE("Already pause state. skip event");
		}
		break;
	case MEDIA_KEY_PREVIOUS:
	case MEDIA_KEY_REWIND:
		signal = (released) ? "rew_btn_up" : "rew_btn_down";
		mp_play_control_rew_cb(ad, NULL, signal, CTR_EDJ_SIG_SRC);
		break;

	case MEDIA_KEY_NEXT:
	case MEDIA_KEY_FASTFORWARD:
		signal = (released) ? "ff_btn_up" : "ff_btn_down";
		mp_play_control_ff_cb(ad, NULL, signal, CTR_EDJ_SIG_SRC);
		break;

	case MEDIA_KEY_STOP:
		mp_player_control_stop(ad);
		break;
	default:
		mp_debug("Undefined key");
		break;
	}
}
Ejemplo n.º 2
0
void mps_share_preconds_em(int *smooth) {
	int ivals[4];
	int ovals[4];

	ivals[0] = 0;
	ivals[1] = num_goals;
	ivals[2] = failure_observed;
	ivals[3] = 0;

	MPI_Allreduce(ivals, ovals, 4, MPI_INT, MPI_SUM, MPI_COMM_WORLD);

	sw_msg_size      = ovals[0];
	num_goals     = ovals[1];
	failure_observed = ovals[2];
	*smooth          = ovals[3];

	mp_debug("msgsize=%d, #goals=%d, failure=%s, smooth = %s",
	         sw_msg_size, num_goals, failure_observed ? "on" : "off", *smooth ? "on" : "off");

	alloc_sw_msg_buffers();
	mps_bcast_fixed();
	if (*smooth) {
		mps_bcast_smooth();
	}
}
Ejemplo n.º 3
0
void mps_bcast_inside(void)
{
    SW_INS_PTR sw_ins_ptr;
    double *meg_ptr;
    int i;

    MPI_Bcast(sw_msg_recv, sw_msg_size, MPI_DOUBLE, 0, MPI_COMM_WORLD);
    mp_debug("mps_bcast_inside");

    for (i = 0; i < occ_switch_tab_size; i++) {
        meg_ptr = sw_msg_recv;
        meg_ptr += occ_position[i];
        for (sw_ins_ptr = occ_switches[i]; sw_ins_ptr != NULL; sw_ins_ptr = sw_ins_ptr->next) {
            sw_ins_ptr->inside = *(meg_ptr++);
        }
    }
}
Ejemplo n.º 4
0
void mpm_bcast_inside(void)
{
    SW_INS_PTR sw_ins_ptr;
    double *meg_ptr;
    int i;

    meg_ptr = sw_msg_send;

    for (i = 0; i < occ_switch_tab_size; i++) {
        for (sw_ins_ptr = occ_switches[i]; sw_ins_ptr != NULL; sw_ins_ptr = sw_ins_ptr->next) {
            *(meg_ptr++) = sw_ins_ptr->inside;
        }
    }

    MPI_Bcast(sw_msg_send, sw_msg_size, MPI_DOUBLE, 0, MPI_COMM_WORLD);
    mp_debug("mpm_bcast_inside");
}
Ejemplo n.º 5
0
void mpm_bcast_fixed(void)
{
    SW_INS_PTR sw_ins_ptr;
    char *meg_ptr;
    int i;

    meg_ptr = sw_msg_send;

    for (i = 0; i < occ_switch_tab_size; i++) {
        for (sw_ins_ptr = occ_switches[i]; sw_ins_ptr != NULL; sw_ins_ptr = sw_ins_ptr->next) {
            *(meg_ptr++) = (!!sw_ins_ptr->fixed) | ((!!sw_ins_ptr->fixed_h) << 1);
        }
    }

    MPI_Bcast(sw_msg_send, sw_msg_size, MPI_CHAR, 0, MPI_COMM_WORLD);
    mp_debug("mpm_bcast_fixed");
}
Ejemplo n.º 6
0
int pc_mp_recv_swlayout_0(void)
{
    occ_position = MALLOC(sizeof(int) * occ_switch_tab_size);

    MPI_Recv(occ_position, occ_switch_tab_size, MPI_INT, 0, TAG_SWITCH_RES, MPI_COMM_WORLD, NULL);

    /* debug */
    {
        int i;
        TERM msw;
        for (i = 0; i < occ_switch_tab_size; i++) {
            msw = bpx_get_arg(1, prism_sw_ins_term(occ_switches[i]->id));
            mp_debug("%s -> %d", bpx_term_2_string(msw), occ_position[i]);
        }
    }

    return BP_TRUE;
}
Ejemplo n.º 7
0
void mps_bcast_fixed(void)
{
    SW_INS_PTR sw_ins_ptr;
    char *meg_ptr;
    int i;

    MPI_Bcast(sw_msg_recv, sw_msg_size, MPI_CHAR, 0, MPI_COMM_WORLD);
    mp_debug("mps_bcast_fixed");

    for (i = 0; i < occ_switch_tab_size; i++) {
        meg_ptr = sw_msg_recv;
        meg_ptr += occ_position[i];
        for (sw_ins_ptr = occ_switches[i]; sw_ins_ptr != NULL; sw_ins_ptr = sw_ins_ptr->next) {
            sw_ins_ptr->fixed   = !!(*meg_ptr & 1);
            sw_ins_ptr->fixed_h = !!(*meg_ptr & 2);
            meg_ptr++;
        }
    }
}
Ejemplo n.º 8
0
NPError
NP_Initialize (NPNetscapeFuncs *mozilla_funcs, NPPluginFuncs *plugin_funcs)
{
	MoonlightPlugin *moon_host = MMP_HANDLE ();
	gsize mozilla_funcs_size;

	MOON_CHECK_LOAD_PLUGIN ();

	mp_debug ("NP_Initialize (%p, %p)", mozilla_funcs, plugin_funcs);

	// Copy the Mozilla function table
	mozilla_funcs_size = sizeof (NPNetscapeFuncs);
	memset (&moon_host->mozilla_funcs, 0, mozilla_funcs_size);
	mozilla_funcs_size = mozilla_funcs->size < mozilla_funcs_size
		? mozilla_funcs->size
		: mozilla_funcs_size;
	memcpy (&moon_host->mozilla_funcs, mozilla_funcs, mozilla_funcs_size);
	moon_host->mozilla_funcs.size = sizeof (moon_host->mozilla_funcs);

	// Proxy NP_Initialize to Moonlight
	if (MMP_HANDLE ()->np_initialize != NULL) {
		NPError result = MMP_HANDLE ()->np_initialize (&moon_host->mozilla_funcs, plugin_funcs);
		if (result == NPERR_NO_ERROR) {
			// Override some Moonlight NPP functions
			moon_host->moon_npp_new = plugin_funcs->newp;
			plugin_funcs->newp = mmp_binder_npp_new;

			moon_host->moon_npp_destroy = plugin_funcs->destroy;
			plugin_funcs->destroy = mmp_binder_npp_destroy;

			moon_host->moon_npp_stream_as_file = plugin_funcs->asfile;
			plugin_funcs->asfile = mmp_binder_npp_stream_as_file;
		} else {
			mp_error ("Unknown error in libmoonloader's NP_Initialize: %d", result);
		}

		return result;
	}

	mp_error ("Could not call NP_Initialize from libmoonloader (NULL)");

	return NPERR_GENERIC_ERROR;
}
Ejemplo n.º 9
0
static gboolean
mmp_plugin_proxy_load_module (gchar *prefix)
{
	MoonlightPlugin *plugin_host = MMP_HANDLE ();

	// Moonlight's loader is named libmoonloader if it is installed as a
	// package, and libmoonloaderxpi if it is installed as an XPI
	gchar *path = g_module_build_path (prefix, "moonloader");
	if (!g_file_test (path, G_FILE_TEST_EXISTS)) {
		g_free (path);
		path = g_module_build_path (prefix, "moonloaderxpi");
		if (!g_file_test (path, G_FILE_TEST_EXISTS)) {
			g_free (path);
			return FALSE;
		}
	}

	plugin_host->module = g_module_open (path, G_MODULE_BIND_LOCAL | G_MODULE_BIND_LAZY);
	
	if (plugin_host->module != NULL
		&& mmp_plugin_proxy_load_symbol ("NP_Initialize", (gpointer *)&plugin_host->np_initialize)
		&& mmp_plugin_proxy_load_symbol ("NP_Shutdown", (gpointer *)&plugin_host->np_shutdown)
		&& mmp_plugin_proxy_load_symbol ("NP_GetValue", (gpointer *)&plugin_host->np_getvalue)) {
		mp_debug ("Loaded Moonlight plugin: %s", path);
		g_free (path);
		return TRUE;
	} else if (plugin_host->module != NULL) {
		if (!g_module_close (plugin_host->module)) {
			mp_error ("Could not unload library that was loaded but had invalid symbols: %s (%s)",
				path, g_module_error ());
		}
		plugin_host->module = NULL;
	}
	
	mp_error ("Could not load Moonlight plugin: %s (%s)", path, g_module_error ());

	g_free (path);
	return FALSE;
}
Ejemplo n.º 10
0
NPError
NP_Shutdown ()
{
	MoonlightPlugin *plugin_host = MMP_HANDLE ();

	mp_debug ("NP_Shutdown");

	if (plugin_host->np_shutdown != NULL) {
		plugin_host->np_shutdown ();
	}

	if (plugin_host->module != NULL) {
		g_module_close (plugin_host->module);
	}

	g_free (plugin_host->mime_description);
	memset (plugin_host, 0, sizeof (MoonlightPlugin));

	moon_module_load_attempted = FALSE;

	return NPERR_NO_ERROR;
}
Ejemplo n.º 11
0
static Eina_Bool
_mp_app_inotify_timer_cb(void *data)
{
	bool b_invalid_playing_file = false;
	struct appdata *ad = (struct appdata *)data;
	MP_CHECK_FALSE(ad);

	if (ad->edit_in_progress)
	{
		DEBUG_TRACE("editing in progress. not refresh list...");
		return false;
	}

	DEBUG_TRACE("update view");

	mp_plst_item * current_item = mp_playlist_mgr_get_current(ad->playlist_mgr);

	if (current_item)
	{
		if (mp_util_check_uri_available(current_item->uri))
		{
			mp_debug("http uri path");
		}
		else	if (!g_file_test(current_item->uri, G_FILE_TEST_EXISTS))
		{
			mp_play_stop_and_updateview(ad, FALSE);
			b_invalid_playing_file = true;
		}
	}


#ifndef MP_SOUND_PLAYER
	mp_library_update_view(ad);
#endif
	_g_inotyfy_timer = NULL;
	return EINA_FALSE;
}
Ejemplo n.º 12
0
int main(int argc,char* argv[]){
//FILE* f=fopen("edgar.avi","rb");  // readonly (report errors)
//FILE* f=fopen("edgar.avi","rb+"); // fix mode (fix chunk sizes)
unsigned int lastgood=0;
unsigned int fixat=0;
unsigned int offset=0;
int fix_flag=0;
FILE* f;

if(argc<=1){
    printf("Usage: %s [-fix] badfile.avi\n",argv[0]);
    exit(1);
}

if(!strcmp(argv[1],"-fix")){
    fix_flag=1;
    f=fopen(argv[argc-1],"rb+");
} else
    f=fopen(argv[argc-1],"rb");

if(!f){
    perror("error");
    printf("couldnt open '%s'\n",argv[argc-1]);
    exit(2);
}

while(1){
    unsigned int id,len;
again:
    id=fgetc(f);
    id=(id<<8)|fgetc(f);
    id=(id<<8)|fgetc(f);
faszom:
    if(feof(f)) break;
//    if(!lastgood && feof(f)) break;
    id=(id<<8)|fgetc(f);
//    lastgood=ftell(f);
    mp_debug("%08X: %c%c%c%c\n",(int)ftell(f)-4,xx(id>>24),xx(id>>16),xx(id>>8),xx(id));
    switch(id){
    case FCC('R','I','F','F'):
	fread(&len,4,1,f); // filesize
	id=getid(f);  // AVI
	mp_debug("RIFF header, filesize=0x%X  format=%c%c%c%c\n",len,xx(id>>24),xx(id>>16),xx(id>>8),xx(id));
	break;
    case FCC('L','I','S','T'):
	fread(&len,4,1,f); // size
	id=getid(f);  // AVI
	mp_debug("LIST size=0x%X  format=%c%c%c%c\n",len,xx(id>>24),xx(id>>16),xx(id>>8),xx(id));
	//case FCC('h','d','r','l'):
	//case FCC('s','t','r','l'):
	//case FCC('o','d','m','l'):
	//case FCC('m','o','v','i'):
	break;
    // legal chunk IDs:
    case FCC('a','v','i','h'): // avi header
    case FCC('s','t','r','h'): // stream header
    case FCC('s','t','r','f'): // stream format
    case FCC('J','U','N','K'): // official shit
    // index:
    case FCC('i','d','x','1'): // main index??
    case FCC('d','m','l','h'): // opendml header
    case FCC('i','n','d','x'): // opendml main index??
    case FCC('i','x','0','0'): // opendml sub index??
    case FCC('i','x','0','1'): // opendml sub index??
    // data:
    case FCC('0','1','w','b'): // audio track #1
    case FCC('0','2','w','b'): // audio track #2
    case FCC('0','3','w','b'): // audio track #3
    case FCC('0','0','d','b'): // uncompressed video
    case FCC('0','0','d','c'): // compressed video
    case FCC('0','0','_','_'): // A-V interleaved (type2 DV file)
    // info:
    case FCC('I','S','F','T'): // INFO: software
    case FCC('I','S','R','C'): // INFO: source
    case FCC('I','N','A','M'): // INFO: name
    case FCC('I','S','B','J'): // INFO: subject
    case FCC('I','A','R','T'): // INFO: artist
    case FCC('I','C','O','P'): // INFO: copyright
    case FCC('I','C','M','T'): // INFO: comment
	lastgood=ftell(f);
	if(fixat && fix_flag){
	    // fix last chunk's size field:
	    fseek(f,fixat,SEEK_SET);
	    len=lastgood-fixat-8;
	    mp_debug("Correct len to 0x%X\n",len);
	    fwrite(&len,4,1,f);
	    fseek(f,lastgood,SEEK_SET);
	    fixat=0;
	}
	fread(&len,4,1,f); // size
	mp_debug("ID ok, chunk len=0x%X\n",len);
	len+=len&1; // align at 2
	fseek(f,len,SEEK_CUR); // skip data
	break;
    default:
	if(!lastgood){
	    ++offset;
	    mp_debug("invalid ID, trying %d byte offset\n",offset);
	    goto faszom; // try again @ next post
	}
	mp_debug("invalid ID, parsing next chunk's data at 0x%X\n",lastgood);
	fseek(f,lastgood,SEEK_SET);
	fixat=lastgood;
	lastgood=0;
	goto again;
    }
    offset=0;
}


}
Ejemplo n.º 13
0
int mpm_run_em(EM_ENG_PTR emptr) {
	int     r, iterate, old_valid, converged, saved=0;
	double  likelihood, log_prior;
	double  lambda, old_lambda=0.0;

	config_em(emptr);

	for (r = 0; r < num_restart; r++) {
		SHOW_PROGRESS_HEAD("#em-iters", r);

		initialize_params();
		mpm_bcast_inside();
		clear_sw_msg_send();

		itemp = daem ? itemp_init : 1.0;
		iterate = 0;

		while (1) {
			if (daem) {
				SHOW_PROGRESS_TEMP(itemp);
			}
			old_valid = 0;

			while (1) {
				if (CTRLC_PRESSED) {
					SHOW_PROGRESS_INTR();
					RET_ERR(err_ctrl_c_pressed);
				}

				if (failure_observed) {
					inside_failure = mp_sum_value(0.0);
				}

				log_prior  = emptr->smooth ? emptr->compute_log_prior() : 0.0;
				lambda = mp_sum_value(log_prior);
				likelihood = lambda - log_prior;

				mp_debug("local lambda = %.9f, lambda = %.9f", log_prior, lambda);

				if (verb_em) {
					if (emptr->smooth) {
						prism_printf("Iteration #%d:\tlog_likelihood=%.9f\tlog_prior=%.9f\tlog_post=%.9f\n", iterate, likelihood, log_prior, lambda);
					} else {
						prism_printf("Iteration #%d:\tlog_likelihood=%.9f\n", iterate, likelihood);
					}
				}

				if (!isfinite(lambda)) {
					emit_internal_error("invalid log likelihood or log post: %s (at iterateion #%d)",
					                    isnan(lambda) ? "NaN" : "infinity", iterate);
					RET_ERR(ierr_invalid_likelihood);
				}
				if (old_valid && old_lambda - lambda > prism_epsilon) {
					emit_error("log likelihood or log post decreased [old: %.9f, new: %.9f] (at iteration #%d)",
					           old_lambda, lambda, iterate);
					RET_ERR(err_invalid_likelihood);
				}
				if (itemp == 1.0 && likelihood > 0.0) {
					emit_error("log likelihood greater than zero [value: %.9f] (at iteration #%d)",
					           likelihood, iterate);
					RET_ERR(err_invalid_likelihood);
				}

				converged = (old_valid && lambda - old_lambda <= prism_epsilon);
				if (converged || REACHED_MAX_ITERATE(iterate)) {
					break;
				}

				old_lambda = lambda;
				old_valid  = 1;

				mpm_share_expectation();

				SHOW_PROGRESS(iterate);
				RET_ON_ERR(emptr->update_params());
				iterate++;
			}

			if (itemp == 1.0) {
				break;
			}
			itemp *= itemp_rate;
			if (itemp >= 1.0) {
				itemp = 1.0;
			}
		}

		SHOW_PROGRESS_TAIL(converged, iterate, lambda);

		if (r == 0 || lambda > emptr->lambda) {
			emptr->lambda     = lambda;
			emptr->likelihood = likelihood;
			emptr->iterate    = iterate;

			saved = (r < num_restart - 1);
			if (saved) {
				save_params();
			}
		}
	}

	if (saved) {
		restore_params();
	}

	emptr->bic = compute_bic(emptr->likelihood);
	emptr->cs  = emptr->smooth ? compute_cs(emptr->likelihood) : 0.0;

	return BP_TRUE;
}
Ejemplo n.º 14
0
int mps_run_em(EM_ENG_PTR emptr) {
	int     r, iterate, old_valid, converged, saved=0;
	double  likelihood;
	double  lambda, old_lambda=0.0;

	config_em(emptr);

	for (r = 0; r < num_restart; r++) {
		mps_bcast_inside();
		clear_sw_msg_send();
		itemp = daem ? itemp_init : 1.0;
		iterate = 0;

		while (1) {
			old_valid = 0;

			while (1) {
				RET_ON_ERR(emptr->compute_inside());
				RET_ON_ERR(emptr->examine_inside());

				if (failure_observed) {
					inside_failure = mp_sum_value(inside_failure);
				}

				likelihood = emptr->compute_likelihood();
				lambda = mp_sum_value(likelihood);

				mp_debug("local lambda = %.9f, lambda = %.9f", likelihood, lambda);

				converged = (old_valid && lambda - old_lambda <= prism_epsilon);
				if (converged || REACHED_MAX_ITERATE(iterate)) {
					break;
				}

				old_lambda = lambda;
				old_valid  = 1;

				RET_ON_ERR(emptr->compute_expectation());
				mps_share_expectation();

				RET_ON_ERR(emptr->update_params());
				iterate++;
			}

			if (itemp == 1.0) {
				break;
			}
			itemp *= itemp_rate;
			if (itemp >= 1.0) {
				itemp = 1.0;
			}
		}

		if (r == 0 || lambda > emptr->lambda) {
			emptr->lambda = lambda;
			saved = (r < num_restart - 1);
			if (saved) {
				save_params();
			}
		}
	}

	if (saved) {
		restore_params();
	}

	return BP_TRUE;
}