I had a chat with gabaug last week and he gave me lots of things to think about. For one the code has now been cleaned up and re-formatted to match the Banshee c# coding style guideline. Some unneeded stuff is also removed from gitorious. He also had the idea of separating streamripper to own project. This will be the next thing that I am going to do.
I put the idea of updating now playing -fields to hold. It seems that putting it together is time consuming and I have more urgent issues to work on.
One feature that I feel banshee is missing is automatically importing songs from some certain directories. Whenever I get new music it bugs me that I have to manually import them. I'd like to make this happen. Hope I have the time.
Links related to the project
sunnuntai 12. heinäkuuta 2009
keskiviikko 8. heinäkuuta 2009
Updating station's now playing -field
I ran into trouble with the thread that is supposed to update now playing -field (and add new stations and get rid of one's that don't exist anymore). While debugging the feature I noticed that now playing fields retrieved from shoutcast are usually very old. The latency is something like 10 minutes which in this case makes the information unusable.
I also noticed that Banshee sees the currently played song of a radio-stream currently being listened without any latency. So I think there is another way to update now playing -field.
The blog has now new link-element attached to the top. I plan to keep link to the newest release and link to development version in Gitorious.
The "stationlist-scanner" -thingie is added to the version in Gitorious. Old stuff is now deleted from Gitorious and the only thing is the standalone extension.
I also noticed that Banshee sees the currently played song of a radio-stream currently being listened without any latency. So I think there is another way to update now playing -field.
The blog has now new link-element attached to the top. I plan to keep link to the newest release and link to development version in Gitorious.
The "stationlist-scanner" -thingie is added to the version in Gitorious. Old stuff is now deleted from Gitorious and the only thing is the standalone extension.
lauantai 4. heinäkuuta 2009
Version 0.1.1
Soon after previous release Bertnard hit me with an email giving me a whole bunch of hints with autotools and releasing related stuff. So now I have more working 'make install'-thing and less not needed stuff included in tarball. Oh and I fixed a super-ugly bug making banshee to crash when "Get"-button was pressed (I had list of genres included in database and not having these changes made banshee crash).
Version 0.1.1 is found here.
Installation (to ~/.config/banshee-1/addins):
- untar the package
- navigate to banshee-shoutcast-extension -folder with your terminal.
- ./configure --enable-user-extension
- make
- make install
I've started writing the thread that will update station-information in background, but it didn't make to this release. Other issue is that there is still something funny going on with configure-scripts. I also would like to get a better grip of gitorious. There's still the very old version of the Extension and the whole banshee-project. Adding somekind of side-panel to the blog containing links to versions and to gitorious would also be nice. Tons TODO.
Version 0.1.1 is found here.
Installation (to ~/.config/banshee-1/addins):
- untar the package
- navigate to banshee-shoutcast-extension -folder with your terminal.
- ./configure --enable-user-extension
- make
- make install
I've started writing the thread that will update station-information in background, but it didn't make to this release. Other issue is that there is still something funny going on with configure-scripts. I also would like to get a better grip of gitorious. There's still the very old version of the Extension and the whole banshee-project. Adding somekind of side-panel to the blog containing links to versions and to gitorious would also be nice. Tons TODO.
lauantai 27. kesäkuuta 2009
Version 0.1 is out
Wow it has been some time since I updated this blog. So what I've been up to? Mainly just banging my head against the wall with autotools. Up till last week I have never had to touch autotools. Sure I have compiled and installed some programs before with ./configure && make && make install -commands but not made a release out of something I wrote. Other issue was to get the resource-files available for banshee in a right way (one day I spent two hours messing around before I realized Addin.xml should have the first letter in lowercase *sigh*).
Anyway I got my little shoutcast-project now separated from the banshee-project. It's now a 'standalone' extension and more or less ready to be released. Even though the features I wanted to have are pretty much there, it still has many bugs and inconveniences in the user-interface.
You can download the tar-ball here.
In addition to having banshee you will need to have streamripper installed in your computer and found in PATH if you wish to use the ripping feature. I think autotools should check this in the future.
Installation:
The usual:
./configure && make
NOTE! make install won't do any good for now. It installs the .dll-file in to a wrong directory.
Instead you will have to manually copy the dll to /usr/lib/banshee-1/Extensions with following command:
sudo cp banshee-shoutcast-extension/bin/Release/banshee-shoutcast-extension.dll /usr/lib/banshee-1/Extensions/
Next I would like to do more writing code and less figuring out how to configure my project. First I want to write the background thread for updating channel-listing then I will tackle with some UI-issues I mentioned in previous post. Then I want to have my configure.ac's and Makefile.am's set straight. After I have this done there's going to be a new release.
If someone has a good idea what I should do with the make install part, I would be glad to hear it. Also if there's people trying out this release I would love to hear some comments.
Anyway I got my little shoutcast-project now separated from the banshee-project. It's now a 'standalone' extension and more or less ready to be released. Even though the features I wanted to have are pretty much there, it still has many bugs and inconveniences in the user-interface.
You can download the tar-ball here.
In addition to having banshee you will need to have streamripper installed in your computer and found in PATH if you wish to use the ripping feature. I think autotools should check this in the future.
Installation:
The usual:
./configure && make
NOTE! make install won't do any good for now. It installs the .dll-file in to a wrong directory.
Instead you will have to manually copy the dll to /usr/lib/banshee-1/Extensions with following command:
sudo cp banshee-shoutcast-extension/bin/Release/banshee-shoutcast-extension.dll /usr/lib/banshee-1/Extensions/
Next I would like to do more writing code and less figuring out how to configure my project. First I want to write the background thread for updating channel-listing then I will tackle with some UI-issues I mentioned in previous post. Then I want to have my configure.ac's and Makefile.am's set straight. After I have this done there's going to be a new release.
If someone has a good idea what I should do with the make install part, I would be glad to hear it. Also if there's people trying out this release I would love to hear some comments.
perjantai 19. kesäkuuta 2009
First release under construction
I thought I would have made a new prototype like the previous one. Instead I realized it would be much better to make a standalone extension which would be ./configured made and make installed.
So now I will not touch the source code but learn how to wrap the thing up.
The release-version will be able to import ripped songs to media-library, but there is still work to be done to the UI (which I won't fix in this release).
Currently know issues:
- rec-button should be toggle. Now user doesn't know if the thing is recording
- I feel there shouldn't be a separate fetch-window. Just add genre-combobox to the main-UI?
- fetching from shoutcast in separate thread. Now the whole UI is stuck while querying is being done
- A statusbar would be nice to inform if a query is being done or whether currently listened song is being ripped or skipped (when you start listening to a stream you don't hear the whole song and it's being skipped)
So now I will not touch the source code but learn how to wrap the thing up.
The release-version will be able to import ripped songs to media-library, but there is still work to be done to the UI (which I won't fix in this release).
Currently know issues:
- rec-button should be toggle. Now user doesn't know if the thing is recording
- I feel there shouldn't be a separate fetch-window. Just add genre-combobox to the main-UI?
- fetching from shoutcast in separate thread. Now the whole UI is stuck while querying is being done
- A statusbar would be nice to inform if a query is being done or whether currently listened song is being ripped or skipped (when you start listening to a stream you don't hear the whole song and it's being skipped)
lauantai 13. kesäkuuta 2009
Duh!
I got a comment. Turns out there is a need to write instructions how to get my "sandbox"-project running.
I also noticed that I don't provide a database with the changes I made into it. There is a new field called SubGenre in TrackInfo. Also there is a new table Genres which just contains Titles of each shoutcast-genre.
Ok I won't do this today since it's saturday and I am going to let myself work only on the more fun parts :D
Anyway I appreciate getting comments since it helps a lot spotting out things I don't notice.
I also noticed that I don't provide a database with the changes I made into it. There is a new field called SubGenre in TrackInfo. Also there is a new table Genres which just contains Titles of each shoutcast-genre.
Ok I won't do this today since it's saturday and I am going to let myself work only on the more fun parts :D
Anyway I appreciate getting comments since it helps a lot spotting out things I don't notice.
Fooling around with streamripper
Lately I have been playing around with streamripper. Currently I am able to record a stream with instance of streamripper controlled by InternetRadio-extension in Banshee.
Now I'd like to get those ripped songs automatically imported into music library.
At first I thought I would just have to move those new files into a folder that is scanned by music library itself. Turns out this is a feature I thought banshee would have (actually I heard there is an extension to do this, but I rather write a new one since I don't want my extension to have dependencies to other extension in sake of complexity).
I started writing a scanner that checks for new mp3-files every n-seconds. Now I should figure out a good way to do the actual importing. I've spent much time looking into how this should be done. Good start was to check how banshee imports new files to media library and how drag and drop works. I started writing a new custom "source", but I am not too far with this one.
Now that I've been playing with this background thread I got an idea to create other background thread for refreshing fetched stations' status. It would check which genres have already been fetched (get a distinct list of genres found among already fetched stations). Get a fresh list of stations from shoutcast with corresponding genres. Remove deleted stations, add new one and refresh now playing -field.
I think I will write streamripper part first. Make a prototype probably on Wednesday. Start with "refresh-thread" unless I notice something that has higher priority.
Now I'd like to get those ripped songs automatically imported into music library.
At first I thought I would just have to move those new files into a folder that is scanned by music library itself. Turns out this is a feature I thought banshee would have (actually I heard there is an extension to do this, but I rather write a new one since I don't want my extension to have dependencies to other extension in sake of complexity).
I started writing a scanner that checks for new mp3-files every n-seconds. Now I should figure out a good way to do the actual importing. I've spent much time looking into how this should be done. Good start was to check how banshee imports new files to media library and how drag and drop works. I started writing a new custom "source", but I am not too far with this one.
Now that I've been playing with this background thread I got an idea to create other background thread for refreshing fetched stations' status. It would check which genres have already been fetched (get a distinct list of genres found among already fetched stations). Get a fresh list of stations from shoutcast with corresponding genres. Remove deleted stations, add new one and refresh now playing -field.
I think I will write streamripper part first. Make a prototype probably on Wednesday. Start with "refresh-thread" unless I notice something that has higher priority.
Tilaa:
Blogitekstit (Atom)