source: roaraudio/libroaryiff/audiocd.c @ 1660:99bfd21f00ef

Last change on this file since 1660:99bfd21f00ef was 1660:99bfd21f00ef, checked in by phi, 15 years ago

changed name of fh in con struct to fh, this should all apps requiring the private member to fail to build, added function to get fh, change code to use them both everythere

File size: 1.8 KB
Line 
1//audiocd.c:
2
3/*
4 *      Copyright (C) Philipp 'ph3-der-loewe' Schafft - August 2008
5 *
6 *  This file is part of libroaryiff a part of RoarAudio,
7 *  a cross-platform sound system for both, home and professional use.
8 *  See README for details.
9 *
10 *  This file is free software; you can redistribute it and/or modify
11 *  it under the terms of the GNU General Public License version 3
12 *  as published by the Free Software Foundation.
13 *
14 *  libroaryiff is distributed in the hope that it will be useful,
15 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 *  GNU General Public License for more details.
18 *
19 *  You should have received a copy of the GNU General Public License
20 *  along with this software; see the file COPYING.  If not, write to
21 *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
22 *
23 */
24
25#include <libroaryiff.h>
26
27struct {
28 int is_open;
29 int is_playing;
30 struct roar_cdrom cdrom[1];
31} _g_roaryiff_cdrom = {0, 0, {}};
32
33int YEjectAudioCD(YConnection *con) {
34 YStopAudioCD(con);
35 return system("eject") == 0 ? 0 : -1;
36}
37
38int YPlayAudioCDTrack(YConnection *con, int track_number) {
39 struct roar_connection rcon;
40
41 if ( con == NULL )
42  return -1;
43
44 roar_connect_fh(&rcon, con->fd);
45
46 if ( ! _g_roaryiff_cdrom.is_open ) {
47  if ( roar_cdrom_open(&rcon, _g_roaryiff_cdrom.cdrom, NULL) == -1 )
48   return -1;
49 }
50
51 return roar_cdrom_play(_g_roaryiff_cdrom.cdrom, track_number);
52}
53
54int YStopAudioCD(YConnection *con) {
55 struct roar_connection rcon;
56
57 if ( con == NULL )
58  return -1;
59
60 roar_connect_fh(&rcon, con->fd);
61
62 if ( _g_roaryiff_cdrom.is_playing ) {
63  roar_cdrom_stop(_g_roaryiff_cdrom.cdrom);
64  _g_roaryiff_cdrom.is_playing = 0;
65 }
66
67 if ( _g_roaryiff_cdrom.is_open ) {
68  roar_cdrom_close(_g_roaryiff_cdrom.cdrom);
69  _g_roaryiff_cdrom.is_open = 0;
70 }
71
72 return 0;
73}
74
75//ll
Note: See TracBrowser for help on using the repository browser.