Frameworks/libpurple.framework/Versions/0.6.2/Headers/sound-theme.h
author Zachary West <zacw@adium.im>
Fri Aug 21 13:25:11 2009 -0700 (2009-08-21)
changeset 2592 e8d15275025e
parent 2069 Frameworks/libpurple.framework/Versions/0.6.0/Headers/sound-theme.h@1346acdb9a2b
permissions -rw-r--r--
im.pidgin.adium.1-4 at 267c6165e02e34318a1823960bd04c0639952f73
     1 /**
     2  * @file sound-theme.h  Purple Sound Theme Abstact Class API
     3  */
     4 
     5 /* purple
     6  *
     7  * Purple is the legal property of its developers, whose names are too numerous
     8  * to list here.  Please refer to the COPYRIGHT file distributed with this
     9  * source distribution.
    10  *
    11  * This program is free software; you can redistribute it and/or modify
    12  * it under the terms of the GNU General Public License as published by
    13  * the Free Software Foundation; either version 2 of the License, or
    14  * (at your option) any later version.
    15  *
    16  * This program is distributed in the hope that it will be useful,
    17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    19  * GNU General Public License for more details.
    20  *
    21  * You should have received a copy of the GNU General Public License
    22  * along with this program; if not, write to the Free Software
    23  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
    24  */
    25 
    26 #ifndef PURPLE_SOUND_THEME_H
    27 #define PURPLE_SOUND_THEME_H
    28 
    29 #include <glib.h>
    30 #include <glib-object.h>
    31 #include "theme.h"
    32 #include "sound.h"
    33 
    34 /**
    35  * extends PurpleTheme (theme.h)
    36  * A purple sound theme.
    37  * This is an object for Purple to represent a sound theme.
    38  *
    39  * PurpleSoundTheme is a PurpleTheme Object.
    40  */
    41 typedef struct _PurpleSoundTheme        PurpleSoundTheme;
    42 typedef struct _PurpleSoundThemeClass   PurpleSoundThemeClass;
    43 
    44 #define PURPLE_TYPE_SOUND_THEME             (purple_sound_theme_get_type())
    45 #define PURPLE_SOUND_THEME(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_SOUND_THEME, PurpleSoundTheme))
    46 #define PURPLE_SOUND_THEME_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_SOUND_THEME, PurpleSoundThemeClass))
    47 #define PURPLE_IS_SOUND_THEME(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_SOUND_THEME))
    48 #define PURPLE_IS_SOUND_THEME_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_SOUND_THEME))
    49 #define PURPLE_SOUND_THEME_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_SOUND_THEME, PurpleSoundThemeClass))
    50 
    51 struct _PurpleSoundTheme
    52 {
    53 	PurpleTheme parent;
    54 	gpointer priv;
    55 };
    56 
    57 struct _PurpleSoundThemeClass
    58 {
    59 	PurpleThemeClass parent_class;
    60 };
    61 
    62 /**************************************************************************/
    63 /** @name Purple Sound Theme API                                          */
    64 /**************************************************************************/
    65 G_BEGIN_DECLS
    66 
    67 /**
    68  * GObject foo.
    69  * @internal.
    70  */
    71 GType purple_sound_theme_get_type(void);
    72 
    73 /**
    74  * Returns a copy of the filename for the sound event.
    75  *
    76  * @param theme The theme.
    77  * @param event The purple sound event to look up.
    78  *
    79  * @returns The filename of the sound event.
    80  */
    81 const gchar *purple_sound_theme_get_file(PurpleSoundTheme *theme,
    82 		const gchar *event);
    83 
    84 /**
    85  * Returns a copy of the directory and filename for the sound event
    86  *
    87  * @param theme The theme.
    88  * @param event The purple sound event to look up
    89  *
    90  * @returns The directory + '/' + filename of the sound event.  This is
    91  *          a newly allocated string that should be freed with g_free.
    92  */
    93 gchar *purple_sound_theme_get_file_full(PurpleSoundTheme *theme,
    94 		const gchar *event);
    95 
    96 /**
    97  * Sets the filename for a given sound event
    98  *
    99  * @param theme    The theme.
   100  * @param event    the purple sound event to look up
   101  * @param filename the name of the file to be used for the event
   102  */
   103 void purple_sound_theme_set_file(PurpleSoundTheme *theme,
   104 		const gchar *event,
   105 		const gchar *filename);
   106 
   107 G_END_DECLS
   108 #endif /* PURPLE_SOUND_THEME_H */