[Libreoffice-commits] core.git: ios/iosremote

siqi me at siqi.fr
Sun Jun 9 02:45:35 PDT 2013


 ios/iosremote/iosremote.xcodeproj/project.pbxproj               |   16 +
 ios/iosremote/iosremote/Base64.m                                |    4 
 ios/iosremote/iosremote/Communication/Client.h                  |    6 
 ios/iosremote/iosremote/Communication/Client.m                  |   96 +++++-----
 ios/iosremote/iosremote/Communication/CommandInterpreter.h      |    2 
 ios/iosremote/iosremote/Communication/CommandInterpreter.m      |   49 +++--
 ios/iosremote/iosremote/Communication/SlideShow.h               |   20 +-
 ios/iosremote/iosremote/Communication/SlideShow.m               |   42 +++-
 ios/iosremote/iosremote/en.lproj/MainStoryboard_iPad.storyboard |   28 ++
 ios/iosremote/iosremote/libreoffice_sdremoteViewController.m    |   21 +-
 ios/iosremote/iosremote/slideShowViewController.h               |   15 +
 ios/iosremote/iosremote/slideShowViewController.m               |   42 ++++
 12 files changed, 244 insertions(+), 97 deletions(-)

New commits:
commit 28faf7e3a91caab172bbd344bb568db4f66a433a
Author: siqi <me at siqi.fr>
Date:   Sun Jun 9 11:44:30 2013 +0200

    Command interpreter works, notification center can now call segua for view transition

diff --git a/ios/iosremote/iosremote.xcodeproj/project.pbxproj b/ios/iosremote/iosremote.xcodeproj/project.pbxproj
index 7930e11..9642a85 100644
--- a/ios/iosremote/iosremote.xcodeproj/project.pbxproj
+++ b/ios/iosremote/iosremote.xcodeproj/project.pbxproj
@@ -7,6 +7,8 @@
 	objects = {
 
 /* Begin PBXBuildFile section */
+		57B152991764703500EECC67 /* Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B152981764703500EECC67 /* Base64.m */; };
+		57B1529C1764714900EECC67 /* slideShowViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B1529B1764714900EECC67 /* slideShowViewController.m */; };
 		57B7625D17621E42007703F6 /* SlideShow.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B7625C17621E42007703F6 /* SlideShow.m */; };
 		57C6E3F3175E06E800E8BC5F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57C6E3F2175E06E800E8BC5F /* UIKit.framework */; };
 		57C6E3F5175E06E800E8BC5F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57C6E3F4175E06E800E8BC5F /* Foundation.framework */; };
@@ -27,10 +29,12 @@
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
+		57B152971764703500EECC67 /* Base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Base64.h; path = iosremote/Base64.h; sourceTree = "<group>"; };
+		57B152981764703500EECC67 /* Base64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Base64.m; path = iosremote/Base64.m; sourceTree = "<group>"; };
+		57B1529A1764714900EECC67 /* slideShowViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slideShowViewController.h; sourceTree = "<group>"; };
+		57B1529B1764714900EECC67 /* slideShowViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = slideShowViewController.m; sourceTree = "<group>"; };
 		57B7625B17621E42007703F6 /* SlideShow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SlideShow.h; sourceTree = "<group>"; };
 		57B7625C17621E42007703F6 /* SlideShow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SlideShow.m; sourceTree = "<group>"; };
-		57B7625E1762368F007703F6 /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Base64.h; path = ../Base64.h; sourceTree = "<group>"; };
-		57B7625F1762368F007703F6 /* Base64.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = Base64.m; path = ../Base64.m; sourceTree = "<group>"; };
 		57C6E3EF175E06E800E8BC5F /* iosremote.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iosremote.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		57C6E3F2175E06E800E8BC5F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
 		57C6E3F4175E06E800E8BC5F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
@@ -75,6 +79,8 @@
 		57C6E3E6175E06E800E8BC5F = {
 			isa = PBXGroup;
 			children = (
+				57B152971764703500EECC67 /* Base64.h */,
+				57B152981764703500EECC67 /* Base64.m */,
 				57C6E425175E076900E8BC5F /* Communication */,
 				57C6E3F8175E06E800E8BC5F /* iosremote */,
 				57C6E3F1175E06E800E8BC5F /* Frameworks */,
@@ -110,6 +116,8 @@
 				57C6E410175E06E800E8BC5F /* libreoffice_sdremoteViewController.h */,
 				57C6E411175E06E800E8BC5F /* libreoffice_sdremoteViewController.m */,
 				57C6E3F9175E06E800E8BC5F /* Supporting Files */,
+				57B1529A1764714900EECC67 /* slideShowViewController.h */,
+				57B1529B1764714900EECC67 /* slideShowViewController.m */,
 			);
 			path = iosremote;
 			sourceTree = "<group>";
@@ -131,8 +139,6 @@
 		57C6E425175E076900E8BC5F /* Communication */ = {
 			isa = PBXGroup;
 			children = (
-				57B7625E1762368F007703F6 /* Base64.h */,
-				57B7625F1762368F007703F6 /* Base64.m */,
 				57C6E426175E076900E8BC5F /* Client.h */,
 				57C6E427175E076900E8BC5F /* Client.m */,
 				57C6E428175E076900E8BC5F /* CommunicationManager.h */,
@@ -224,6 +230,8 @@
 				57C6E430175E076900E8BC5F /* CommandInterpreter.m in Sources */,
 				57C6E431175E076900E8BC5F /* Server.m in Sources */,
 				57B7625D17621E42007703F6 /* SlideShow.m in Sources */,
+				57B152991764703500EECC67 /* Base64.m in Sources */,
+				57B1529C1764714900EECC67 /* slideShowViewController.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
diff --git a/ios/iosremote/iosremote/Base64.m b/ios/iosremote/iosremote/Base64.m
index 56e080b..fc2a369 100644
--- a/ios/iosremote/iosremote/Base64.m
+++ b/ios/iosremote/iosremote/Base64.m
@@ -46,8 +46,8 @@ static char decodingTable[128];
         output[index + 3] = (i + 2) < length ? encodingTable[(value >> 0)  & 0x3F] : '=';
     }
 	
-    return [[[NSString alloc] initWithData:data
-                                  encoding:NSASCIIStringEncoding] autorelease];
+    return [[NSString alloc] initWithData:data
+                                  encoding:NSASCIIStringEncoding];
 }
 
 
diff --git a/ios/iosremote/iosremote/Communication/Client.h b/ios/iosremote/iosremote/Communication/Client.h
index 7ba32a5..5cd0a42 100644
--- a/ios/iosremote/iosremote/Communication/Client.h
+++ b/ios/iosremote/iosremote/Communication/Client.h
@@ -13,9 +13,9 @@
 
 @interface Client : NSObject
 
- at property BOOL mReady;
- at property (nonatomic, strong) NSNumber* mPin;
- at property (nonatomic, strong) NSString* mName;
+ at property BOOL ready;
+ at property (nonatomic, strong) NSNumber* pin;
+ at property (nonatomic, strong) NSString* name;
 
 -(void) connect;
 
diff --git a/ios/iosremote/iosremote/Communication/Client.m b/ios/iosremote/iosremote/Communication/Client.m
index 16c4aa2..3b1f1b6 100644
--- a/ios/iosremote/iosremote/Communication/Client.m
+++ b/ios/iosremote/iosremote/Communication/Client.m
@@ -12,16 +12,18 @@
 #import "CommandInterpreter.h"
 #import "CommunicationManager.h"
 
+#define CHARSET @"UTF-8"
+
 @interface Client() <NSStreamDelegate>
 
- at property (nonatomic, strong) NSInputStream* mInputStream;
- at property (nonatomic, strong) NSOutputStream* mOutputStream;
+ at property (nonatomic, strong) NSInputStream* inputStream;
+ at property (nonatomic, strong) NSOutputStream* outputStream;
 
 @property uint mPort;
 
- at property (nonatomic, weak) Server* mServer;
- at property (nonatomic, weak) CommandInterpreter* mReceiver;
- at property (nonatomic, weak) CommunicationManager* mComManager;
+ at property (nonatomic, weak) Server* server;
+ at property (nonatomic, weak) CommandInterpreter* receiver;
+ at property (nonatomic, weak) CommunicationManager* comManager;
 
 @end
 
@@ -29,15 +31,14 @@
 
 @implementation Client
 
- at synthesize mInputStream = _mInputStream;
- at synthesize mOutputStream = _mOutputStream;
- at synthesize mPin = _mPin;
- at synthesize mName = _mName;
- at synthesize mServer = _mServer;
- at synthesize mComManager = _mComManager;
- at synthesize mReady = _mReady;
-
-NSString * const CHARSET = @"UTF-8";
+ at synthesize inputStream = _mInputStream;
+ at synthesize outputStream = _mOutputStream;
+ at synthesize pin = _mPin;
+ at synthesize name = _mName;
+ at synthesize server = _mServer;
+ at synthesize comManager = _mComManager;
+ at synthesize ready = _mReady;
+ at synthesize receiver = _receiver;
 
 - (id) initWithServer:(Server*)server
             managedBy:(CommunicationManager*)manager
@@ -46,12 +47,12 @@ NSString * const CHARSET = @"UTF-8";
     self = [self init];
     if (self)
     {
-        self.mReady = NO;
-        self.mName = [[UIDevice currentDevice] name];
-        self.mPin = [NSNumber numberWithInteger:[self getPin]];
-        self.mServer = server;
-        self.mComManager = manager;
-        self.mReceiver = receiver;
+        self.ready = NO;
+        self.name = [[UIDevice currentDevice] name];
+        self.pin = [NSNumber numberWithInteger:[self getPin]];
+        self.server = server;
+        self.comManager = manager;
+        self.receiver = receiver;
         self.mPort = 1599;
     }
     return self;
@@ -64,12 +65,12 @@ NSString * const CHARSET = @"UTF-8";
     
     if(!userDefaluts)
         NSLog(@"userDefaults nil");
-    NSInteger newPin = [userDefaluts integerForKey:self.mName];
+    NSInteger newPin = [userDefaluts integerForKey:self.name];
     
     // If not, generate one.
     if (!newPin) {
         newPin = arc4random() % 9999;
-        [userDefaluts setInteger:newPin forKey:self.mName];
+        [userDefaluts setInteger:newPin forKey:self.name];
     }
     
     return newPin;
@@ -88,20 +89,20 @@ NSString * const CHARSET = @"UTF-8";
         CFWriteStreamSetProperty(writeStream, kCFStreamPropertyShouldCloseNativeSocket, kCFBooleanTrue);
         
         //Setup mInputStream
-        self.mInputStream = (__bridge NSInputStream *)readStream;
-        [self.mInputStream setDelegate:self];
-        [self.mInputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
-        [self.mInputStream open];
+        self.inputStream = (__bridge NSInputStream *)readStream;
+        [self.inputStream setDelegate:self];
+        [self.inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
+        [self.inputStream open];
         
         //Setup outputstream
-        self.mOutputStream = (__bridge NSOutputStream *)writeStream;
-        [self.mOutputStream setDelegate:self];
-        [self.mOutputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
-        [self.mOutputStream open];
+        self.outputStream = (__bridge NSOutputStream *)writeStream;
+        [self.outputStream setDelegate:self];
+        [self.outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
+        [self.outputStream open];
         
         //        NSLog(@"Stream opened %@ %@", @"iPad", self.mPin);
         
-        NSArray *temp = [[NSArray alloc]initWithObjects:@"LO_SERVER_CLIENT_PAIR\n", self.mName, @"\n", self.mPin, @"\n\n", nil];
+        NSArray *temp = [[NSArray alloc]initWithObjects:@"LO_SERVER_CLIENT_PAIR\n", self.name, @"\n", self.pin, @"\n\n", nil];
         
         NSString *command = [temp componentsJoinedByString:@""];
         
@@ -115,7 +116,7 @@ NSString * const CHARSET = @"UTF-8";
     // UTF-8 as speficied in specification
     NSData * data = [aCommand dataUsingEncoding:NSUTF8StringEncoding];
     
-    [self.mOutputStream write:(uint8_t *)[data bytes] maxLength:[data length]];
+    [self.outputStream write:(uint8_t *)[data bytes] maxLength:[data length]];
 }
 
 - (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode {
@@ -123,7 +124,7 @@ NSString * const CHARSET = @"UTF-8";
     switch(eventCode) {
         case NSStreamEventOpenCompleted:
             NSLog(@"Connection established");
-            self.mReady = YES;
+            self.ready = YES;
             break;
         case NSStreamEventErrorOccurred:
             NSLog(@"Connection error occured");
@@ -133,25 +134,30 @@ NSString * const CHARSET = @"UTF-8";
             NSMutableData* data;
             NSLog(@"NSStreamEventHasBytesAvailable");
             if(!data) {
-                data = [NSMutableData data];
+                data = [[NSMutableData alloc] init];
             }
             uint8_t buf[1024];
             unsigned int len = 0;
-            len = [(NSInputStream *)stream read:buf maxLength:1024];
-            if(len) {
+            NSString *str;
+            while (true) {
+                len = [(NSInputStream *)stream read:buf maxLength:1024];
                 [data appendBytes:(const void *)buf length:len];
-                int bytesRead = 0;
-                // bytesRead is an instance variable of type NSNumber.
-                bytesRead += len;
-            } else {
-                NSLog(@"No data but received event for whatever reasons!");
+                if (len < 1024) {
+                    // Potentially the end of a command
+                    str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
+                    if ([str hasSuffix:@"\n\n"]) {
+                        // Finished current command
+                        break;
+                    }
+                }
             }
             
-            NSString *str = [[NSString alloc] initWithData:data
-                                                  encoding:NSUTF8StringEncoding];
-            NSLog(@"Data Received: %@", str);
+            NSArray *commands = [str componentsSeparatedByString:@"\n"];
+//            NSLog(@"Data Received: %@", commands);
             
+            [self.receiver parse:commands];
             data = nil;
+            str = nil;
         } break;
         default:
         {
@@ -164,7 +170,7 @@ NSString * const CHARSET = @"UTF-8";
 
 - (void) connect
 {
-    [self streamOpenWithIp:self.mServer.serverAddress withPortNumber:self.mPort];
+    [self streamOpenWithIp:self.server.serverAddress withPortNumber:self.mPort];
 }
 
 
diff --git a/ios/iosremote/iosremote/Communication/CommandInterpreter.h b/ios/iosremote/iosremote/Communication/CommandInterpreter.h
index 856bff7..faa07cf 100644
--- a/ios/iosremote/iosremote/Communication/CommandInterpreter.h
+++ b/ios/iosremote/iosremote/Communication/CommandInterpreter.h
@@ -12,7 +12,7 @@
 
 @interface CommandInterpreter : NSObject
 
- at property (nonatomic, strong) SlideShow* mSlideShow;
+ at property (nonatomic, strong) SlideShow* slideShow;
 
 - (void) parse:(NSArray *)cmd;
 
diff --git a/ios/iosremote/iosremote/Communication/CommandInterpreter.m b/ios/iosremote/iosremote/Communication/CommandInterpreter.m
index 91c513d..779e2f6 100644
--- a/ios/iosremote/iosremote/Communication/CommandInterpreter.m
+++ b/ios/iosremote/iosremote/Communication/CommandInterpreter.m
@@ -18,10 +18,16 @@
 
 @implementation CommandInterpreter
 
- at synthesize mSlideShow = _mSlideShow;
+ at synthesize slideShow = _slideShow;
+
+- (SlideShow*) slideshow{
+    if (!self.slideShow)
+        self.slideShow = [[SlideShow alloc] init];
+    return self.slideShow;
+}
 
 - (BOOL) isSlideRunning {
-    return [self.mSlideShow size] > 0;
+    return [self.slideShow size] > 0;
 }
 
 // Received a set of instructions from server.
@@ -32,45 +38,50 @@
     NSString *instruction = [command objectAtIndex:0];
     
     if([instruction isEqualToString:@"slideshow_started"]){
-        unsigned int slideLength = [[command objectAtIndex:1] unsignedIntValue];
-        unsigned int currentSlide = [[command objectAtIndex:2] unsignedIntValue];
+        NSLog(@"Interpreter: slideshow_started");
+        uint slideLength = [[command objectAtIndex:1] integerValue];
+        uint currentSlide = [[command objectAtIndex:2] integerValue];
+        NSLog(@"Interpreter: with slideLength %u, currentSlide %u", slideLength, currentSlide);
+        self.slideShow = [[SlideShow alloc] init];
         
-        [self.mSlideShow setLength:slideLength];
-        [self.mSlideShow setCurrentSlide:currentSlide];
+        [self.slideShow setSize:slideLength];
+        [self.slideShow setCurrentSlide:currentSlide];
         
-        [[NSNotificationCenter defaultCenter] postNotificationName:STATUS_CONNECTED_NOSLIDESHOW
+        [[NSNotificationCenter defaultCenter] postNotificationName:STATUS_CONNECTED_SLIDESHOW_RUNNING
                           object:nil];
-        [[NSNotificationCenter defaultCenter] postNotificationName:MSG_SLIDE_CHANGED object:self.mSlideShow.mCurrentSlide];
+        [[NSNotificationCenter defaultCenter] postNotificationName:MSG_SLIDE_CHANGED object:[NSNumber numberWithUnsignedInt:currentSlide]];
         
     } else if ([instruction isEqualToString:@"slideshow_finished"]){
-        self.mSlideShow = [SlideShow init];
+        NSLog(@"Interpreter: slideshow_started");
+        self.slideShow = [[SlideShow alloc] init];
         [[NSNotificationCenter defaultCenter] postNotificationName:STATUS_CONNECTED_NOSLIDESHOW object:nil];
     } else {
-        if (self.mSlideShow == nil)
+        if (self.slideShow == nil)
             return;
         if ([instruction isEqualToString:@"slide_updated"]) {
-            unsigned int newSlideNumber = [[command objectAtIndex:1] unsignedIntValue];
-            [self.mSlideShow setCurrentSlide:newSlideNumber];
+            NSLog(@"Interpreter: slide_updated");
+            uint newSlideNumber = [[command objectAtIndex:1] integerValue];
+            [self.slideShow setCurrentSlide:newSlideNumber];
             
             [[NSNotificationCenter defaultCenter] postNotificationName:MSG_SLIDE_CHANGED object:nil];
             
         } else if ([instruction isEqualToString:@"slide_preview"]){
-            unsigned int slideNumber = [[command objectAtIndex:1] unsignedIntValue];
+            NSLog(@"Interpreter: slide_preview");
+            uint slideNumber = [[command objectAtIndex:1] integerValue];
             NSString * imageData = [command objectAtIndex:2];
-            [Base64 initialize];
-            NSData* data = [Base64 decode:imageData];
-            UIImage* img = [UIImage imageWithData:data];
-            [self.mSlideShow putImage:img
+            
+            [self.slideShow putImage:imageData
                               AtIndex:slideNumber];
             [[NSNotificationCenter defaultCenter] postNotificationName:MSG_SLIDE_PREVIEW object:[NSNumber numberWithUnsignedInt:slideNumber]];
         } else if ([instruction isEqualToString:@"slide_notes"]){
-            unsigned int slideNumber = [[command objectAtIndex:1] unsignedIntValue];
+            NSLog(@"Interpreter: slide_notes");
+            uint slideNumber = [[command objectAtIndex:1] integerValue];
             NSString *notes;
             for (int i = 2; i<command.count; ++i) {
                 [notes stringByAppendingString:[command objectAtIndex:i]];
             }
             
-            [self.mSlideShow putNotes:notes
+            [self.slideShow putNotes:notes
                               AtIndex:slideNumber];
             [[NSNotificationCenter defaultCenter] postNotificationName:MSG_SLIDE_NOTES object: [NSNumber numberWithUnsignedInt:slideNumber]];
         }
diff --git a/ios/iosremote/iosremote/Communication/SlideShow.h b/ios/iosremote/iosremote/Communication/SlideShow.h
index 11ea4d8..c2e30cc 100644
--- a/ios/iosremote/iosremote/Communication/SlideShow.h
+++ b/ios/iosremote/iosremote/Communication/SlideShow.h
@@ -1,20 +1,20 @@
+// -*- Mode: ObjC; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
 //
-//  SlideShow.h
-//  iosremote
-//
-//  Created by Liu Siqi on 6/7/13.
-//  Copyright (c) 2013 libreoffice. All rights reserved.
+// This file is part of the LibreOffice project.
 //
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
 
 #import <Foundation/Foundation.h>
 
 @interface SlideShow : NSObject
 
- at property (nonatomic, strong) NSArray* mSlides;
- at property (nonatomic, strong) NSNumber* mCurrentSlide;
+ at property uint size;
+ at property uint currentSlide;
 
-- (NSUInteger) size;
-- (void) setCurrentSlide:(NSUInteger)number;
-- (void) setLength:(NSUInteger)number;
+- (void) putImage: (NSString *)img AtIndex: (uint) index;
+- (void) putNotes: (NSString *)notes AtIndex: (uint) index;
 
 @end
diff --git a/ios/iosremote/iosremote/Communication/SlideShow.m b/ios/iosremote/iosremote/Communication/SlideShow.m
index d6435e9..b2a4c08 100644
--- a/ios/iosremote/iosremote/Communication/SlideShow.m
+++ b/ios/iosremote/iosremote/Communication/SlideShow.m
@@ -1,20 +1,44 @@
+// -*- Mode: ObjC; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
 //
-//  SlideShow.m
-//  iosremote
-//
-//  Created by Liu Siqi on 6/7/13.
-//  Copyright (c) 2013 libreoffice. All rights reserved.
+// This file is part of the LibreOffice project.
 //
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
 
 #import "SlideShow.h"
+#import "Base64.h"
+
+ at interface SlideShow()
+
+ at property (nonatomic, strong) NSMutableArray* imagesArray;
+ at property (nonatomic, strong) NSMutableArray* notesArray;
+
+ at end
 
 @implementation SlideShow
 
- at synthesize mSlides = _mSlides;
- at synthesize mCurrentSlide = _mCurrentSlide;
+ at synthesize size = _size;
+ at synthesize currentSlide = _currentSlide;
 
-- (NSUInteger) size{
-    return self.mSlides.count;
+- (SlideShow *) init{
+    self = [super init];
+    _size = 0;
+    _currentSlide = 0;
+    return self;
 }
 
+- (void) putImage: (NSString *)img AtIndex: (uint) index{
+    [Base64 initialize];
+    NSData* data = [Base64 decode:img];
+    UIImage* image = [UIImage imageWithData:data];
+    [self.imagesArray insertObject:image atIndex:index];
+}
+
+- (void) putNotes: (NSString *)notes AtIndex: (uint) index{
+    [self.notesArray insertObject:notes atIndex:index];
+}
+
+
 @end
diff --git a/ios/iosremote/iosremote/en.lproj/MainStoryboard_iPad.storyboard b/ios/iosremote/iosremote/en.lproj/MainStoryboard_iPad.storyboard
index d4a118a..cb43691 100644
--- a/ios/iosremote/iosremote/en.lproj/MainStoryboard_iPad.storyboard
+++ b/ios/iosremote/iosremote/en.lproj/MainStoryboard_iPad.storyboard
@@ -12,7 +12,7 @@
                         <rect key="frame" x="0.0" y="64" width="768" height="960"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
-                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="172.25.19.11" borderStyle="roundedRect" minimumFontSize="17" id="9w1-Ym-HcF">
+                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="192.168.1.97" borderStyle="roundedRect" minimumFontSize="17" id="9w1-Ym-HcF">
                                 <rect key="frame" x="234" y="402" width="301" height="30"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="14"/>
@@ -38,6 +38,7 @@
                     <connections>
                         <outlet property="ipAddressTextEdit" destination="9w1-Ym-HcF" id="hab-JH-3Lf"/>
                         <outlet property="pinLabel" destination="Cg3-f5-zuM" id="HaU-jr-8oJ"/>
+                        <segue destination="zdX-BL-bmY" kind="push" identifier="slidesPreview" id="9Yb-di-Q6v"/>
                     </connections>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="3" sceneMemberID="firstResponder"/>
@@ -62,6 +63,31 @@
             </objects>
             <point key="canvasLocation" x="721" y="-301"/>
         </scene>
+        <!--Slide Show View Controller-->
+        <scene sceneID="wDH-NE-E5t">
+            <objects>
+                <viewController id="zdX-BL-bmY" customClass="slideShowViewController" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="Tkv-NW-1bl">
+                        <rect key="frame" x="0.0" y="64" width="768" height="960"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                        <subviews>
+                            <imageView userInteractionEnabled="NO" contentMode="scaleToFill" id="T6z-xu-j8h">
+                                <rect key="frame" x="0.0" y="0.0" width="768" height="960"/>
+                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            </imageView>
+                        </subviews>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                    </view>
+                    <navigationItem key="navigationItem" id="uc0-p3-wnG"/>
+                    <connections>
+                        <outlet property="image" destination="T6z-xu-j8h" id="o1L-LM-TbP"/>
+                        <outlet property="view" destination="T6z-xu-j8h" id="YKN-ib-gU3"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="Dqn-Ae-ABD" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="2616" y="-293"/>
+        </scene>
     </scenes>
     <simulatedMetricsContainer key="defaultSimulatedMetrics">
         <simulatedStatusBarMetrics key="statusBar" statusBarStyle="blackTranslucent"/>
diff --git a/ios/iosremote/iosremote/libreoffice_sdremoteViewController.m b/ios/iosremote/iosremote/libreoffice_sdremoteViewController.m
index ba4340b..45e23ee 100644
--- a/ios/iosremote/iosremote/libreoffice_sdremoteViewController.m
+++ b/ios/iosremote/iosremote/libreoffice_sdremoteViewController.m
@@ -16,6 +16,9 @@
 // For debug use, will use a manager to manage server and client instead
 @property (nonatomic, strong) Server* server;
 @property (nonatomic, strong) Client* client;
+ at property (nonatomic, strong) CommandInterpreter * interpreter;
+ at property (nonatomic, weak) NSNotificationCenter* center;
+ at property (nonatomic, strong) id slideShowPreviewStartObserver;
 
 @end
 
@@ -23,11 +26,22 @@
 
 @synthesize server = _server;
 @synthesize client = _client;
+ at synthesize center = _center;
+ at synthesize interpreter = _interpreter;
+ at synthesize slideShowPreviewStartObserver = _slideShowPreviewStartObserver;
 
 - (void)viewDidLoad
 {
     [super viewDidLoad];
 	// Do any additional setup after loading the view, typically from a nib.
+    self.center = [NSNotificationCenter defaultCenter];
+    NSOperationQueue *mainQueue = [NSOperationQueue mainQueue];
+    self.slideShowPreviewStartObserver = [self.center addObserverForName:STATUS_CONNECTED_SLIDESHOW_RUNNING object:nil
+                                                     queue:mainQueue usingBlock:^(NSNotification *note) {
+                                                         NSLog(@"Received performSegue!");
+                                                         [self performSegueWithIdentifier:@"slidesPreview" sender:self];
+                                                     }];
+
 }
 
 - (void)didReceiveMemoryWarning
@@ -39,13 +53,14 @@
 
 - (IBAction)connectToServer:(id)sender {
     NSString * address = [self.ipAddressTextEdit text];
+    self.interpreter = [[CommandInterpreter alloc] init];
     self.server = [[Server alloc] initWithProtocol:NETWORK atAddress:address ofName:@"Server"];
-    self.client = [[Client alloc] initWithServer:self.server managedBy:nil interpretedBy:nil];
+    self.client = [[Client alloc] initWithServer:self.server managedBy:nil interpretedBy:self.interpreter];
     [self.client connect];
     
-    if([self.client mReady])
+    if([self.client ready])
     {
-        [self.pinLabel setText:[NSString stringWithFormat:@"%@", self.client.mPin]];
+        [self.pinLabel setText:[NSString stringWithFormat:@"%@", self.client.pin]];
     }
 }
 
diff --git a/ios/iosremote/iosremote/slideShowViewController.h b/ios/iosremote/iosremote/slideShowViewController.h
new file mode 100644
index 0000000..f44b849
--- /dev/null
+++ b/ios/iosremote/iosremote/slideShowViewController.h
@@ -0,0 +1,15 @@
+//
+//  slideShowViewController.h
+//  iosremote
+//
+//  Created by Liu Siqi on 6/9/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+ at interface slideShowViewController : UIViewController
+
+ at property (weak, nonatomic) IBOutlet UIImageView *image;
+
+ at end
diff --git a/ios/iosremote/iosremote/slideShowViewController.m b/ios/iosremote/iosremote/slideShowViewController.m
new file mode 100644
index 0000000..cd04f39
--- /dev/null
+++ b/ios/iosremote/iosremote/slideShowViewController.m
@@ -0,0 +1,42 @@
+//
+//  slideShowViewController.m
+//  iosremote
+//
+//  Created by Liu Siqi on 6/9/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import "slideShowViewController.h"
+
+ at interface slideShowViewController ()
+
+ at end
+
+ at implementation slideShowViewController
+
+- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
+{
+    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
+    if (self) {
+        // Custom initialization
+    }
+    return self;
+}
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+	// Do any additional setup after loading the view.
+}
+
+- (void)didReceiveMemoryWarning
+{
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+- (void)viewDidUnload {
+    [self setImage:nil];
+    [super viewDidUnload];
+}
+ at end


More information about the Libreoffice-commits mailing list