LibFmQtData::LibFmQtData(): refCount(1) { #if !GLIB_CHECK_VERSION(2, 36, 0) g_type_init(); #endif fm_init(NULL); // turn on glib debug message // g_setenv("G_MESSAGES_DEBUG", "all", true); iconTheme = new IconTheme(); thumbnailLoader = new ThumbnailLoader(); translator.load("libfm-qt_" + QLocale::system().name(), LIBFM_DATA_DIR "/translations"); }
int main (int argc, char *argv[]) { g_type_init(); fm_init(NULL); g_test_init (&argc, &argv, NULL); // initialize test program g_test_add_func("/FmPath/new_child_len", test_path_child); g_test_add_func("/FmPath/path_parsing", test_path_parsing); g_test_add_func("/FmPath/uri_parsing", test_uri_parsing); g_test_add_func("/FmPath/predefined_paths", test_predefined_paths); return g_test_run(); }
static void com_broncho_jnibt_FMNative_native_init(JNIEnv* env, jobject object) { LOGE(__FUNCTION__); jclass clazz; int ret; context = (fm_context*) calloc(1, sizeof(fm_context)); if(NULL == context) { LOGE("%s: out of memory-fm_context!", __FUNCTION__); return; } clazz = env->GetObjectClass(object); if(clazz == NULL) { LOGE("Cannot find FMNative."); jniThrowException(env, "java/lang/RuntimeException", "Cannot find com/broncho/jnibt/FMNative"); return; } method_get_channel_freq_cb = env->GetMethodID(clazz, "get_channel_freq_cb", "(F)V"); method_get_current_rssi_cb = env->GetMethodID(clazz, "get_current_rssi_cb", "(F)V"); fields.context = env->GetFieldID(clazz, "mNativeContext", "I"); if (fields.context == NULL) { jniThrowException(env, "java/lang/RuntimeException", "Cannot find FMNative.mNativeContext"); return; } env->SetIntField(object, fields.context, (jint)context); env->GetJavaVM(&(context->vm)); context->envVer = env->GetVersion(); context->me = env->NewGlobalRef(object); //init msgs init_msgs(&msgs); //start callback thread pthread_create(&callback_thread, NULL, fm_cb_thread, (void*)context); //register callback here! ret = fm_init(&fm_cbs); if (ret != 0) { LOGE("fm_init failed.\n"); return; } ret = fm_func_on(&fm_block); if (ret != 0) { LOGE("fm_func_on failed.\n"); return; } }
int main (int argc, char *argv[]) { #if !GLIB_CHECK_VERSION(2, 36, 0) g_type_init(); #endif fm_init(NULL); g_test_init (&argc, &argv, NULL); // initialize test program g_test_add_func("/FmPath/new_child_len", test_path_child); g_test_add_func("/FmPath/path_parsing", test_path_parsing); g_test_add_func("/FmPath/uri_parsing", test_uri_parsing); g_test_add_func("/FmPath/predefined_paths", test_predefined_paths); return g_test_run(); }
void inits( void) { cli(); USART_init(MYUBRR, TRUE); can_init(); spi_init_master(); fm_init(); timer0_init(); timer1_init(); //TODO: RUN timer3_init(); timer3_init(); prepare_rx(1, ID_steeringWheel, MASK_FRONT_MODULE, fm_msg_handler); printf("\r\nFront module initialized"); sei(); set_bit(DDRB, DDB6); clear_bit(PORTB, PB6); }
/* * Setup the DDI but don't necessarily init the DDI. This will happen * later once /boot is released. */ void setup_ddi(void) { impl_ddi_init_nodeid(); impl_create_root_class(); create_devinfo_tree(); e_ddi_instance_init(); impl_ddi_callback_init(); log_event_init(); fm_init(); (void) i_ddi_load_drvconf((major_t)-1); ldi_init(); i_ddi_devices_init(); i_ddi_read_devices_files(); }
/* * Setup the DDI but don't necessarily init the DDI. This will happen * later once /boot is released. */ void setup_ddi(void) { impl_ddi_init_nodeid(); impl_create_root_class(); create_devinfo_tree(); e_ddi_instance_init(); impl_ddi_callback_init(); log_event_init(); fm_init(); ndi_fm_init(); irm_init(); (void) i_ddi_load_drvconf(DDI_MAJOR_T_NONE); ldi_init(); i_ddi_devices_init(); i_ddi_read_devices_files(); }
static int new_obj(lua_State *lstate) { GEN *gen; lua_Number duration, gain; char gentype[64]; duration = -1.0; gain = 1.0; strcpy(gentype, lua_tostring(lstate, -2)); lua_remove(lstate, -2); getnumber(lstate, "duration", &duration); getnumber(lstate, "gain", &gain); gen = (GEN *)malloc(sizeof(GEN)); gen->data = NULL; gen->init = NULL; gen->generate = NULL; gen->phase = 0.0; if (strcmp(gentype, "fm") == 0) { fm_init(lstate, gen); gen->generate = fm_generate; } else if (strcmp(gentype, "sine") == 0) { sine_init(lstate, gen); gen->generate = sine_generate; } else if (strcmp(gentype, "white") == 0) { gen->generate = white_generate; } lua_pop(lstate, 1); lua_newtable(lstate); init_fader(&(gen->unit.fader), gain); gen->running = 0; lua_pushstring(lstate, "intern"); lua_pushlightuserdata(lstate, (void *)gen); lua_settable(lstate, -3); add_method(lstate, "play", gen_play); add_fader_methods(lstate); add_method(lstate, "stop", gen_stop); gen->final_frame = duration * jack_sr; gen->pos = 0; return 1; }
int main(int argc, char **argv) { #ifndef _WIN32 struct sigaction sigact; #endif struct fm_state fm; char *filename = NULL; int n_read, r, opt, wb_mode = 0; int i, gain = AUTO_GAIN; // tenths of a dB uint8_t *buffer; uint32_t dev_index = 0; int device_count; int ppm_error = 0; char vendor[256], product[256], serial[256]; fm_init(&fm); pthread_cond_init(&data_ready, NULL); pthread_rwlock_init(&data_rw, NULL); pthread_mutex_init(&data_mutex, NULL); while ((opt = getopt(argc, argv, "d:f:g:s:b:l:o:t:r:p:EFA:NWMULRDCh")) != -1) { switch (opt) { case 'd': dev_index = atoi(optarg); break; case 'f': if (fm.freq_len >= FREQUENCIES_LIMIT) { break;} if (strchr(optarg, ':')) {frequency_range(&fm, optarg);} else { fm.freqs[fm.freq_len] = (uint32_t)atofs(optarg); fm.freq_len++; } break; case 'g': gain = (int)(atof(optarg) * 10); break; case 'l': fm.squelch_level = (int)atof(optarg); break; case 's': fm.sample_rate = (uint32_t)atofs(optarg); break; case 'r': fm.output_rate = (int)atofs(optarg); break; case 'o': fm.post_downsample = (int)atof(optarg); if (fm.post_downsample < 1 || fm.post_downsample > MAXIMUM_OVERSAMPLE) { fprintf(stderr, "Oversample must be between 1 and %i\n", MAXIMUM_OVERSAMPLE);} break; case 't': fm.conseq_squelch = (int)atof(optarg); if (fm.conseq_squelch < 0) { fm.conseq_squelch = -fm.conseq_squelch; fm.terminate_on_squelch = 1; } break; case 'p': ppm_error = atoi(optarg); break; case 'E': fm.edge = 1; break; case 'F': fm.fir_enable = 1; break; case 'A': if (strcmp("std", optarg) == 0) { fm.custom_atan = 0;} if (strcmp("fast", optarg) == 0) { fm.custom_atan = 1;} if (strcmp("lut", optarg) == 0) { atan_lut_init(); fm.custom_atan = 2;} break; case 'D': fm.deemph = 1; break; case 'C': fm.dc_block = 1; break; case 'N': fm.mode_demod = &fm_demod; break; case 'W': wb_mode = 1; fm.mode_demod = &fm_demod; fm.sample_rate = 170000; fm.output_rate = 32000; fm.custom_atan = 1; fm.post_downsample = 4; fm.deemph = 1; fm.squelch_level = 0; break; case 'M': fm.mode_demod = &am_demod; break; case 'U': fm.mode_demod = &usb_demod; break; case 'L': fm.mode_demod = &lsb_demod; break; case 'R': fm.mode_demod = &raw_demod; break; case 'h': default: usage(); break; } } /* quadruple sample_rate to limit to Δθ to ±π/2 */ fm.sample_rate *= fm.post_downsample; if (fm.freq_len == 0) { fprintf(stderr, "Please specify a frequency.\n"); exit(1); } if (fm.freq_len >= FREQUENCIES_LIMIT) { fprintf(stderr, "Too many channels, maximum %i.\n", FREQUENCIES_LIMIT); exit(1); } if (fm.freq_len > 1 && fm.squelch_level == 0) { fprintf(stderr, "Please specify a squelch level. Required for scanning multiple frequencies.\n"); exit(1); } if (fm.freq_len > 1) { fm.terminate_on_squelch = 0; } if (argc <= optind) { filename = "-"; } else { filename = argv[optind]; } ACTUAL_BUF_LENGTH = lcm_post[fm.post_downsample] * DEFAULT_BUF_LENGTH; buffer = malloc(ACTUAL_BUF_LENGTH * sizeof(uint8_t)); device_count = rtlsdr_get_device_count(); if (!device_count) { fprintf(stderr, "No supported devices found.\n"); exit(1); } fprintf(stderr, "Found %d device(s):\n", device_count); for (i = 0; i < device_count; i++) { rtlsdr_get_device_usb_strings(i, vendor, product, serial); fprintf(stderr, " %d: %s, %s, SN: %s\n", i, vendor, product, serial); } fprintf(stderr, "\n"); fprintf(stderr, "Using device %d: %s\n", dev_index, rtlsdr_get_device_name(dev_index)); r = rtlsdr_open(&dev, dev_index); if (r < 0) { fprintf(stderr, "Failed to open rtlsdr device #%d.\n", dev_index); exit(1); } #ifndef _WIN32 sigact.sa_handler = sighandler; sigemptyset(&sigact.sa_mask); sigact.sa_flags = 0; sigaction(SIGINT, &sigact, NULL); sigaction(SIGTERM, &sigact, NULL); sigaction(SIGQUIT, &sigact, NULL); sigaction(SIGPIPE, &sigact, NULL); #else SetConsoleCtrlHandler( (PHANDLER_ROUTINE) sighandler, TRUE ); #endif /* WBFM is special */ // I really should loop over everything // but you are more wrong for scanning broadcast FM if (wb_mode) { fm.freqs[0] += 16000; } if (fm.deemph) { fm.deemph_a = (int)round(1.0/((1.0-exp(-1.0/(fm.output_rate * 75e-6))))); } optimal_settings(&fm, 0, 0); build_fir(&fm); /* Set the tuner gain */ if (gain == AUTO_GAIN) { r = rtlsdr_set_tuner_gain_mode(dev, 0); } else { r = rtlsdr_set_tuner_gain_mode(dev, 1); gain = nearest_gain(gain); r = rtlsdr_set_tuner_gain(dev, gain); } if (r != 0) { fprintf(stderr, "WARNING: Failed to set tuner gain.\n"); } else if (gain == AUTO_GAIN) { fprintf(stderr, "Tuner gain set to automatic.\n"); } else { fprintf(stderr, "Tuner gain set to %0.2f dB.\n", gain/10.0); } r = rtlsdr_set_freq_correction(dev, ppm_error); if (strcmp(filename, "-") == 0) { /* Write samples to stdout */ fm.file = stdout; #ifdef _WIN32 _setmode(_fileno(fm.file), _O_BINARY); #endif } else { fm.file = fopen(filename, "wb"); if (!fm.file) { fprintf(stderr, "Failed to open %s\n", filename); exit(1); } } /* Reset endpoint before we start reading from it (mandatory) */ r = rtlsdr_reset_buffer(dev); if (r < 0) { fprintf(stderr, "WARNING: Failed to reset buffers.\n");} pthread_create(&demod_thread, NULL, demod_thread_fn, (void *)(&fm)); /*rtlsdr_read_async(dev, rtlsdr_callback, (void *)(&fm), DEFAULT_ASYNC_BUF_NUMBER, ACTUAL_BUF_LENGTH);*/ while (!do_exit) { sync_read(buffer, ACTUAL_BUF_LENGTH, &fm); } while (!do_exit) { sync_read(buffer, ACTUAL_BUF_LENGTH, &fm); } if (do_exit) { fprintf(stderr, "\nUser cancel, exiting...\n");} else { fprintf(stderr, "\nLibrary error %d, exiting...\n", r);} //rtlsdr_cancel_async(dev); safe_cond_signal(&data_ready, &data_mutex); pthread_join(demod_thread, NULL); pthread_cond_destroy(&data_ready); pthread_rwlock_destroy(&data_rw); pthread_mutex_destroy(&data_mutex); if (fm.file != stdout) { fclose(fm.file);} rtlsdr_close(dev); free (buffer); return r >= 0 ? r : -r; }
void start_opl_emulation() { fm_init(); buf=malloc(chunksize*channels*2); Mix_HookMusic(opl_callback,NULL); }
int main(int argc, char** argv) { GOptionContext * context; #if !GLIB_CHECK_VERSION(2, 36, 0) g_type_init(); #endif fm_init(NULL); context = g_option_context_new(" - test for libfm file search"); g_option_context_add_main_entries(context, entries, NULL); if(g_option_context_parse(context, &argc, &argv, NULL) == FALSE) return 1; GString* search_uri = g_string_sized_new(1024); g_string_append(search_uri, "search:/"); g_string_append(search_uri, path_list); g_string_append_c(search_uri, '?'); g_string_append_printf(search_uri, "recursive=%d", not_recursive ? 0 : 1); g_string_append_printf(search_uri, "&show_hidden=%d", show_hidden ? 1 : 0); if(target) { g_string_append_printf(search_uri, "&name=%s", target); if(case_insensitive_target) g_string_append_printf(search_uri, "&name_ci=%d", case_insensitive_target ? 0 : 1); } if(target_contains) { if(regex_content) g_string_append_printf(search_uri, "&content_regex=%s", target_contains); else g_string_append_printf(search_uri, "&content=%s", target_contains); if(case_insensitive_content) g_string_append_printf(search_uri, "&content_ci=%d", case_insensitive_target ? 0 : 1); } if(target_type) g_string_append_printf(search_uri, "&types=%s", target_type); if(min_size > 0) g_string_append_printf(search_uri, "&min_size=%llu", (long long unsigned int)min_size); if(max_size > 0) g_string_append_printf(search_uri, "&max_size=%llu", (long long unsigned int)max_size); // g_string_append(search_uri, "search://usr/share?recursive=1&name=*.mo&name_mode=widecard&show_hidden=0&name_case_sensitive=1"); g_print("URI: %s\n", search_uri->str); FmFolder* folder = fm_folder_from_uri(search_uri->str); g_string_free(search_uri, TRUE); g_signal_connect(folder, "files-added", G_CALLBACK(on_files_added), NULL); g_signal_connect(folder, "finish-loading", G_CALLBACK(on_finish_loading), NULL); /* g_timeout_add_seconds(30, on_timeout, NULL); */ loop = g_main_loop_new(NULL, TRUE); g_main_loop_run(loop); g_main_loop_unref(loop); g_object_unref(folder); fm_finalize(); return 0; }