Giter Club home page Giter Club logo

grip's Introduction

Grip
====

Grip is a cd-player and cd-ripper for the Gnome desktop.. It has the ripping
capabilities of cdparanoia builtin, but can also use external rippers (such
as cdda2wav). It also provides an automated frontend for MP3 encoders,
letting you take a disc and transform it easily straight into MP3s. Internet
disc lookups are supported for retrieving track information from disc
database servers. Grip works with DigitalDJ to provide a unified
"computerized" version of your music collection.


Requirements
============

To use Grip, you must have:

 o The Gnome desktop
 o POSIX thread support (http://pauillac.inria.fr/~xleroy/linuxthreads)
 o a net connection (if you want to use disc database lookup)
 o a CD player (surprise, surprise)

Grip requires that you have at least a basic version of the Gnome desktop
installed on your computer. In particular, make sure that you have libghttp
installed. If you can't find it, I have mirrored a copy here:

  http://www.nostatic.org/grip/libghttp-1.0.9.tar.gz

If you wish to have builtin cdparanoia support, or id3v2 support, you must
have the appropriate packages on your system. You can find them here:

 cdparanoia: http://xiph.org/paranoia/index.html
 id3v2: http://id3lib.sourceforge.net/

Grip is designed to work closely with DigitalDJ, my SQL-based mp3 jukebox
system (although it does not require it). DigitalDJ can be obtained from:

  http://www.nostatic.org/ddj


Installation
============

If you obtained Grip from the RPM distribution then they are already
installed. If you have the source distribution, you need to compile it.

To install Grip, simply go through the following steps:

 o after unpacking Grip, cd to the extracted directory
 o './configure'
 o 'make'
 o become root if you are installing in a non-user directory
 o 'make install'

For information on options to the configure process, run:

  ./configure --help

Grip adds the following options that can be specified to configure:

  --disable-shared-cdpar  -- This will force Grip to link statically, rather
                             than dynamically with cdparanoia

  --disable-cdpar         -- This disable linking with cdparanoia entirely

  --disable-shared-id3    -- This will force Grip to link statically, rather
                             than dynamically with id3lib

  --enable-gettext-location -- This will build po/grip-2.2.pot with filenames
                               and line numbers for each string

Note that if Gnome is installed in a non-standard place (such as /opt), you
may need to use the '--with-gnome' configure option for all libraries to be
found correctly.


Running Grip
============

Grip's usage is:

  grip [options]

  where the available options are:

    --config=CONFIG             Specify the configuration file to use
                                (defaults to .grip, relative to home dir)
    --device=DEVICE             Specify the cdrom device to use
    --scsi-device=DEVICE        Specify the generic scsi device to use
    --small                     Launch in "small" (cd-only) mode
    --local                     "Local" mode -- do not look up disc info on
                                the net
    --no-redirect               Do not do I/O redirection
    --verbose                   Run in verbose (debug) mode


Getting More Help
=================

For more information, see the online documentation within Grip. It can also
be accessed locally in the source distribution. Load doc/C/grip/grip.html
into an html viewer.

If you need more help with Grip, your best resource is the Grip mailing
list. You will find it at:

  http://lists.sourceforge.net/mailman/listinfo/grip-users

Be sure to check the mailing list archives for answers to any questions you
may have.

To report a bug with Grip, or to submit a patch. Please do so at the Grip
section on sourceforge.net:

  http://sourceforge.net/projects/grip

---
Mike Oliphant ([email protected])

http://www.nostatic.org/grip

grip's People

Contributors

bostrt avatar cassella avatar dwest avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

grip's Issues

Crash on 64-bit arch

grip crashes on x86_64 as follows. The reason is tray.c MakeTrayIcon()'s lack of a prototype for Loadxpm() here, resulting in Loadxpm()'s return value being truncated to a 32-bit signed int before being cast to a 64-bit pointer:

    img = (GtkWidget*)Loadxpm(uinfo->app, menunext_xpm);
    mentry = (GtkWidget*)BuildMenuItemXpm(img, _("Next"));

The backtrace:

Core was generated by `src/grip'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f3cf76399cb in IA__gtk_widget_set_parent (widget=widget@entry=0xffffffffd4003d10,

```
parent=parent@entry=0x9de160) at /build/buildd/gtk+2.0-2.24.27/gtk/gtkwidget.c:6419
```

6419    /build/buildd/gtk+2.0-2.24.27/gtk/gtkwidget.c: No such file or directory.
(gdb) i s
#0  0x00007f3cf76399cb in IA__gtk_widget_set_parent (widget=widget@entry=0x-2bffc2f0, parent=parent@entry=0x9de160 [GtkImageMenuItem]) at /build/buildd/gtk+2.0-2.24.27/gtk/gtkwidget.c:6419
#1  0x00007f3cf74ffe48 in IA__gtk_image_menu_item_set_image (image_menu_item=0x9de160 [GtkImageMenuItem], image=0x-2bffc2f0) at /build/buildd/gtk+2.0-2.24.27/gtk/gtkimagemenuitem.c:935
#2  0x0000000000422e51 in BuildMenuItemXpm (xpm=0x-2bffc2f0, text=0x433a88 "Next") at uihelper.c:103
#3  0x000000000042b38b in MakeTrayIcon (ginfo=0x7f3cf7e08010) at tray.c:206
#4  0x000000000042a999 in UpdateTray (ginfo=0x7f3cf7e08010) at tray.c:63
#5  0x000000000040a238 in GripUpdate (app=0x78f020 [GnomeApp]) at grip.c:737
#6  0x0000000000407e63 in TimeOut (data=0x0, data@entry=)

```
at main.c:228
```
#7  0x00007f3cf66425e3 in g_timeout_dispatch (source=0x8bf800, callback=, user_data=) at /build/buildd/glib2.0-2.44.1/./glib/gmain.c:4545
#8  0x00007f3cf6641b4d in g_main_context_dispatch (context=0x7567a0)

```
at /build/buildd/glib2.0-2.44.1/./glib/gmain.c:3122
```
#9  0x00007f3cf6641b4d in g_main_context_dispatch (context=context@entry=0x7567a0)

```
at /build/buildd/glib2.0-2.44.1/./glib/gmain.c:3737
```
#10 0x00007f3cf6641f20 in g_main_context_iterate (context=0x7567a0, block=block@entry=1, dispatch=dispatch@entry=1, self=) at /build/buildd/glib2.0-2.44.1/./glib/gmain.c:3808
#11 0x00007f3cf6642242 in g_main_loop_run (loop=0x741760) at /build/buildd/glib2.0-2.44.1/./glib/gmain.c:4002
#12 0x00007f3cf7518857 in IA__gtk_main () at /build/buildd/gtk+2.0-2.24.27/gtk/gtkmain.c:1282
#13 0x0000000000407db3 in Cmain (argc=1, argv=0x7fffa4c20b28) at main.c:192
#14 0x00007f3cf5088a40 in __libc_start_main (main=

```
0x4079a0 , argc=1, argv=0x7fffa4c20b28, init=, fini=, rtld_fini=, stack_end=0x7fffa4c20b18) at libc-start.c:289
```
#15 0x00000000004079d9 in _start ()

Upstream is alive

Stumbled across this repo by accident today, and just wanted to say that development on the original SourceForge project was restarted in 2017, by myself.
Last release was in august 31, 2021. :-)

Grip cannot eject cd when automounted by Gnome

When a CD is inserted in computer and Gnome automounts it, Grip cannot eject it. This is due to the use of ioctl function calls instead of asking Gnome to eject the CD for us. Use GIO.

Config File Saving and Loading is Handled Poorly

It basically reads a list of variables from a define and copies those variables from a struct into a file (or the reverse for loading). This would be much better handled through gconf. Make it happen.

grip confused about disc status when drive doesn't support audio playback

In CDStat(), using CDROMSUBCHNL:

If the CD drive doesn't support audio playback, the ioctl(CDROMSUBCHNL) returns cdsc.cdsc_audiostatus == 0 (CDROM_AUDIO_INVALID).

The switch(cdsc.cdsc_audiostatus) doesn't include a case for this, so we leave disc->disc_mode unchanged, generally 0, which is CDAUDIO_PLAYING.

Then grip always thinks the CD is playing, with two effects that I've noticed:

  1. Upon inserting a disc, grip displays it as playing for a few seconds, seemingly advancing about 4 seconds every second.
  2. When you click on a track name, grip tries to start it playing (SelectionChanged() if(disc_mode==CDAUDIO_PLAYING).) It does eventually figure out that it's not playing and reselects track 0.

Even though the drive doesn't support playback, grip can still be used for ripping. But point 2 above prevents you from editing the track info via the GUI.

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.