LINUX.ORG.RU

Выпуск Bluetuith v0.1.8

 , bluetuith,


4

3

Bluetuith – это менеджер Bluetooth на базе TUI для Linux, который призван стать альтернативой большинству менеджеров Bluetooth.

Программа может выполнять такие операции с bluetooth, как:

  • Подключение к bluetooth-устройствам и общее управление ими, при этом информация об устройстве, такая как процент заряда батареи, RSSI и т.д., отображается, если она доступна. Более подробную информацию об устройстве можно просмотреть, выбрав в меню пункт ‘Info’ или нажав клавишу ‘i’.
  • Управление Bluetooth-адаптером с возможностью переключения режимов питания, обнаружения, сопряжения и сканирования.
  • Передача и прием файлов по протоколу OBEX с интерактивным файлообменником для выбора нескольких файлов.
  • Работа с сетями на основе протоколов PANU и DUN для каждого устройства bluetooth.
  • Управление воспроизведением мультимедиа на подключенном устройстве с помощью всплывающего окна медиаплеера, отображающего информацию о воспроизведении и элементы управления.

Данный выпуск содержит следующие новые возможности:

  • Новые параметры командной строки --adapter-states для установки свойств адаптера и --connect-bdaddr для подключения к устройству при инициализации.
  • Блокировка/разблокировка устройств.
  • возможность отображения ключа/пинкода.
  • Изменяемые навигационные клавиши.
  • Отображение свойства ‘Bonded’ для устройства.

>>> Подробности



Проверено: hobbit ()
Последнее исправление: CYB3R (всего исправлений: 4)

Ответ на: комментарий от alex1101

Архитектура процессоров x86 и x64 предоставляет возможности аппаратной защиты областей памяти.
Разработчики компиляторов не используют эту возможность, так как тогда код будет некорректно работать на других типах процессоров (точнее не надёжно работать).

Forum0888
()
Последнее исправление: Forum0888 (всего исправлений: 1)
Ответ на: комментарий от Forum0888

Архитектура процессоров x86 и x64

Ложная дихотомия. x64 — это частный случай архитектуры x86.

posixbit ★★
()
Ответ на: комментарий от nullb0t

Перечитайте еще раз

А… ты не понимаешь как зависимости в go резолвятся. Почитай доки.

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 1)
Ответ на: комментарий от monk

p1 = p + 42;

Тут вообще нарушена логика, числа и указатели это разные типы. Сделали винегрет а теперь удивляются.

mx__ ★★★★★
()
Ответ на: комментарий от cumvillain

Там всё что угодно может означать вообще что угодно.

monk ★★★★★
()
Ответ на: комментарий от cumvillain

Я вообще то про то что этот винегрет как раз в стандарт и заложен и не нужно тут чему либо удивляться.

mx__ ★★★★★
()
Ответ на: комментарий от mx__

Я вообще то про то что этот винегрет как раз в стандарт и заложен и не нужно тут чему либо удивляться.

Это не винегрет, это арифметика указателей.

	int *p, *p1, *p2;

	p = calloc(10, sizeof(*p));

	p1 = p + 1;
	p2 = &p[1];

	assert(p1 == p2);

	return 0;
cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 1)
Ответ на: комментарий от cumvillain

Это не винегрет, это арифметика указателей.

Можно называть это как угодно, суть от этого меняется.

mx__ ★★★★★
()
Ответ на: комментарий от mx__

Можно называть это как угодно, суть от этого меняется.

Ауф.

cumvillain
()
Ответ на: комментарий от mx__

Можно называть это как угодно, суть от этого меняется.

У этой штуки четко определенные границы применимости, если что.

cumvillain
()
Ответ на: комментарий от alex1101

По ссылке в 8 строчке

Там

std::cout << *vec.end() << std::endl;

Кто из них, по-твоему, сырой указатель?

std::cout  : std::ostream
vec::end() : std::vector<int>::iterator
std::endl  : std::basic_ostream<char>& (*)(std::basic_ostream<char>&)
monk ★★★★★
()
Ответ на: комментарий от mx__

Арифметика указателей именно то, ради чего выбирают Си или Си++ вместо какого-либо другого языка.

Как без этого «винегрета» удобно работать с указателями на элементы массивов?

monk ★★★★★
()
Ответ на: комментарий от monk

Вот этот метод

vec.end()

возвращает указатель, который ты пытаешься разыменовать в сишном стиле.

Зачем дурочку корчишь, не пойму?

alex1101
()
Ответ на: комментарий от alex1101

С каких пор std::vector::iterator является сырым указателем? А std::unique_ptr в твоей вселенной тоже сырой указатель?

monk ★★★★★
()
Ответ на: комментарий от alex1101

возвращает указатель, который ты пытаешься разыменовать в сишном стиле

Ты плюсы на картинках видел?

Тут тоже указатель?

#include <iostream>
#include <optional>

int
main(void)
{
	auto var = std::optional{true};
	bool val = *var;
	std::cout << val << std::endl;
}
cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 1)
Ответ на: комментарий от monk

С каких пор std::vector::iterator является сырым указателем?

Я не говорил такого. Я сказал, что он возвращает указатель.

alex1101
()
Ответ на: комментарий от alex1101

vec.end() является функцией, которая возвращает std::vector::iterator.

std::vector::iterator является классом, а не функцией. Ни один из методов этого класса указатель не возвращает.

Кто «он», который возвращает указатель?

monk ★★★★★
()
Ответ на: комментарий от cumvillain

Не от контекста, а от оператора. Любой оператор может быть переопределен. В данном случае у класса std::vector::iterator есть метод operator*()

zx_gamer ★★
()
Ответ на: комментарий от zx_gamer

Не от контекста, а от оператора. Любой оператор может быть переопределен. В данном случае у класса std::vector::iterator есть метод operator*()

Это и есть от контекста. Вообще непонятно что тут проихсодит, если ты не видишь перед глазами сорцов конкретных классов.

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 2)
Ответ на: комментарий от zx_gamer

Ну вот как напишешь набор нормальных классов для работы с коллекциями, тогда твоё утверждение возможно станет истинным.

А на данный момент STL часть стандарта Си++. Поэтому если нет жёстких требований по скорости, то уж лучше Go.

monk ★★★★★
()
Ответ на: комментарий от cumvillain

Это и есть от контекста. Вообще непонятно что тут проихсодит, если ты не видишь перед глазами сорцов конкретных классов.

А на каком-то другом языке vec.end().operator_star() более понятно? Или в чём суть претензии?

monk ★★★★★
()
Ответ на: комментарий от cumvillain

а понятность кода стала только хуже

Чем хуже?

То, что было в Си

plus(my_class_data(a), mult(my_class_data(b), my_class_data(c)))

стало

a.data() + b.data() * c.data()

Неужели стало менее понятно?

monk ★★★★★
()
Ответ на: комментарий от zx_gamer

До STL в любой более-менее крупной библиотеке была частичная кривая реализация std::string и std::vector. А при использовании нескольких библиотек постоянно приходилось перекладывать байтики из одного типа в другой.

monk ★★★★★
()
Ответ на: комментарий от monk

std::string почти бесполезный класс. У него нет методов. Нафиг нужна строка, в конструктор которой нельзя передать число, и из которой нельзя геттером получить число?

zx_gamer ★★
()
Ответ на: комментарий от monk

Мое любимое вот это:

#include <iostream>

static
void foo(int &v)
{
	v = 10;
}

int
main(void)
{
	int v = 5;
	foo(v);
	std::cout << v << std::endl;
	return 0;
}

Читая main() невозможно понять что foo() модифицирует v :D

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 1)
Ответ на: комментарий от posixbit

видимо тем что в bluetoothctl тебе нужно руками водить mac-адрес нужного девайса, а тут для этого типа есть меню

Lrrr ★★★★★
()
Ответ на: комментарий от zx_gamer

Вот например MySQL++. Они будут все контейнеры в мире поддерживать?

У них там мешанина из const char* и std::string. Плюс, как я понял из чтения по диагонали, у них ещё и свой String есть.

alex1101
()
Ответ на: комментарий от zx_gamer

Ну и замечательно, чем больше вариантов - тем лучше. Суть моего позапрошлого коммента была в том, что не нужно без веских причин использовать небезопасные C-like типы.

alex1101
()
Ответ на: комментарий от zx_gamer

А в каком виде? У %f в C не просто так столько квалификаторов.

monk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.