Re: Committing a patch to gnome-2-2 branch of gnome-applets (adds astring)



Hi Bala. You need to mark the string for translation. Did you mark the
string on the HEAD branch also?

To the i18n/release team: this would add one string change to the
gnome-2-2 branch.

Regards,
Kevin

On Wed, 2003-03-26 at 10:53, Balamurali Viswanathan wrote:
> Hi All,
>   Have a patch for the following bug
> http://bugzilla.gnome.org/show_bug.cgi?id=105296
> which has been committed to the HEAD branch of gnome-applets. I would
> like to commit it to gnome-2-2 branch as well. 
> 
> Attaching the patch. Kindly Please let me know whether I can go ahead.
> 
> Thanks and Regards,
> Bala
> ----
> 

> Index: gnome-applets//cdplayer/cdplayer.c
> ===================================================================
> RCS file: /export/cvs/gnome-2.0/gnome-applets/cdplayer/cdplayer.c,v
> retrieving revision 1.94
> diff -p -u -5 -r1.94 cdplayer.c
> --- gnome-applets//cdplayer/cdplayer.c	2003/03/07 00:30:36	1.94
> +++ gnome-applets//cdplayer/cdplayer.c	2003/03/20 14:45:38
> @@ -818,10 +818,11 @@ static void 
>  cdplayer_play_pause(GtkWidget * w, gpointer data)
>  {
>      CDPlayerData *cd = data;
>      cdrom_device_status_t stat;
>      int status;
> +    int ret;
>  
>      if(!cd_try_open(cd))
>          return;
>  
>      status = cdrom_get_status(cd->cdrom_device, &stat);
> @@ -838,19 +839,36 @@ cdplayer_play_pause(GtkWidget * w, gpoin
>          case DISC_COMPLETED:
>          case DISC_STOP:
>  	    cdplayer_update_play_pause_button (cd, PAUSE_IMAGE);
>          case DISC_ERROR:
>              cdrom_read_track_info(cd->cdrom_device);
> -            cdrom_play(cd->cdrom_device, cd->cdrom_device->track0,
> +            ret = cdrom_play(cd->cdrom_device, cd->cdrom_device->track0,
>                     cd->cdrom_device->track1);
>              break;
>          }
>      } else if(status == DISC_TRAY_OPEN) {
>          cdrom_load(cd->cdrom_device);
>          cdrom_read_track_info(cd->cdrom_device);
> -        cdrom_play(cd->cdrom_device, cd->cdrom_device->track0,
> +        ret = cdrom_play(cd->cdrom_device, cd->cdrom_device->track0,
>                 cd->cdrom_device->track1);
> +    }
> +
> +    if (ret == DISC_DEVICE_BUSY) {
> +		GtkWidget *dialog;
> +		dialog = gtk_message_dialog_new (NULL,
> +						 GTK_DIALOG_DESTROY_WITH_PARENT,
> +						 GTK_MESSAGE_ERROR,
> +						 GTK_BUTTONS_CLOSE,
> +						 "Audio Device is busy, or being used by another application",
> +						 NULL);
> +		gtk_window_set_screen (GTK_WINDOW (dialog),
> +				       gtk_widget_get_screen (cd->panel.applet));
> +		g_signal_connect_swapped (GTK_OBJECT (dialog), "response",
> +		                          G_CALLBACK (gtk_widget_destroy),
> +					  GTK_OBJECT (dialog));
> +
> +		gtk_widget_show_all (dialog);
>      }
>  }
>  
>  static void 
>  cdplayer_stop(GtkWidget * w, gpointer data)
> Index: gnome-applets//cdplayer/cdrom-interface.h
> ===================================================================
> RCS file: /export/cvs/gnome-2.0/gnome-applets/cdplayer/cdrom-interface.h,v
> retrieving revision 1.9
> diff -p -u -5 -r1.9 cdrom-interface.h
> --- gnome-applets//cdplayer/cdrom-interface.h	2002/12/02 02:27:44	1.9
> +++ gnome-applets//cdplayer/cdrom-interface.h	2003/03/20 14:45:38
> @@ -12,11 +12,12 @@ enum {
>  enum {
>  	DISC_NO_ERROR = 0,
>  	DISC_IO_ERROR,
>  	DISC_INDEX_OUT_OF_RANGE,
>  	DISC_TRAY_OPEN,
> -	DISC_DRIVE_NOT_READY
> +	DISC_DRIVE_NOT_READY,
> +	DISC_DEVICE_BUSY
>  };
>  
>  enum {
>  	DISC_PLAY,
>  	DISC_PAUSED,
> Index: gnome-applets//cdplayer/cdrom-solaris.c
> ===================================================================
> RCS file: /export/cvs/gnome-2.0/gnome-applets/cdplayer/cdrom-solaris.c,v
> retrieving revision 1.6
> diff -p -u -5 -r1.6 cdrom-solaris.c
> --- gnome-applets//cdplayer/cdrom-solaris.c	2002/07/12 00:27:52	1.6
> +++ gnome-applets//cdplayer/cdrom-solaris.c	2003/03/20 14:45:38
> @@ -22,17 +22,20 @@ int
>  cdrom_play(cdrom_device_t cdp, int start, int stop)
>  {
>  	struct cdrom_ti ti;
>   	struct cdrom_msf msf;
>  	int start_lba, end_lba;
> +	int ret;
>  
>  	/* If CDDA convert addresses to LBA format */
>  	if (cdp->cdda) {
>  		start_lba = msf2lba(&cdp->track_info[start - 1]);
>  		end_lba = msf2lba(&cdp->track_info[stop]);
>  		audio_stop(cdp->cdda);
> -		audio_start(cdp->cdda, start_lba, end_lba);
> +		ret = audio_start(cdp->cdda, start_lba, end_lba);
> +		if (ret == -1) 
> +			return DISC_DEVICE_BUSY;
>  		return (DISC_NO_ERROR);
>  	}
>  
>   	/* Set up CDROMPLAYMSF call. If this fails try CDROMPLAYTRKIND */
>   	msf.cdmsf_min0 = cdp->track_info[start-1].address.minute;
> Index: gnome-applets//cdplayer/writer-solaris.c
> ===================================================================
> RCS file: /export/cvs/gnome-2.0/gnome-applets/cdplayer/writer-solaris.c,v
> retrieving revision 1.2
> diff -p -u -5 -r1.2 writer-solaris.c
> --- gnome-applets//cdplayer/writer-solaris.c	2002/07/16 14:24:47	1.2
> +++ gnome-applets//cdplayer/writer-solaris.c	2003/03/20 14:45:39
> @@ -5,17 +5,18 @@
>   */
>  
>  #include "cdda-solaris.h"
>  #include "reader-solaris.h"
>  #include "writer-solaris.h"
> +#include <errno.h>
>  
>  /* Private function prototypes */
>  static void audio_get_info(cdda_t *, audio_info_t *);
>  static void audio_set_info(cdda_t *, audio_info_t *);
>  static void audio_flush(cdda_t *);
>  static void audio_drain(cdda_t *);
> -static void cdda_audio_open(cdda_t *);
> +static int cdda_audio_open(cdda_t *);
>  static void cdda_audio_close(cdda_t *);
>  static void audio_config(cdda_t *);
>  static int audio_supports_analog(cdda_t *);
>  static void audio_write_chunk(cdda_t *, char *);
>  static void audio_write_eof(cdda_t *);
> @@ -144,25 +145,30 @@ audio_drain(cdda_t *cdda)
>   *
>   * Arguments:
>   *	cdda_t		*cdda		Ptr to cdda state structure
>   *
>   * Returns:
> - *	void
> + *	int: The error number if open fails
>   */
> -static void
> +static int
>  cdda_audio_open(cdda_t *cdda)
>  {
> +	extern int errno;
> +	errno = 0;
>  	/* Return if already open */
>  	if (cdda->audio >= 0) {
> -		return;
> +		return errno;
>  	}
>  
>  	/* Open audio device */
> -	if ((cdda->audio = open(cdda->audio_device, O_WRONLY)) < 0) {
> +	if ((cdda->audio = open(cdda->audio_device, O_WRONLY | O_NDELAY)) < 0) {
>  		perror("open()");
> +		return errno;
>  	}
>  
> +	fcntl (cdda->audio, F_SETFL, O_WRONLY);
> +	return errno;
>  } /* cdda_audio_open() */
>  
>  
>  /*
>   * cdda_audio_close()
> @@ -601,18 +607,19 @@ audio_get_state(cdda_t *cdda, struct cdr
>   *	cdda_t		*cdda		Ptr to cdda state structure
>   *	int		start_lba	Start play address
>   *	int		end_lba		End play address
>   *
>   * Returns:
> - *	void
> + *	int: -1 for failure and 1 for sucess 
>   */
> -void
> +int
>  audio_start(cdda_t *cdda, int start_lba, int end_lba)
>  {
> +	int errno;
>  	/* If playing do nothing */
>  	if (cdda->state != CDDA_STOPPED) {
> -		return;
> +		return 1;
>  	}
>  
>  	/* Initialise */
>  	cdda->start_lba = start_lba;
>  	cdda->end_lba = end_lba;
> @@ -621,11 +628,13 @@ audio_start(cdda_t *cdda, int start_lba,
>  	cdda->cdb.occupied = 0;
>  	cdda->cdb.nextin = 0;
>  	cdda->cdb.nextout = 0;
>  
>  	/* Open the audio device */
> -	cdda_audio_open(cdda);
> +	errno = cdda_audio_open(cdda);
> +	if (cdda->audio < 0 && errno == EBUSY)
> +		return -1;
>  
>  	/* Configure for CD audio */
>  	audio_config(cdda);
>  
>  	/* Fill buffers */
> @@ -646,10 +655,11 @@ audio_start(cdda_t *cdda, int start_lba,
>  				(void *)cdda) < 0) {
>  		perror("pthread_create()");
>  		exit(EXIT_FAILURE);
>  	}
>  
> +	return 1;
>  } /* audio_start() */
>  
>  
>  /*
>   * cdda_cleanup()
> Index: gnome-applets//cdplayer/writer-solaris.h
> ===================================================================
> RCS file: /export/cvs/gnome-2.0/gnome-applets/cdplayer/writer-solaris.h,v
> retrieving revision 1.1
> diff -p -u -5 -r1.1 writer-solaris.h
> --- gnome-applets//cdplayer/writer-solaris.h	2002/07/12 00:27:52	1.1
> +++ gnome-applets//cdplayer/writer-solaris.h	2003/03/20 14:45:39
> @@ -3,11 +3,11 @@
>   */
>  #ifndef	__WRITER_SOLARIS_H__
>  #define	__WRITER_SOLARIS_H__
>  
>  /* Exported function prototypes */
> -void audio_start(cdda_t *, int, int);
> +int audio_start(cdda_t *, int, int);
>  void audio_pause(cdda_t *);
>  void audio_resume(cdda_t *);
>  void audio_stop(cdda_t *);
>  int audio_get_state(cdda_t *, struct cdrom_subchnl *);
>  void cdda_check(void **, int);
> 
> ----
> 

> **************************Disclaimer**************************************************    
>  
>  Information contained in this E-MAIL being proprietary to Wipro Limited is 'privileged' 
> and 'confidential' and intended for use only by the individual or entity to which it is 
> addressed. You are notified that any use, copying or dissemination of the information 
> contained in the E-MAIL in any manner whatsoever is strictly prohibited.
> 
> ****************************************************************************************





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]