Giter Club home page Giter Club logo

vitunes's People

Contributors

edma2 avatar jaltenmueller avatar ryanflannery avatar sahne avatar thp 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  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

vitunes's Issues

Configure script missing from official tarball

As the subject says, for some reason the configure script seems to be missing from the tarball linked from the big green button on the project homepage. When I cloned down from GitHub the script was present and it built just fine, but it was definitely not in the other archive.

I have not checked to see if the tarball is otherwise up-to-date.

Audit code and limit scope of most functions

Most of the vitunes modules (file.h+file.c) export all functions in the .c file. The naming conventions keep the namespace clean, but I'd like to audit the code and eliminate as many global functions as possible.

With the newer keybinding+command handling design, this is now much more feasible (they were getting called willy-nilly before).

Build totally broken on my new Linux system

First off, thanks for vitunes! I'm still using it daily and it's great. I notice the configure script is still missing from the tarball on the website even though there has been development since I submitted that bug report in 2015, but I guess it's not the end of the world when I can download the source from github.

However, the build didn't work at all out of the box this time. I'm not sure if the issue is my configuration in my clean install or the code, but there were two issues which to my recollection didn't happen last time I installed:

  • In src/compat/compat.c, there are several #includes behind #ifdefs that contain compat/whateverfile.c, but the compat/ shouldn't be there, as this file is already in the compat/ directory. I assume the structure was changed around a little bit and this was overlooked because those conditional branches were never hit on the development systems.
  • In src/Makefile, the vitunes target is incorrect. It reads $(CC) -o $@ $(LDFLAGS) $(LIBS) $(OBJS) $(ODEPS), but it needs to be $(CC) -o $@ $(LDFLAGS) $(OBJS) $(ODEPS) $(LIBS) (with $(LIBS) at the end). If you try to link ncurses before the objects that use ncurses are specified, the compiler doesn't see any ncurses functions that actually need to be accessible, so it doesn't link in the code and the build fails (see here). I'm using the standard gcc in Linux Mint 18.3:
$ cc --version
cc (Ubuntu 5.4.0-6ubuntu1~16.04.6) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Once I made these edits, the build completed normally and vitunes runs fine.

In case you need it to figure out the conditions under which these issues occurred, here's my config.mk:

# This file was generated by the 'configure.sh' script on 2018-02-17 at 19:57:03.
# Its contents should probably not be modified directly (if they should,
# please contact the vitunes developers and let them know why).
#
# Generated on: 2018-02-17 at 19:57:03
# Run on OS: Linux Emily 4.10.0-38-generic #42~16.04.1-Ubuntu SMP Tue Oct 10 16:32:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

# Install Locations
PREFIX?=/usr
BINDIR?=/usr/bin
MANDIR?=/usr/man/man1

# TagLib - These MUST be filled in for vitunes to compile!

# taglib-config found.  Using to determine CFLAGS and LDFLAGS
TAGLIB_CFLAGS=`taglib-config --cflags`
TAGLIB_LIBS=`taglib-config --libs` -ltag_c


# gstreamer - Fill these in only if you want gstreamer support


# configure.sh output ending

Add Support for undo/re-do

I've thought quite a bit about this, and it's easy enough to add. It's simply not high on my priority list.

File info view doesn't scroll

When viewing information about a given file (via the 'm' keybinding), the window is painted statically and doesn't scroll. In small windows this has the obvious problem of missing content.

Support for the "comment" meta-info field

Update should include support for comment with:

  • Tagging (vitunes -e tag -c "New Comment" foo.mp3)
  • Searching/Filtering
  • Display/Sorting

Note: Yes, I've already completed this but I wanted to see how issues are handled here.

Can't configure but have /usr/inlude/taglib

I've compiled TagLib from source on my Debian Squeeze Linux 3.8 amd64. I can see the files /usr/include/taglib. However, I can't go through configure.sh cleanly. It fails to detect taglib. When looking into the script I tried running 'pkg-config --exists taglib' to diagnose the issue. It doesn't return anything. I guess I could move on with using '-C /usr/include/taglib' when running make but it yields make: No rule to make target `install'. Stop.. If I understand correctly, I need a makefile to be generated from configure.sh but I can't as it fails as described above. Where did I make a mistake?

(I also tried adding tag_c.hh directly into the vitunes source folder and editing the headers, then however I get a lot ecmd_tag.c:(.text+0x482): undefined reference to `taglib_set_strings_unicode' etc. Which leads me to believe that this approach won't get me very far.)

Thank you

Allow empty playlist directory

When no *.playlist file is found in the playlist directory, vitunes fails with
vitunes: failed to glob playlists directory: Connection refused
stemming from retrieve_playlist_filenames(...) in playlists.c, lines 355-356. An immediate exit seems not to be necessary, as there appears to be no side-effect in case retrieve_playlist_filenames(...) returns a zero filecount.

No patch or pull-request added, as I'm not 100% sure what the most elegant fix would be (except for a direct return with fcount = 0).

Build on linux

The Makefile.linux doesn't work on linux, there is no real support for subfolders.

Here is a diff of my changes to the file in order to build vitunes: http://pastie.org/1690554

Probably a bit hacky and you should reconsider the tree of the buildsystem, that is why I supply just a diff and no pull request. ;)

UTF-8 Support

Many media files have their meta-info encoded in UTF-8. Now that OpenBSD has rudimentary UTF-8 support in base, add this to vitunes.

vitunes crashes and corrupts terminal

I used

vitunes -e init

vitunes add music/

vitunes

This results in a crash and terminal corruption in rxvt-unicode.
I never get the actual interface just a line and a half of solid grey.
Edit: Happens in xterm as well.

Edit: I looked at an strace and noticed it looking for mplayer and didn't see any crash. I have mplayer2 so I made a soft link to mplayer and its now working.

Edit: If I pipe away the grey output I actually see a message about mplayer.

Build fails in Linux (64-bit)

I get numerous errors (looks like a problem with ncurses?) when attempting to build on Ubuntu 12.10 (64-bit) with the linux branch of vitunes.

cc -o vitunes -lm -lncursesw -lutil `taglib-config --libs` -ltag_c commands.o compat.o e_commands.o keybindings.o medialib.o meta_info.o mplayer.o paint.o player.o player_utils.o playlist.o socket.o str2argv.o uinterface.o vitunes.o
commands.o: In function `cmd_color':
commands.c:(.text+0x1186): undefined reference to `init_pair'
commands.o: In function `cmd_set':
commands.c:(.text+0x12bf): undefined reference to `stdscr'
commands.c:(.text+0x12cb): undefined reference to `stdscr'
commands.o: In function `user_getstr':
commands.c:(.text+0x1e53): undefined reference to `werase'
commands.c:(.text+0x1e7d): undefined reference to `mvwprintw'
commands.c:(.text+0x1e87): undefined reference to `curs_set'
commands.c:(.text+0x1ea9): undefined reference to `wmove'
commands.c:(.text+0x1eb8): undefined reference to `wrefresh'
commands.c:(.text+0x1f1b): undefined reference to `curs_set'
commands.c:(.text+0x1f2f): undefined reference to `curs_set'
commands.c:(.text+0x1f58): undefined reference to `wmove'
commands.c:(.text+0x1f67): undefined reference to `wrefresh'
commands.c:(.text+0x1fe5): undefined reference to `beep'
commands.c:(.text+0x2016): undefined reference to `wmove'
commands.c:(.text+0x202f): undefined reference to `waddch'
commands.c:(.text+0x205b): undefined reference to `wmove'
....

Note that I get the same compilation errors with the master branch.

Here is a listing of curses packages I have installed (with a grep of curses):

$ dpkg -l | grep curses
ii  canto                                       0.7.10-4                                   amd64        flexible ncurses Atom/RSS newsreader for the console
ii  lib32ncurses5                               5.9-10ubuntu1                              amd64        shared libraries for terminal handling (32-bit)
rc  lib32ncursesw5                              5.9-4                                      amd64        shared libraries for terminal handling (wide character support) (32-bit)
ii  libncurses5:amd64                           5.9-10ubuntu1                              amd64        shared libraries for terminal handling
ii  libncurses5:i386                            5.9-10ubuntu1                              i386         shared libraries for terminal handling
ii  libncurses5-dev                             5.9-10ubuntu1                              amd64        developer's libraries for ncurses
ii  libncursesw5:amd64                          5.9-10ubuntu1                              amd64        shared libraries for terminal handling (wide character support)
ii  libncursesw5-dev                            5.9-10ubuntu1                              amd64        developer's libraries for ncursesw
ii  moc                                         1:2.5.0~alpha4+svn20120224-1ubuntu1        amd64        ncurses based console audio player
ii  mtr-tiny                                    0.82-3ubuntu1                              amd64        Full screen ncurses traceroute tool
ii  ncurses-base                                5.9-10ubuntu1                              all          basic terminal type definitions
ii  ncurses-bin                                 5.9-10ubuntu1                              amd64        terminal-related programs and man pages
ii  ncurses-term                                5.9-10ubuntu1                              all          additional terminal type definitions
ii  ninvaders                                   0.1.1-3                                    amd64        A space invaders-like game using ncurses
ii  python-urwid                                1.0.1-2                                    amd64        curses-based UI/widget library for Python
ii  ranger                                      1.5.4-1                                    all          File manager with an ncurses frontend written in Python
ii  rtorrent                                    0.9.2-1                                    amd64        ncurses BitTorrent client based on LibTorrent from rakshasa
ii  vifm                                        0.4-1ubuntu3                               amd64        a ncurses based file manager with vi like keybindings
ii  weechat-curses                              0.3.8-1                                    amd64        Fast, light and extensible chat client - console client

Is there a specific dependency I need to install that would clear this up? Any help would be appreciated.

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.