static void releaseMediaPlayer(JNIEnv *env, jobject thiz) { libvlc_media_player_t* p_mp = getMediaPlayer(env, thiz); if (p_mp) { libvlc_media_player_stop(p_mp); libvlc_media_player_release(p_mp); setLong(env, thiz, "mInternalMediaPlayerInstance", 0); } }
void GeoLocation::reset( GeoLocation *g ) { indexEllipsoid = g->ellipsoid(); setEllipsoid ( indexEllipsoid ); setLong( g->lng()->Degrees() ); setLat( g->lat()->Degrees() ); Name = g->name(); Province = g->province(); Country = g->country(); TimeZone = g->TZ(); TZrule = g->tzrule(); Height = g->height(); }
static void releaseMediaPlayer(JNIEnv *env, jobject thiz) { libvlc_media_list_player_t* p_mlp = getMediaListPlayer(env, thiz); if (p_mlp) { libvlc_media_list_player_stop(p_mlp); libvlc_media_list_player_release(p_mlp); /* libvlc_media_list_player_release frees the media player, so * we don't free it ourselves. */ unsetMediaPlayer(env, thiz); setLong(env, thiz, "mInternalMediaPlayerInstance", 0); } }
void Java_org_videolan_libvlc_LibVLC_nativeDestroy(JNIEnv *env, jobject thiz) { destroy_native_crash_handler(env); releaseMediaPlayer(env, thiz); jlong libVlcInstance = getLong(env, thiz, "mLibVlcInstance"); if (!libVlcInstance) return; // Already destroyed libvlc_instance_t *instance = (libvlc_instance_t*) (intptr_t) libVlcInstance; libvlc_log_unset(instance); libvlc_release(instance); setLong(env, thiz, "mLibVlcInstance", 0); }
jobjectArray read_track_info_internal(JNIEnv *env, jobject thiz, libvlc_media_t* p_m) { /* get java class */ jclass cls = (*env)->FindClass( env, "org/videolan/libvlc/TrackInfo" ); if ( !cls ) { LOGE("Failed to load class (org/videolan/libvlc/TrackInfo)" ); return NULL; } /* get java class contructor */ jmethodID clsCtor = (*env)->GetMethodID( env, cls, "<init>", "()V" ); if ( !clsCtor ) { LOGE("Failed to find class constructor (org/videolan/libvlc/TrackInfo)" ); return NULL; } /* Get the tracks information of the media. */ libvlc_media_track_t **p_tracks; int i_nbTracks = libvlc_media_tracks_get(p_m, &p_tracks); jobjectArray array = (*env)->NewObjectArray(env, i_nbTracks + 1, cls, NULL); unsigned i; if (array != NULL) { for (i = 0; i <= i_nbTracks; ++i) { jobject item = (*env)->NewObject(env, cls, clsCtor); if (item == NULL) continue; (*env)->SetObjectArrayElement(env, array, i, item); // use last track for metadata if (i == i_nbTracks) { setInt(env, item, "Type", 3 /* TYPE_META */); setLong(env, item, "Length", libvlc_media_get_duration(p_m)); setString(env, item, "Title", libvlc_media_get_meta(p_m, libvlc_meta_Title)); setString(env, item, "Artist", libvlc_media_get_meta(p_m, libvlc_meta_Artist)); setString(env, item, "Album", libvlc_media_get_meta(p_m, libvlc_meta_Album)); setString(env, item, "Genre", libvlc_media_get_meta(p_m, libvlc_meta_Genre)); setString(env, item, "ArtworkURL", libvlc_media_get_meta(p_m, libvlc_meta_ArtworkURL)); continue; } setInt(env, item, "Id", p_tracks[i]->i_id); setInt(env, item, "Type", p_tracks[i]->i_type); setString(env, item, "Codec", (const char*)vlc_fourcc_GetDescription(0,p_tracks[i]->i_codec)); setString(env, item, "Language", p_tracks[i]->psz_language); setInt(env, item, "Bitrate", p_tracks[i]->i_bitrate); if (p_tracks[i]->i_type == libvlc_track_video) { setInt(env, item, "Height", p_tracks[i]->video->i_height); setInt(env, item, "Width", p_tracks[i]->video->i_width); setFloat(env, item, "Framerate", (float)p_tracks[i]->video->i_frame_rate_num / p_tracks[i]->video->i_frame_rate_den); } if (p_tracks[i]->i_type == libvlc_track_audio) { setInt(env, item, "Channels", p_tracks[i]->audio->i_channels); setInt(env, item, "Samplerate", p_tracks[i]->audio->i_rate); } } } libvlc_media_tracks_release(p_tracks, i_nbTracks); return array; }
void Java_org_videolan_libvlc_LibVLC_playMRL(JNIEnv *env, jobject thiz, jlong instance, jstring mrl, jobjectArray mediaOptions) { /* Release previous media player, if any */ releaseMediaPlayer(env, thiz); /* Create a media player playing environment */ libvlc_media_player_t *mp = libvlc_media_player_new((libvlc_instance_t*)(intptr_t)instance); libvlc_media_player_set_video_title_display(mp, libvlc_position_disable, 0); jobject myJavaLibVLC = (*env)->NewGlobalRef(env, thiz); //if AOUT_AUDIOTRACK_JAVA, we use amem jclass cls = (*env)->GetObjectClass(env, thiz); jmethodID methodId = (*env)->GetMethodID(env, cls, "getAout", "()I"); if ( (*env)->CallIntMethod(env, thiz, methodId) == AOUT_AUDIOTRACK_JAVA ) { libvlc_audio_set_callbacks(mp, aout_play, aout_pause, NULL, NULL, NULL, (void*) myJavaLibVLC); libvlc_audio_set_format_callbacks(mp, aout_open, aout_close); } /* Connect the event manager */ libvlc_event_manager_t *ev = libvlc_media_player_event_manager(mp); static const libvlc_event_type_t mp_events[] = { libvlc_MediaPlayerPlaying, libvlc_MediaPlayerPaused, libvlc_MediaPlayerEndReached, libvlc_MediaPlayerStopped, libvlc_MediaPlayerVout, libvlc_MediaPlayerPositionChanged, libvlc_MediaPlayerEncounteredError }; for(int i = 0; i < (sizeof(mp_events) / sizeof(*mp_events)); i++) libvlc_event_attach(ev, mp_events[i], vlc_event_callback, myVm); /* Keep a pointer to this media player */ setLong(env, thiz, "mInternalMediaPlayerInstance", (jlong)(intptr_t)mp); cls = (*env)->GetObjectClass(env, thiz); jmethodID methodID = (*env)->GetMethodID(env, cls, "applyEqualizer", "()V"); (*env)->CallVoidMethod(env, thiz, methodID); const char* p_mrl = (*env)->GetStringUTFChars(env, mrl, 0); libvlc_media_t* p_md = libvlc_media_new_location((libvlc_instance_t*)(intptr_t)instance, p_mrl); /* media options */ if (mediaOptions != NULL) { int stringCount = (*env)->GetArrayLength(env, mediaOptions); for(int i = 0; i < stringCount; i++) { jstring option = (jstring)(*env)->GetObjectArrayElement(env, mediaOptions, i); const char* p_st = (*env)->GetStringUTFChars(env, option, 0); libvlc_media_add_option(p_md, p_st); // option (*env)->ReleaseStringUTFChars(env, option, p_st); } } (*env)->ReleaseStringUTFChars(env, mrl, p_mrl); /* Connect the media event manager. */ libvlc_event_manager_t *ev_media = libvlc_media_event_manager(p_md); static const libvlc_event_type_t mp_media_events[] = { libvlc_MediaParsedChanged }; for(int i = 0; i < (sizeof(mp_media_events) / sizeof(*mp_media_events)); i++) libvlc_event_attach(ev_media, mp_media_events[i], vlc_event_callback, myVm); libvlc_media_player_set_media(mp, p_md); libvlc_media_player_play(mp); }
void Java_org_videolan_libvlc_LibVLC_nativeInit(JNIEnv *env, jobject thiz) { //only use OpenSLES if java side says we can jclass cls = (*env)->GetObjectClass(env, thiz); jmethodID methodId = (*env)->GetMethodID(env, cls, "getAout", "()I"); bool use_opensles = (*env)->CallIntMethod(env, thiz, methodId) == AOUT_OPENSLES; methodId = (*env)->GetMethodID(env, cls, "getVout", "()I"); bool use_opengles2 = (*env)->CallIntMethod(env, thiz, methodId) == VOUT_OPENGLES2; methodId = (*env)->GetMethodID(env, cls, "timeStretchingEnabled", "()Z"); bool enable_time_stretch = (*env)->CallBooleanMethod(env, thiz, methodId); methodId = (*env)->GetMethodID(env, cls, "frameSkipEnabled", "()Z"); bool enable_frame_skip = (*env)->CallBooleanMethod(env, thiz, methodId); methodId = (*env)->GetMethodID(env, cls, "getDeblocking", "()I"); int deblocking = (*env)->CallIntMethod(env, thiz, methodId); char deblockstr[2]; snprintf(deblockstr, sizeof(deblockstr), "%d", deblocking); LOGD("Using deblocking level %d", deblocking); methodId = (*env)->GetMethodID(env, cls, "getNetworkCaching", "()I"); int networkCaching = (*env)->CallIntMethod(env, thiz, methodId); char networkCachingstr[25]; if(networkCaching > 0) { snprintf(networkCachingstr, sizeof(networkCachingstr), "--network-caching=%d", networkCaching); LOGD("Using network caching of %d ms", networkCaching); } methodId = (*env)->GetMethodID(env, cls, "getChroma", "()Ljava/lang/String;"); jstring chroma = (*env)->CallObjectMethod(env, thiz, methodId); const char *chromastr = (*env)->GetStringUTFChars(env, chroma, 0); LOGD("Chroma set to \"%s\"", chromastr); methodId = (*env)->GetMethodID(env, cls, "getSubtitlesEncoding", "()Ljava/lang/String;"); jstring subsencoding = (*env)->CallObjectMethod(env, thiz, methodId); const char *subsencodingstr = (*env)->GetStringUTFChars(env, subsencoding, 0); LOGD("Subtitle encoding set to \"%s\"", subsencodingstr); methodId = (*env)->GetMethodID(env, cls, "isVerboseMode", "()Z"); verbosity = (*env)->CallBooleanMethod(env, thiz, methodId); methodId = (*env)->GetMethodID(env, cls, "getHardwareAcceleration", "()I"); int hardwareAcceleration = (*env)->CallIntMethod(env, thiz, methodId); /* With the MediaCodec opaque mode we cannot use the OpenGL ES vout. */ if (hardwareAcceleration == HW_ACCELERATION_FULL) use_opengles2 = false; /* Don't add any invalid options, otherwise it causes LibVLC to crash */ const char *argv[] = { /* CPU intensive plugin, setting for slow devices */ enable_time_stretch ? "--audio-time-stretch" : "--no-audio-time-stretch", /* avcodec speed settings for slow devices */ //"--avcodec-fast", // non-spec-compliant speedup tricks "--avcodec-skiploopfilter", deblockstr, "--avcodec-skip-frame", enable_frame_skip ? "2" : "0", "--avcodec-skip-idct", enable_frame_skip ? "2" : "0", /* Remove me when UTF-8 is enforced by law */ "--subsdec-encoding", subsencodingstr, /* XXX: why can't the default be fine ? #7792 */ (networkCaching > 0) ? networkCachingstr : "", /* Android audio API is a mess */ use_opensles ? "--aout=opensles" : "--aout=android_audiotrack", /* Android video API is a mess */ use_opengles2 ? "--vout=gles2" : "--vout=androidsurface", "--androidsurface-chroma", chromastr != NULL && chromastr[0] != 0 ? chromastr : "RV32", /* XXX: we can't recover from direct rendering failure */ (hardwareAcceleration == HW_ACCELERATION_FULL) ? "" : "--no-mediacodec-dr", }; libvlc_instance_t *instance = libvlc_new(sizeof(argv) / sizeof(*argv), argv); setLong(env, thiz, "mLibVlcInstance", (jlong)(intptr_t) instance); (*env)->ReleaseStringUTFChars(env, chroma, chromastr); (*env)->ReleaseStringUTFChars(env, subsencoding, subsencodingstr); if (!instance) { jclass exc = (*env)->FindClass(env, "org/videolan/libvlc/LibVlcException"); (*env)->ThrowNew(env, exc, "Unable to instantiate LibVLC"); } LOGI("LibVLC initialized: %p", instance); libvlc_log_set(instance, debug_log, &verbosity); init_native_crash_handler(env, thiz); }
void PvObject::setLong(long long value) { std::string key = PyPvDataUtility::getValueOrSingleFieldName(pvStructurePtr); setLong(key, value); }
void PropImage::setClkFreq(uint32_t clkFreq) { setLong((uint8_t *)&((SpinHdr *)m_imageData)->clkfreq, clkFreq); }
void PreparedStatement::setLong(const std::string ¶mName, int64_t value) { setLong(sqlite3_bind_parameter_index(d->stmt, paramName.c_str()), value); }
Variant(long value) { setLong(value); }
static void unsetMediaPlayer(JNIEnv *env, jobject thiz) { setLong(env, thiz, "mInternalMediaPlayerInstance", (jlong)0); }
void Java_org_videolan_libvlc_LibVLC_nativeInit(JNIEnv *env, jobject thiz) { //only use OpenSLES if java side says we can jclass cls = (*env)->GetObjectClass(env, thiz); jmethodID methodId = (*env)->GetMethodID(env, cls, "getAout", "()I"); int aout = (*env)->CallIntMethod(env, thiz, methodId); methodId = (*env)->GetMethodID(env, cls, "getVout", "()I"); int vout = (*env)->CallIntMethod(env, thiz, methodId); methodId = (*env)->GetMethodID(env, cls, "timeStretchingEnabled", "()Z"); bool enable_time_stretch = (*env)->CallBooleanMethod(env, thiz, methodId); methodId = (*env)->GetMethodID(env, cls, "frameSkipEnabled", "()Z"); bool enable_frame_skip = (*env)->CallBooleanMethod(env, thiz, methodId); methodId = (*env)->GetMethodID(env, cls, "getDeblocking", "()I"); int deblocking = (*env)->CallIntMethod(env, thiz, methodId); char deblockstr[2]; snprintf(deblockstr, sizeof(deblockstr), "%d", deblocking); LOGD("Using deblocking level %d", deblocking); methodId = (*env)->GetMethodID(env, cls, "getNetworkCaching", "()I"); int networkCaching = (*env)->CallIntMethod(env, thiz, methodId); char networkCachingstr[25]; if(networkCaching > 0) { snprintf(networkCachingstr, sizeof(networkCachingstr), "--network-caching=%d", networkCaching); LOGD("Using network caching of %d ms", networkCaching); } methodId = (*env)->GetMethodID(env, cls, "getHttpReconnect", "()Z"); bool enable_http_reconnect = (*env)->CallBooleanMethod(env, thiz, methodId); methodId = (*env)->GetMethodID(env, cls, "getChroma", "()Ljava/lang/String;"); jstring chroma = (*env)->CallObjectMethod(env, thiz, methodId); const char *chromastr = (*env)->GetStringUTFChars(env, chroma, 0); LOGD("Chroma set to \"%s\"", chromastr); methodId = (*env)->GetMethodID(env, cls, "getSubtitlesEncoding", "()Ljava/lang/String;"); jstring subsencoding = (*env)->CallObjectMethod(env, thiz, methodId); const char *subsencodingstr = (*env)->GetStringUTFChars(env, subsencoding, 0); LOGD("Subtitle encoding set to \"%s\"", subsencodingstr); methodId = (*env)->GetMethodID(env, cls, "isVerboseMode", "()Z"); verbosity = (*env)->CallBooleanMethod(env, thiz, methodId); methodId = (*env)->GetMethodID(env, cls, "isDirectRendering", "()Z"); bool direct_rendering = (*env)->CallBooleanMethod(env, thiz, methodId); /* With the MediaCodec opaque mode we cannot use the OpenGL ES vout. */ if (direct_rendering) vout = VOUT_ANDROID_WINDOW; methodId = (*env)->GetMethodID(env, cls, "getCachePath", "()Ljava/lang/String;"); jstring cachePath = (*env)->CallObjectMethod(env, thiz, methodId); if (cachePath) { const char *cache_path = (*env)->GetStringUTFChars(env, cachePath, 0); setenv("DVDCSS_CACHE", cache_path, 1); (*env)->ReleaseStringUTFChars(env, cachePath, cache_path); } #define MAX_ARGV 18 const char *argv[MAX_ARGV]; int argc = 0; /* CPU intensive plugin, setting for slow devices */ argv[argc++] = enable_time_stretch ? "--audio-time-stretch" : "--no-audio-time-stretch"; /* avcodec-skiploopfilter */ argv[argc++] = "--avcodec-skiploopfilter"; argv[argc++] = deblockstr; /* avcodec-skip-frame */ argv[argc++] = "--avcodec-skip-frame"; argv[argc++] = enable_frame_skip ? "2" : "0"; /* avcodec-skip-idct */ argv[argc++] = "--avcodec-skip-idct"; argv[argc++] = enable_frame_skip ? "2" : "0"; /* Remove me when UTF-8 is enforced by law */ argv[argc++] = "--subsdec-encoding"; argv[argc++] = subsencodingstr; /* Enable statistics */ argv[argc++] = "--stats"; /* XXX: why can't the default be fine ? #7792 */ if (networkCaching > 0) argv[argc++] = networkCachingstr; /* Android audio API */ argv[argc++] = aout == AOUT_OPENSLES ? "--aout=opensles" : (aout == AOUT_AUDIOTRACK ? "--aout=android_audiotrack" : "--aout=dummy"); /* Android video API */ argv[argc++] = vout == VOUT_ANDROID_WINDOW ? "--vout=androidwindow" : (vout == VOUT_OPENGLES2 ? "--vout=gles2" : "--vout=androidsurface"); /* chroma */ argv[argc++] = "--androidsurface-chroma"; argv[argc++] = chromastr != NULL && chromastr[0] != 0 ? chromastr : "RV32"; /* direct rendering */ if (!direct_rendering) { argv[argc++] = "--no-mediacodec-dr"; #ifdef HAVE_IOMX_DR argv[argc++] = "--no-omxil-dr"; #endif } /* Reconnect on lost HTTP streams, e.g. network change */ if (enable_http_reconnect) argv[argc++] = "--http-reconnect"; assert(MAX_ARGV >= argc); libvlc_instance_t *instance = libvlc_new(argc, argv); setLong(env, thiz, "mLibVlcInstance", (jlong)(intptr_t) instance); (*env)->ReleaseStringUTFChars(env, chroma, chromastr); (*env)->ReleaseStringUTFChars(env, subsencoding, subsencodingstr); if (!instance) { jclass exc = (*env)->FindClass(env, "org/videolan/libvlc/LibVlcException"); (*env)->ThrowNew(env, exc, "Unable to instantiate LibVLC"); } LOGI("LibVLC initialized: %p", instance); libvlc_log_set(instance, debug_log, &verbosity); init_native_crash_handler(env, thiz); }
void *WeatherPlugin::processEvent(Event *e) { if (e->type() == EventLanguageChanged) updateButton(); if (e->type() == EventInit) showBar(); if (e->type() == EventCommandExec){ CommandDef *cmd = (CommandDef*)(e->param()); if ((cmd->id == CmdWeather) && *getURL()){ Event eGo(EventGoURL, (void*)getURL()); eGo.process(); return e->param(); } } if (e->type() == EventFetchDone){ fetchData *d = (fetchData*)(e->param()); if (d->req_id != m_fetch_id) return NULL; m_fetch_id = 0; if (d->result != 200) return NULL; WeatherParser p(*d->data); setStr(p.m_updated.c_str(), data.Updated); setStr(p.m_location.c_str(), data.Location); setLong(p.m_temperature_f.c_str(), data.Temperature_f); setLong(p.m_temperature_c.c_str(), data.Temperature_c); setLong(p.m_humidity.c_str(), data.Humidity); setLong(p.m_pressure_in.c_str(), data.Pressure_in); setLong(p.m_pressure_hpa.c_str(), data.Pressure_hpa); setStr(p.m_conditions.c_str(), data.Conditions); setStr(p.m_wind.c_str(), data.Wind); setLong(p.m_wind_speed_mph.c_str(), data.Wind_speed_mph); setLong(p.m_wind_speed_km.c_str(), data.Wind_speed_km); setStr(p.m_sun_raise.c_str(), data.Sun_raise); setStr(p.m_sun_set.c_str(), data.Sun_set); QString condition = getConditions(); condition = condition.lower(); if (condition.find("fog") >= 0) condition = "Fog"; if (condition.find("overcast") >= 0) condition = "Overcast"; if (condition.find("mist") >= 0) condition = "Fog"; if (condition.find("storm") >= 0) condition = "Storm"; if (condition.find("rain") >= 0) condition = "Rain"; if (condition.find("snow") >= 0) condition = "Snow"; if (condition.find("clear") >= 0) condition = "Clear"; if (condition.find("cloudy") >= 0){ if (condition.find("part") >= 0){ condition = "Partial cloudy"; }else{ condition = "Cloudy"; } } if (condition.find("clouds") >= 0) condition = "Partial cloudy"; setConditions(condition.latin1()); time_t now; time(&now); setTime(now); updateButton(); Event eUpdate(EventWeather); eUpdate.process(); } return NULL; }