mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.25k stars 1.24k forks source link

Import playlist when opening playlist with Mixxx #11178

Open KristjanESPERANTO opened 1 year ago

KristjanESPERANTO commented 1 year ago

Feature Description

The following feature would be very helpful: Mixx directly imports playlists that I open via a file manager.

Workflow: any file manager -> right-click on playlist (*.m3u) -> open with Mixxx -> Mixxx opens and imports the playlist

By the way: Thanks for this great software! 👏

daschuer commented 1 year ago

The command line parser needs to check if the first argument is a file: https://github.com/mixxxdj/mixxx/blob/main/src/util/cmdlineargs.cpp

Than put it into a new member: like m_playlistFile() https://github.com/mixxxdj/mixxx/blob/eeca69223d1caa497151cb839bc3fe7cfa82a3a1/src/util/cmdlineargs.h#L73

Use it here: https://github.com/mixxxdj/mixxx/blob/3d1f82b1f3c7f9fab4268ef11ab53ce571ef27f7/src/coreservices.cpp#L473 with: https://github.com/mixxxdj/mixxx/blob/0b708b4bf073ab8516f60580a2c111cf1a5f566a/src/library/trackset/baseplaylistfeature.cpp#L486 To load it into Auto DJ

daschuer commented 1 year ago

Thank you for the feature request. This one is now waiting for a contributor who has interest to implement it.

harsv689 commented 1 year ago

Sir, can i work on this ?

KristjanESPERANTO commented 1 year ago

@harsv689 So far no one has reported working on this issue. I would be happy if you take care of it.

shivang0-0 commented 1 year ago

I would like to work on this issue if it's still unassigned.

daschuer commented 1 year ago

Go ahead. Do you need help?

shivang0-0 commented 1 year ago

Go ahead. Do you need help?

Yes please, I was going through the following parser code here.

I guess, I do not need to add any extra positional argument like "playlist". The "file" positional argument can be used and in coreservices.cpp an else statement can be introduced for files with extension .m3u and then void BasePlaylistFeature::slotImportPlaylistFile(const QString& playlist_file) here can be used to import the playlist. Correct me, if I'm wrong in the above workflow please.

Moreover, while testing these changes out, is there a way faster that building the project again using cmake, like for verifying small changes?

ronso0 commented 1 year ago

an else statement can be introduced for files with extension .m3u

Let's support all extensions that can be imported. Just open a PR and the code be discussed much easier.

shivang0-0 commented 1 year ago

an else statement can be introduced for files with extension .m3u

Let's support all extensions that can be imported. Just open a PR and the code be discussed much easier.

But, isn't the extension of all the exported playlist that needs to be imported is .m3u, so I was trying to identify .m3u files in particular. Any heads up, will be much appreciated on this @daschuer and @ronso0.

ronso0 commented 1 year ago

Afaik Mixxx supports m3u, m3u8 and pls. Just right-click on the Playlist feature and test what you can import.

shivang0-0 commented 1 year ago

will

Afaik Mixxx supports m3u, m3u8 and pls. Just right-click on the Playlist feature and test what you can import.

will do a check around then, thanks @ronso0 !!

shivang0-0 commented 1 year ago

@daschuer I've change certain aspects of the original void BasePlaylistFeature::slotCreateImportPlaylist() function to make it independent of the qAction but when calling this new function with a playlist file's path as an argument. I get this as an error "qualified name is not allowed". If possible can you review the code once?

ronso0 commented 1 year ago

Just open a PR and the code be discussed much easier.