void PrefAdvanced::getData(Preferences * pref) { requires_restart = false; clearing_background_changed = false; colorkey_changed = false; monitor_aspect_changed = false; if (pref->monitor_aspect != monitorAspect()) { pref->monitor_aspect = monitorAspect(); monitor_aspect_changed = true; requires_restart = true; } if (pref->always_clear_video_background != clearBackground()) { pref->always_clear_video_background = clearBackground(); clearing_background_changed = true; } TEST_AND_SET(pref->use_mplayer_window, useMplayerWindow()); TEST_AND_SET(pref->mplayer_additional_options, mplayerAdditionalArguments()); TEST_AND_SET(pref->mplayer_additional_video_filters, mplayerAdditionalVideoFilters()); TEST_AND_SET(pref->mplayer_additional_audio_filters, mplayerAdditionalAudioFilters()); if (pref->color_key != colorKey()) { pref->color_key = colorKey(); colorkey_changed = true; requires_restart = true; } pref->log_mplayer = logMplayer(); pref->log_smplayer = logSmplayer(); pref->log_filter = logFilter(); TEST_AND_SET(pref->rx_endoffile, endOfFileText()); TEST_AND_SET(pref->rx_novideo, noVideoText()); }
void PrefAdvanced::getData(Preferences * pref) { requires_restart = false; #if REPAINT_BACKGROUND_OPTION repaint_video_background_changed = false; #endif monitor_aspect_changed = false; #if USE_COLORKEY colorkey_changed = false; #endif pref->prefer_ipv4 = preferIpv4(); TEST_AND_SET(pref->use_idx, useIdx()); TEST_AND_SET(pref->use_correct_pts, useCorrectPts()); pref->actions_to_run = actionsToRun(); //TEST_AND_SET(pref->show_tag_in_window_title, showTagInTitle()); pref->show_tag_in_window_title = showTagInTitle(); // TODO: detect change and apply if (pref->monitor_aspect != monitorAspect()) { pref->monitor_aspect = monitorAspect(); monitor_aspect_changed = true; requires_restart = true; } #if REPAINT_BACKGROUND_OPTION if (pref->repaint_video_background != repaintVideoBackground()) { pref->repaint_video_background = repaintVideoBackground(); repaint_video_background_changed = true; } #endif TEST_AND_SET(pref->use_mplayer_window, useMplayerWindow()); TEST_AND_SET(pref->mplayer_additional_options, mplayerAdditionalArguments()); TEST_AND_SET(pref->mplayer_additional_video_filters, mplayerAdditionalVideoFilters()); TEST_AND_SET(pref->mplayer_additional_audio_filters, mplayerAdditionalAudioFilters()); #if USE_COLORKEY if (pref->color_key != colorKey()) { pref->color_key = colorKey(); colorkey_changed = true; requires_restart = true; } #endif pref->log_mplayer = logMplayer(); TEST_AND_SET( pref->verbose_log, mplayerLogVerbose() ); pref->log_smplayer2 = logSmplayer(); pref->log_filter = logFilter(); pref->autosave_mplayer_log = saveMplayerLog(); pref->mplayer_log_saveto = mplayerLogName(); pref->save_smplayer2_log = saveSmplayerLog(); }
// TODO: split for commands and comunication (ACL & SCO) void sched_tx_processing(bt_usb_dev* bdev) { net_buffer* nbuf; snet_buffer* snbuf; status_t err; TRACE("%s: (%p)\n", __func__, bdev); if (!TEST_AND_SET(&bdev->state, PROCESSING)) { // We are not processing in another thread so... START!! do { /* Do while this bit is on... so someone should set it before we * stop the iterations */ bdev->state = CLEAR_BIT(bdev->state, SENDING); // check Commands #ifdef EMPTY_COMMAND_QUEUE while (!list_is_empty(&bdev->nbuffersTx[BT_COMMAND])) { #else if (!list_is_empty(&bdev->nbuffersTx[BT_COMMAND])) { #endif snbuf = (snet_buffer*) list_remove_head_item(&bdev->nbuffersTx[BT_COMMAND]); err = submit_tx_command(bdev, snbuf); if (err != B_OK) { // re-head it list_insert_item_before(&bdev->nbuffersTx[BT_COMMAND], list_get_first_item(&bdev->nbuffersTx[BT_COMMAND]), snbuf); } } // check ACl #define EMPTY_ACL_QUEUE #ifdef EMPTY_ACL_QUEUE while (!list_is_empty(&bdev->nbuffersTx[BT_ACL])) { #else if (!list_is_empty(&bdev->nbuffersTx[BT_ACL])) { #endif nbuf = (net_buffer*) list_remove_head_item(&bdev->nbuffersTx[BT_ACL]); err = submit_tx_acl(bdev, nbuf); if (err != B_OK) { // re-head it list_insert_item_before(&bdev->nbuffersTx[BT_ACL], list_get_first_item(&bdev->nbuffersTx[BT_ACL]), nbuf); } } if (!list_is_empty(&bdev->nbuffersTx[BT_SCO])) { // TODO to be implemented } } while (GET_BIT(bdev->state, SENDING)); bdev->state = CLEAR_BIT(bdev->state, PROCESSING); } else { // We are processing so MARK that we need to still go on with that bdev->state = SET_BIT(bdev->state, SENDING); } } #if 0 // DEPRECATED status_t post_packet_up(bt_usb_dev* bdev, bt_packet_t type, void* buf) { status_t err = B_ERROR; debugf("Frame up type=%d\n", type); if (type == BT_EVENT) { snet_buffer* snbuf = (snet_buffer*)buf; btCoreData->PostEvent(bdev->ndev, snb_get(snbuf), (size_t)snb_size(snbuf)); snb_park(&bdev->snetBufferRecycleTrash, snbuf); debugf("to btDataCore len=%d\n", snb_size(snbuf)); } else { net_buffer* nbuf = (net_buffer*) buf; // No need to free the buffer at allocation is gonna be reused btDevices->receive_data(bdev->ndev, &nbuf); TRACE("to net_device\n"); } return err; }
void PrefGeneral::getData(Preferences * pref) { requires_restart = false; filesettings_method_changed = false; if (pref->mplayer_bin != mplayerPath()) { requires_restart = true; pref->mplayer_bin = mplayerPath(); qDebug("PrefGeneral::getData: mplayer binary has changed, getting version number"); // Forces to get info from mplayer to update version number InfoReader i( pref->mplayer_bin ); i.getInfo(); // Update the drivers list at the same time //setDrivers( i.voList(), i.aoList() ); } TEST_AND_SET(pref->use_screenshot, useScreenshots()); TEST_AND_SET(pref->screenshot_directory, screenshotDir()); TEST_AND_SET(pref->vo, VO()); TEST_AND_SET(pref->ao, AO()); bool dont_remember_ms = !rememberSettings(); TEST_AND_SET(pref->dont_remember_media_settings, dont_remember_ms); bool dont_remember_time = !rememberTimePos(); TEST_AND_SET(pref->dont_remember_time_pos, dont_remember_time); if (pref->file_settings_method != fileSettingsMethod()) { pref->file_settings_method = fileSettingsMethod(); filesettings_method_changed = true; } pref->audio_lang = audioLang(); pref->subtitle_lang = subtitleLang(); pref->initial_audio_track = audioTrack(); pref->initial_subtitle_track = subtitleTrack(); pref->close_on_finish = closeOnFinish(); pref->pause_when_hidden = pauseWhenHidden(); TEST_AND_SET(pref->use_soft_video_eq, eq2()); TEST_AND_SET(pref->use_soft_vol, softVol()); pref->global_volume = globalVolume(); TEST_AND_SET(pref->use_audio_equalizer, useAudioEqualizer()); TEST_AND_SET(pref->use_hwac3, Ac3DTSPassthrough()); pref->initial_volnorm = initialVolNorm(); TEST_AND_SET(pref->softvol_max, amplification()); pref->initial_postprocessing = initialPostprocessing(); pref->initial_deinterlace = initialDeinterlace(); pref->initial_zoom_factor = initialZoom(); TEST_AND_SET(pref->use_direct_rendering, directRendering()); TEST_AND_SET(pref->use_double_buffer, doubleBuffer()); TEST_AND_SET(pref->use_slices, useSlices()); pref->start_in_fullscreen = startInFullscreen(); if (pref->add_blackborders_on_fullscreen != blackbordersOnFullscreen()) { pref->add_blackborders_on_fullscreen = blackbordersOnFullscreen(); if (pref->fullscreen) requires_restart = true; } TEST_AND_SET(pref->autoq, autoq()); #ifdef Q_OS_WIN pref->avoid_screensaver = avoidScreensaver(); TEST_AND_SET(pref->turn_screensaver_off, turnScreensaverOff()); #else TEST_AND_SET(pref->disable_screensaver, disableScreensaver()); #endif #ifndef Q_OS_WIN pref->vdpau = vdpau; #endif pref->initial_audio_channels = audioChannels(); TEST_AND_SET(pref->use_scaletempo, scaleTempoFilter()); TEST_AND_SET(pref->autosync, autoSyncActivated()); TEST_AND_SET(pref->autosync_factor, autoSyncFactor()); TEST_AND_SET(pref->use_mc, mcActivated()); TEST_AND_SET(pref->mc_value, mc()); }
// implements the POSIX open() static status_t device_open(const char* name, uint32 flags, void **cookie) { CALLED(); status_t err = ENODEV; bt_usb_dev* bdev = NULL; hci_id hdev; int i; acquire_sem(dev_table_sem); for (i = 0; i < MAX_BT_GENERIC_USB_DEVICES; i++) { if (bt_usb_devices[i] && !strcmp(name, bt_usb_devices[i]->name)) { bdev = bt_usb_devices[i]; break; } } release_sem_etc(dev_table_sem, 1, B_DO_NOT_RESCHEDULE); if (bdev == NULL) { ERROR("%s: Device not found in the open list!", __func__); *cookie = NULL; return B_ERROR; } // Set RUNNING if (TEST_AND_SET(&bdev->state, RUNNING)) { ERROR("%s: dev already running! - reOpened device!\n", __func__); return B_ERROR; } acquire_sem(bdev->lock); // TX structures for (i = 0; i < BT_DRIVER_TXCOVERAGE; i++) { list_init(&bdev->nbuffersTx[i]); bdev->nbuffersPendingTx[i] = 0; } // RX structures bdev->eventRx = NULL; for (i = 0; i < BT_DRIVER_RXCOVERAGE; i++) { bdev->nbufferRx[i] = NULL; } // dumping the USB frames init_room(&bdev->eventRoom); init_room(&bdev->aclRoom); // init_room(new_bt_dev->scoRoom); list_init(&bdev->snetBufferRecycleTrash); // Allocate set and register the HCI device if (btDevices != NULL) { bluetooth_device* ndev; // TODO: Fill the transport descriptor err = btDevices->RegisterDriver(&bluetooth_hooks, &ndev); if (err == B_OK) { bdev->hdev = hdev = ndev->index; // Get the index bdev->ndev = ndev; // Get the net_device } else { hdev = bdev->num; // XXX: Lets try to go on } } else { hdev = bdev->num; // XXX: Lets try to go on } bdev->hdev = hdev; *cookie = bdev; release_sem(bdev->lock); return B_OK; }