Giter Site home page Giter Site logo

radiant-player-electron's People

Contributors

dependabot[bot] avatar jacobwgillespie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

radiant-player-electron's Issues

libre.fm scrobbling support

Related to #4

libre.fm implement much of their API the same as last.fm - ie, Now Playing and Scrobbling requests are identical (aside from the API URL).

Note - I think libre.fm only have username/password authentication at the moment (needs confirmation) so if opting for oauth for last.fm, this may require writing a separate authentication process for them.

Depends on #3 for somewhere to put the options

Closing window on OSX kills radiant player

Closing the Radiant Player window (just closing, not quitting app) kills the player. When I try to open the app again it throws an exception:

Uncaught Exception:
TypeError: Cannot read property 'webContents' of null
    at send (/Applications/Radiant Player.app/Contents/Resources/app/backend.js:816:40)
    at Object.emit (/Applications/Radiant Player.app/Contents/Resources/app/backend.js:219:13)
    at EventEmitter.<anonymous> (/Applications/Radiant Player.app/Contents/Resources/app/backend.js:855:26)
    at emitTwo (events.js:106:13)
    at EventEmitter.emit (events.js:191:7)
    at /Applications/Radiant Player.app/Contents/Resources/app/node_modules/osx-mouse/index.js:11:9

On El Cap v10.11.6


As an aside, is this project still going ahead? Even in pre-alpha or whatever it's in it looks really promising (this breaking bug aside, obviously). Perf already miles better than old Radiant Player, and no Flash. Would happily use this as my daily driver if just the current limited featureset was stable.

Custom / Native title bar switcher

Option to switch between custom titlebar (ie, draggable via the Google Music titlebar) or native OS titlebar fallback.

This was a functional requirement in Radiant V1, but on V2 (after seeing the difference of opinion on other projects) I'm thinking this might just be a nice to have to cater for everyone's personal preference.

Depends on #3 for somewhere to put the options

Mini player visual modes

Radiant V1 has the ability to click the album artwork in the mini player to switch between a a minimal & artwork-centric mode (this may be controllable via the settings, but I'm not sure that's necessarily required.

Settings page

Need a generic, tabbed (?) settings page.

Ideally accessible via the context menu, but I guess we're not tied that that if we have a better idea!

Note - if anyone fancies taking this on but doesn't fancy tackling the styling, feel free to add the functionality and ping me and I'll pretty it up.

Bluetooth drop issues due to Chromium

I initially started using Radiant Player because it didn't have the bluetooth connection issues that Chrome has. For me, when I use my wireless headphones, Chrome + google play music seem to misbehave in ways I don't see anywhere else. Radiant Player solved that for me - it turned out that Safari never had the issues that Chrome has with Bluetooth. When I tested Radiant Player Electron, the issues came right back, so I would not want to use this but instead to continue using the old Radiant player.

Just FYI - Thanks for all the development work.

Make the move to truly cross platform with Electron

So I don't know about you guys but the constant platform specific bug fixes are annoying me far too much at the moment. I just spent months fighting with Windows WndProc calls....

Electron appears to be the way to go if you want a truly cross platform experience without writing a single line of native code. I started work on an electron port of GPMDP a few days ago and then realized this repo existed ๐Ÿ‘

My current work is under a new Org "Nucleus Player"
https://github.com/Nucleus-Player/Nucleus-Player

I'm interested as too what you guys planned to do with this repository and whether you'd be interested in accelerating Nucleus Player with me up to the feature level of Radiant and GPMDP?

My current plan is too reach feature parity with GPMDP and then (after much testing) push an update to GPMDP that will overwrite it with Nucleus Player. I think it would be great if the Radiant team worked towards a similar goal whereby both platforms would have a truly unified code base and feature set.

/cc @chrismou @jacobwgillespie @kbhomes @jadengore

[Progress] MiniPlayer Work

This is my first time playing around with electron and i wanted to see what i could do with the Mini player.

So with having the idea of "porting" the OS X stylization to electron i found that a lot is very possible;
For one adding the arrow (just like the Popview in OS X / Objective-C on the menubar) with the album art.

Now there is a few things that could be done with border styling but with that there isn't a way for such to have the image "draw In" just like

[backgroundImage drawInRect:[self bounds] fromRect:NSMakeRect(0, 0, backgroundImage.size.width, backgroundImage.size.height) operation:NSCompositeSourceOver fraction:1.0];

So with the power of clips within css i got it working perfectly (I made a custom arrow in Illustrator and rendered it svg "clipart") i did however changed a couple of things to get it working for instance

miniplayer.setPosition(position.x, position.y);

Although it's positioned, the window doesn't get centered correctly with the trayIcon instead i used the trayPosition (in this case i changed it to bounds)

miniplayer.setPosition(parseInt(bounds.x - (Param.Width / 2) + (bounds.width / 2)), bounds.y + Param.Arrow + 10);

(Param is a Param object with Height,Width,Arrow ints)

and some HTML//CSS/JS minor work (and fixes with the setupGMusic / gpmIPCInterface.on event)

Images:

image

image

image

image

As of now it doesn't look like much but since i only just started i do plan on fixing up the CSS and such for the Mini Player to help progress things.

Figured i have this open for progress and for anyone else's input.

Let me know what you guys think.

Track desktop notification collision

The Radiant player notifications and the Google Music notifications are colliding. Additionally, the Google Music notifications trigger a system sound.

Under "Settings => Labs" there is an option for Desktop Notifications. These will collide with the notifications built into Radiant. If you're looking, you can see both attempting to be shown, but the Desktop notification shows up second and thus, is the "visible" one. I was trying to get the notifier to display some different text which is how I figured out I had Desktop Notifications turned on through Labs.

I'm not really sure what the solution here could be. It seems like Radiant couldn't have much control of the Google Labs notification options, and the Radiant notifier works just fine.

I guess the easiest solution would be to put a note in a Readme saying "Turn off Google Labs Desktop Notifications For the best experience"

Custom CSS source files as SCSS

Set it up so that any custom CSS can be written in SCSS.

Will require adding something like to sass watch as part of the of the npm run watch process, and sass build as part of the distribution build process.

Obvious benefits are tidier CSS, mixins and more reusable styles.

Once done, fold the existing stylesheets (ie, miniplayer.css) into the build

Back button

Implement a back button for navigating back from within the player.

For bonus points, also implement a forward button (as Radiant v1 currently has)

Theming

Need to decide whether we're sticking with the current model (custom made themes) or a more generic theming function (see https://github.com/gmusic-utils/gmusic-theme.js).

Personal preference - implement gmusic-theme for fine grained theming control, but also include some "pre made" theme options, which will essentially just set the gmusic-theme values to whatever (ie, dark grey background, white text and cyan stroke for the "Dark Cyan" theme).

Depends on #3 for somewhere to put the options

last.fm scrobbling support

Support for scrobbling. Ideally this will use their v2 API (oauth) but if required we can fall back to v1 (username/password).

Oauth2 is preferred, but bear in mind that going down this route will mean the authentication logic can't be shared with libre.fm (#5). However, I believe the credentials methods have been deprecated (though they're not actively enforcing this, and most likely they won't be switched off any time soon due to the sheer number of apps that will break).

  • Essential:
    -- Make "Now Playing" call to last.fm when song starts
    -- Scrobble song at 50% (or at the very least, when the song changes and we know at least 50% has been listened to. Ideally the former).
  • Nice to have:
    -- Option to a custom percentage before scrobbling. Minimum 50% (as per last.fm guidelines). Default to 50%.

Depends on #3 for somewhere to put the options

love a song on last.fm when upvoting on Google Music

Ability (controlled by a setting) to submit a song as a "loved track" to last.fm when you upvote it on Google Music.

Would be good to decide if we actually want this. On one hand this is really useful for last.fm users (I use it myself all the time!) but on the other hand, our current implementation submits whatever song is currently playing regardless of which song you thumb up.

This is a bit confusing, and I'm not sure if it can be worked around as gmusic.js provides the current song, but upvoting other songs is an internal call to the Google Music API. If this is the case, we need to decide whether to just continue doing it the way we do "because it's always been like that" (and maybe add a note of the limitation on the settings page), or just abandon it altogether because it doesn't/won't work as expected.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.