]> git.sesse.net Git - vlc/commitdiff
macosx/framework: Change the repeatMode setter to be a property so that it can evenut...
authorPierre d'Herbemont <pdherbemont@free.fr>
Mon, 21 Dec 2009 08:01:20 +0000 (09:01 +0100)
committerPierre d'Herbemont <pdherbemont@free.fr>
Mon, 21 Dec 2009 08:01:20 +0000 (09:01 +0100)
projects/macosx/framework/Headers/Public/VLCMediaListPlayer.h
projects/macosx/framework/Sources/VLCMediaListPlayer.m

index 17f3917683dc94ef345240b53102d5e1b30f720b..70026c9d1b14cd5e2487465df1045c6a627112b6 100644 (file)
 
 @class VLCMedia, VLCMediaPlayer, VLCMediaList;
 
+/**
+ * VLCRepeatMode
+ * (don't repeat anything, repeat one, repeat all)
+ */
+enum VLCRepeatMode {
+    VLCDoNotRepeat,
+    VLCRepeatCurrentItem,
+    VLCRepeatAllItems
+};
+typedef int VLCRepeatMode;
+
 @interface VLCMediaListPlayer : NSObject {
     void *instance;
     VLCMedia *_rootMedia;
     VLCMediaPlayer *_mediaPlayer;
     VLCMediaList *_mediaList;
+    VLCRepeatMode _repeatMode;
 }
 
 @property (readwrite, retain) VLCMediaList *mediaList;
 
 /**
  * Playmode selection (don't repeat anything, repeat one, repeat all)
+ * See VLCRepeatMode.
  */
-- (void)doNotRepeatAnyItem;
-- (void)repeatCurrentItem;
-- (void)repeatAllItems;
+
+@property (readwrite) VLCRepeatMode repeatMode;
 
 /**
  * media must be in the current media list.
index f83af7719a4fa580bf184cfdc6fb828c4c97705e..3fcade78cabf9df8b6c79703106c39ea070299df 100644 (file)
     catch_exception(&ex);
 }
 
-- (void)doNotRepeatAnyItem;
+- (void)setRepeatMode:(VLCRepeatMode)repeatMode
 {
     libvlc_exception_t ex;
     libvlc_exception_init(&ex);
-    libvlc_media_list_player_set_playback_mode(instance, libvlc_playback_mode_default, &ex);
-    catch_exception(&ex);
-}
-
-- (void)repeatCurrentItem
-{
-    libvlc_exception_t ex;
-    libvlc_exception_init(&ex);
-    libvlc_media_list_player_set_playback_mode(instance, libvlc_playback_mode_repeat, &ex);
+    switch (repeatMode) {
+        case VLCRepeatAllItems:
+            libvlc_media_list_player_set_playback_mode(instance, libvlc_playback_mode_default, &ex);
+            break;
+        case VLCDoNotRepeat:
+            libvlc_media_list_player_set_playback_mode(instance, libvlc_playback_mode_default, &ex);
+            break;
+        case VLCRepeatCurrentItem:
+            libvlc_media_list_player_set_playback_mode(instance, libvlc_playback_mode_repeat, &ex);
+            break;
+        default:
+            break;
+    }
     catch_exception(&ex);
+    _repeatMode = repeatMode;
 }
 
-- (void)repeatAllItems
+- (VLCRepeatMode)repeatMode
 {
-    libvlc_exception_t ex;
-    libvlc_exception_init(&ex);
-    libvlc_media_list_player_set_playback_mode(instance, libvlc_playback_mode_loop, &ex);
-    catch_exception(&ex);
+    return _repeatMode;
 }
 @end