rubio-radio

Rubio is a simple GUI radio player (by kojix2)

Rubio-radio Alternatives

Similar projects and alternatives to rubio-radio

  • Glimmer

    DSL Framework consisting of a DSL Engine and a Data-Binding Library used in Glimmer DSL for SWT (JRuby Desktop Development GUI Framework), Glimmer DSL for Opal (Pure Ruby Web GUI), Glimmer DSL for LibUI (Prerequisite-Free Ruby Desktop Development GUI Library), Glimmer DSL for Tk (Ruby Tk Desktop Development GUI Library), Glimmer DSL for GTK (Ruby-GNOME Desktop Development GUI Library), Glimmer DSL for XML (& HTML), and Glimmer DSL for CSS

  • glimmer-dsl-swt

    Glimmer DSL for SWT (JRuby Desktop Development Cross-Platform Native GUI Framework) - The Quickest Way From Zero To GUI - If You Liked Shoes, You'll Love Glimmer!

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • glimmer-dsl-libui

    Glimmer DSL for LibUI - Prerequisite-Free Ruby Desktop Development Cross-Platform Native GUI Library - The Quickest Way From Zero To GUI - If You Liked Shoes, You'll Love Glimmer! - No need to pre-install any prerequisites. Just install the gem and have platform-independent GUI that just works on Mac, Windows, and Linux.

  • libui-ng

    libui-ng: a portable GUI library for C. "libui for the next generation"

  • RubyCrumbler

    Discontinued A simple Ruby script that contains a GUI desktop application providing typical NLP tasks ready to apply on English or German text files. Available for macOS, Windows and Linux.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better rubio-radio alternative or higher similarity.

rubio-radio reviews and mentions

Posts with mentions or reviews of rubio-radio. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-08-30.
  • Rubio-Radio Currently Playing Song & Full-Text Search
    2 projects | dev.to | 30 Aug 2022
    Another GitHub Pull Request for Rubio-Radio (open-source Internet radio app built with Ruby) got accepted and merged, which focused on displaying the currently playing song/program, loading all available radio stations (instead of a pre-defined limit), and enhanced full-text-search support including column-specific queries. The changes have been released in rubio-radio gem version 0.0.6. In fact, the enhanced full-text-search support is included in the latest version of Glimmer DSL for LibUI (Ruby Desktop Development GUI Library used to build Rubio-Radio) as part of the refined_table custom control for use in any projects, so software engineers get that feature for free now.
  • _why's Estate
    5 projects | /r/programming | 19 Aug 2022
  • Rubio-Radio Bookmarking & Async Gradual Fetching
    2 projects | dev.to | 17 Aug 2022
    # frozen_string_literal: true # From: https://github.com/kojix2/rubio-radio/tree/v0.0.5 require 'glimmer-dsl-libui' require_relative '../model/radio_browser' require_relative '../model/player' module Rubio module View class Radio include Glimmer::LibUI::Application options :backend, :initial_width, :initial_height option :radio_station_count, default: 10_000 option :debug, default: false option :show_menu, default: true option :show_page_count, default: false option :show_bookmarks, default: true option :gradually_fetch_stations, default: true option :table_per_page, default: 20 attr_reader :stations, :player attr_accessor :current_station, :view before_body do @loaded_station_count = [gradually_fetch_stations ? 100 : radio_station_count, radio_station_count].min @loaded_station_offset = 0 @stations = Model::RadioBrowser.topvote(@loaded_station_count, offset: @loaded_station_offset) @player = Model::Player.new(backend) @initial_width = (initial_width || (show_bookmarks ? 740 : 620)).to_i @initial_height = (initial_height || calculate_initial_height).to_i @view = :all end after_body do monitor_thread(debug) async_fetch_stations if gradually_fetch_stations && @stations.count < radio_station_count end body do radio_menu_bar window('Rubio', @initial_width, @initial_height) do vertical_box do horizontal_box do @station_table = refined_table( table_columns: station_table_columns, model_array: stations, per_page: table_per_page.to_i, visible_page_count: show_page_count ) end end on_closing do @player.stop_all end end end def radio_menu_bar return unless OS.mac? || show_menu radio_menu view_menu help_menu end def radio_menu menu('Radio') do menu_item('Stop') do enabled <= [self, 'current_station', { on_read: ->(value) { !!value } }] on_clicked do stop_station end end separator_menu_item menu_item('Bookmark') do enabled <= [self, 'current_station.bookmarked', { on_read: :! }] on_clicked do toggle_bookmarked_station(current_station) if current_station end end menu_item('Unbookmark') do enabled <= [self, 'current_station.bookmarked'] on_clicked do toggle_bookmarked_station(current_station) if current_station end end separator_menu_item if OS.mac? about_menu_item do on_clicked do about_message_box end end end quit_menu_item do on_clicked do @player.stop_all end end end end def view_menu menu('View') do radio_menu_item('All') do checked <=> [self, :view, { on_read: ->(value) { value == :all }, on_write: ->(_value) { :all } }] on_clicked do view_all end end radio_menu_item('Bookmarks') do checked <=> [self, :view, { on_read: ->(value) { value == :bookmarks }, on_write: ->(_value) { :bookmarks } }] on_clicked do view_bookmarks end end radio_menu_item('Playing') do checked <=> [self, :view, { on_read: ->(value) { value == :playing }, on_write: ->(_value) { :playing } }] on_clicked do view_playing end end separator_menu_item if OS.mac? end end def help_menu menu('Help') do menu_item('About') do on_clicked do about_message_box end end end end def station_table_columns table_columns = { 'Play' => { button: { on_clicked: lambda { |row| station = @station_table.refined_model_array[row] select_station(station) } } } } if show_bookmarks table_columns.merge!( 'Bookmark' => { button: { on_clicked: lambda { |row| station = @station_table.refined_model_array[row] toggle_bookmarked_station(station) } } } ) end table_columns.merge!( 'name' => :text, 'language' => :text ) end def about_message_box license = begin File.read(File.expand_path('../../../LICENSE.txt', __dir__)) rescue StandardError '' end product = "rubio-radio #{Rubio::VERSION}" message_box(product, "#{product}\n\n#{license}") end def select_station(station) playing = station.playing? stop_station self.current_station = station if playing self.current_station = nil else play_station end end def toggle_bookmarked_station(station) station.bookmarked = !station.bookmarked? view_bookmarks if view == :bookmarks && !station.bookmarked end def play_station @player.play(current_station.url) current_station.playing = true rescue StandardError => e message_box(e.message) self.current_station = nil end def stop_station return if current_station.nil? @player.stop current_station.playing = false self.current_station = nil end def view_all @station_table.model_array = stations end def view_bookmarks @station_table.model_array = stations.select(&:bookmarked?) end def view_playing @station_table.model_array = stations.select(&:playing?) end def refresh_view case view when :all view_all when :bookmarks view_bookmarks when :playing view_playing end end private def calculate_initial_height if OS.linux? 107 + (show_menu ? 26 : 0) + 24 * table_per_page.to_i elsif OS.mac? && OS.host_cpu == 'arm64' 90 + 24 * table_per_page.to_i elsif OS.mac? 85 + 19 * table_per_page.to_i else # Windows 95 + 19 * table_per_page.to_i end end def monitor_thread(debug) Glimmer::LibUI.timer(1) do p @player.history if debug next if current_station.nil? || @player.alive? message_box("player '#{@player.backend}' stopped!", @player.thr.to_s) stop_station true end end def async_fetch_stations @loaded_station_offset += @loaded_station_count @loaded_station_count *= 2 Thread.new do new_station_count = [@loaded_station_count, radio_station_count - @loaded_station_offset].min @stations += Model::RadioBrowser.topvote(new_station_count, offset: @loaded_station_offset) Glimmer::LibUI.queue_main do refresh_view async_fetch_stations if @stations.count < radio_station_count end end end end end end
  • Glimmer DSL for LibUI Refined Table Pagination/Filtering
    1 project | dev.to | 4 Aug 2022
    Last but not least, the new refined_table custom control has been used in the Rubio Radio application to enable browsing 10,000 top radio stations with excellent performance and usability.
  • New Glimmer DSL for LibUI Apps: RubyCrumbler and Rubio-Radio
    4 projects | dev.to | 25 Jun 2022
  • A note from our sponsor - SaaSHub
    www.saashub.com | 4 May 2024
    SaaSHub helps you find the best software and product alternatives Learn more →

Stats

Basic rubio-radio repo stats
5
13
4.0
3 months ago

kojix2/rubio-radio is an open source project licensed under MIT License which is an OSI approved license.

The primary programming language of rubio-radio is Ruby.


Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com